Introduction This document describes the Opto-22 SNAP PAC server application. This server amounts to a user-mode device driver capable of managing one or more Opto-22 SNAP PAC brainboards and their associated backplanes and hardware interfacing modules. It is implemented by the optoServer.cpp source module. The server actually implements two separate client APIs; one for digital I/O and one for analog I/O. These two APIs are dened by analogClientLib.h and digitalClientLib.h respectively, and are implemented by analogClientLib.cpp and digi- talClientLib.cpp. A standard text-mode test menu client for the server is implemented by anadigMenu.cpp. Like the server itself, the menu client supports both client APIs. The primary documentation for the Opto-22 server source code is the Doxygen-generated HTML documentation associated with each of the above source les. That documentation set is automatically built based on the source code itself. It provides the most detailed, most up-to-date descriptions of the code. The document you are reading now is supplemental, and is intended to provide deeper background for the server and its client APIs. If contradictions between this document and the Doxygen-generated documentation are found, the Doxygen- generated documentation should be considered correct. The Opto-22 server is not intended to provide an exhaustive interface to all of the Opto-22 SNAP PAC brainboard's capabilities. Instead, only that subset of the controller's function- ality that we need for our current projects is supported. At present, that means the ability to directly set and read analog and digital input and output channels. Currently there are no provisions to take advantage of advanced features of the brainboard such as latching (of digitial inputs), averaging (of analog inputs), on-board conversion to/from engineering units, etc., and there is no expectation that these features will be implemented in the future.
Revised: September 30, 2014 |
Published: July 1, 2012