Home > Room Engine > Room Engine Control Server

Room Engine Control Server

The main component of the system
By 26/10/10 [Last Edited by Joseph 18/01/11]
BOOKMARK
LOGIN
REGISTER
The Room Engine Server (REServ) is the heart of the whole system. REServ does the following:
  • Handles communication with the Controller Board (REBoard)
  • Provides a platform agnostic TCP/IP interface for any client application (e.g. iPhone WebApp and the Speech Interface)
  • Provides backend data/parameter storage for the system (and Speech specific data)
  • Runs and monitors schedules

Components

  • Database class (rcDatabase) - provides Microsoft Access database support/hooks.
  • RENetServ compiled ActiveX control provides TCP/IP support, user authentication, socket management and other related methods
  • RESerCom compiled ActiveX control provides communication methods over RS232 with the control board
  • Database Microsoft Access Database

Backend storage

Backend data and configuration storage is provided by an Access database.

Communication Protocol

See Room Engine Communication Protocol

Known Issues

  • A new DAO instance should be loaded for each socket connection, this currently does not happen. This results one database query being able to be served at once, resulting in some RETCP requests not being answered.
  • Inefficient bit-masking procedure in RESerCom.ocx - This needs a rewrite badly to do a proper bitmask instead of converting to binary text, then checking the value of the bit at a certain position
  • Static speech user - insecure

Building

  • First compile RENetServ.ocx to a folder such as C:\Bin using Visual Basic 6
  • Compile RESerCom.ocx to a folder such as C:\Bin using Visual Basic 6
  • Register the controls. Run the command: regsvr32 C:\Bin\RESerCom.ocx && regsvr32 C:\Bin\RENetServ.ocx
  • Compile REServ.exe to C:\Bin using Visual Basic 6
Important: If you make changes to the components (e.g. RESerCom.ocx), you will need to unregister it, recompile, then recompile REServ.exe to link the correct version.