Keycard System

Skip to main content

Main Server

denhac.org

WordPress site running in the Digital Ocean cloud.

Webhooks Server

webhooks.denhac.org

Listens to the main server denhac.org for updates to propagate membership actions.

  • denhac-webhooks
  • Get webhook events from main server
    • New Member Signup + Successful Payment
      • Add the member to the mailing list
      • Add the member to google groups
      • Invite the member to the slack workspace
      • Provision a new keycard for the member
      • etc

Card Access Computer

Workstation on-site running DSX door lock management software.

  • WinDSX – door access management interface software
  • Comm Server – command bridge between WinDSX and the DSX door lock controller hardware unit
  • denhac-cards – Python automation interface to connect WinDSX functions to the webhooks server
    • Sourcecode on Github
    • Handles requests for updating cards
      • Card activation
      • Card deactivation
    • Operates the WinDSX software in an environment shared with a manual user
      • Waits a set timeout for on-interaction (incase of a manual user present)
      • Launches WinDSX and logs in
      • Waits a set time
      • Kills WinDSX
  • DSX Inc – Door lock software & hardware vendor

Lock Control Hardware

DSX door lock security system.

  • Serial interface to a Windows host PC running control software
  • Interacts through Comm Server

Issues

  1. Comm Server program stops running
    1. Python automation could be updated to detect and auto-restart
    2. Investigate Windows Event Viewer for Windows Application Logs, possibly for CS.exe
  2. Lock Control Hardware stops responding to updates
    1. May occur in the acknowledgement stages when a new member’s ID is submitted as verified
    2. Possible firmware communication lock while updating itself; refusing comms for further updates
      1. Verified by requesting WinDSX perform a full upload to the control hardware, and having no actions takes place. The hardware refuses commands.
      2. Fix by flipping DIP switch 3 to set a new location value, which confuses the Comm Server. Toggle the switch back to the original location value. Communications are able to re-establishe between the comm server and controller.
    3. Unknown state, race condition between closing WinDSX too soon
Table of Contents