This software drives the GreenSpring OctalUart family of Industry Pack modules to communicate with a number of RS-232, RS-422, and RS-485 devices. Note that this driver is not compatible with GreenSpring's newer IP-OctalPlus modules as they use a different chipset.
The driver uses drvIpac for configuration of the carrier board plus access routines for the SCC2698 octalUart used in the IP modules. The driver is implemented as a standard vxWorks terminal driver making use of the tyLib() system library.
The software structure used to support EPICS record processing is in three layers:
EPICS device and driver support
EPICS STDIO support
vxWorks device driver
Other present options for EPICS device/driver support that use drvSerial are:
drvSerial is designed to use any vxWorks serial device driver. Other hardware supported includes:
EPICS device and driver support.
EPICS STDIO support.
vxWorks device driver
The following is an example of setting up the device driver from within a vxWorks startup script:
##################### # Configuration Setup ##################### # Initialize the IP module tasks tyGSOctalDrv 4 ipacAddCarrier &vipc610, "0x6000" # Init module on carrier 0, slot 0 MOD0 = tyGSOctalModuleInit("GSIP_OCTAL232", 0x80, 0, 0) # Create devices PORT00 = tyGSOctalDevCreate("/tyGS/0/0", MOD0, 0, 512, 512) PORT02 = tyGSOctalDevCreate("/tyGS/0/2", MOD0, 2, 512, 512) PORT04 = tyGSOctalDevCreate("/tyGS/0/4", MOD0, 4, 512, 512) PORT06 = tyGSOctalDevCreate("/tyGS/0/6", MOD0, 6, 512, 512) # Config ports # baud, parity(N/E/O), stop, bits, flow(N/H) tyGSOctalConfig PORT00, 9600, 'N', 1, 8, 'N' tyGSOctalConfig PORT02, 9600, 'N', 1, 8, 'N' tyGSOctalConfig PORT04, 9600, 'N', 1, 8, 'N' tyGSOctalConfig PORT06, 9600, 'N', 1, 8, 'N' # # The following uses the EPICS drvNode/devNode support # # Create NODEs - device support uses these names COMMON = drvNodeInit("/tyGS/0/0") VILINK = drvNodeInit("/tyGS/0/2") AOBG = drvNodeInit("/tyGS/0/4") OSIS = drvNodeInit("/tyGS/0/6") # Configure NODE delimiters drvNodeSetDelim COMMON, 0, 2, "\015\012", 0x00 drvNodeSetDelim COMMON, 1, 2, "> ", 0x00 drvNodeSetDelim COMMON, 2, 3, ": ", 0x00 drvNodeSetDelim COMMON, 3, 3, ")? ", 0x00 drvNodeSetDelim COMMON, 4, 3, "): ", 0x00 # drvNodeSetDelim VILINK, 0, 2, "\015\012", 0x00 # drvNodeSetDelim AOBG, 0, 1, "\015", 0x00 # drvNodeSetDelim OSIS, 0, 1, "\015", 0x00