Introduction

This support module provides ASYN Int32 support to control and monitor Dawn RuSH system monitor cards.  It has been tested with both serial port and network port interfaces.  Because of the very large number of extra characters sent in response to the on/off commands you will likely see temporary readback errors after turning the supply on or off unless you increase the serial line speed to 57,600 baud.

Using Dawn RuSH support in an application

Several files need minor modifications to use this support in an application.

  1. Add the full path to the Dawn RuSH, Stream Device and ASYN support directories to the application configure/RELEASE file:
    STREAMDEVICE = xxxx/modules/soft/stream<release>
    ASYN         = xxxx/modules/soft/asyn<release>
    DAWNRUSH     = xxxx/modules/analog/DawnRuSH<release>
    Where <release> is the release number of of the support.
  2. Add support to application database definition file
    The application database definition file must include the database definition files for the Stream Device and ASYN support.  There are two ways that this can be done:
  3. Add the Stream Device and ASYN support libraries to the application by adding the  lines
    xxx_LIBS += stream
    xxx_LIBS += asyn
    before the
    xxx_LIBS += $(EPICS_BASE_IOC_LIBS)
    in the application Makefile.
  4. Specify the DawnRuSH device in the application startup script file:
    drvAsynIPPortConfigure("<PORT>","<Crate address>:7 TCP",0,0,0)
  5. The Dawn RuSH support module provides a Stream Device protocol file which must be placed in a spot where it can be found.  I put protocol files into my application “db” directory by adding a line like this
    DB_INSTALLS += $(DAWNRUSH)/db/devDawnRuSH.proto
    to the application xxx/Db/Makefile.
  6. The Dawn RuSH support module provides an example database.  To use this add
    DB_INSTALLS += $(DAWNRUSH)/db/devDawnRuSH.db
    to the application xxx/Db/Makefile and add
    dbLoadRecords("db/devDawnRuSH.db,"P=<P>,R=<R>,PORT=<PORT>")
    to the application startup script.  You'll have to provide appropriate values for the PV name prefixes (<P> and <R>) and the port name(<PORT>). The port name must match the value specified in the drvAsynIPPortConfigure command (or drvAsynSerialPortConfigure if you're using a direct serial port connection).

Database

The example database and EDM engineering screen provided as part of this support module prefix all record names with the macros “$(P)$(R)”.  Typically the $(P) macro would expand to a “per-IOC” string and the $(R) macro would expand to a string unique to each of the Dawn RuSH modules connected to the IOC.  You'll probably want to use the database and screen only as a starting point for developing your own customized versions since it's unlikely that your application includes every power supply, every fan, every temperature sensor and every alarm threshold exactly as provided.

Output Records

Record
Name
Record
Type

Description
$(P)$(R)SetPower
bo
Turn control lines for both power supplies on or off.
$(P)$(R)SetPower<n> bo
Turn control line for power supply 1 or 2 on or off.
$(P)$(R)query bo
Dummy record at head of readback FLNK chain.  Set the SCAN field of this record to the interval at which you wish readbacks to occur.


Input Records

Record
Name
Record
Type

Description
$(P)$(R)VP3
ai
+3.3V power supply voltage.
$(P)$(R)VP5
ai
+5.0V power supply voltage.
$(P)$(R)VP12
ai
+12.0V power supply voltage.
$(P)$(R)VM12 ai -12.0V power supply voltage.
$(P)$(R)Fan<n> longin
Fan 1 through 9 speed (RPM).
$(P)$(R)Temp<n> ai
Reading from temperature sensor 1 through 4 (degrees C).
$(P)$(R)MaxTemp ai
Highest recorded temperature reading (degrees C).
$(P)$(R)PS<n>Status bi
Power supply 1 or 2 control line status.
$(P)$(R)PowerSwitch bi
Front panel power switch status.
$(P)$(R)HoursOn ai
Unit power-on hours.
$(P)$(R)Serial stringin Unit serial number.
$(P)$(R)Name stringin
Unit name.
$(P)$(R)Firmware stringin
Firmware revision.

If you rename one or more of these input records you must make the corresponding name change in the Stream Device protocol file.

If you remove one or more of these input records you must change the protocol file to perform a dummy conversion rather than the named conversion.  For example, to remove the $(P)$(R)Fan9 record from the database you would change the line in the protocol file “query” entry from
       "F9=%(\$1Fan9.VAL)d,"
to
       "F9=%*d,"

Installation and Building

After obtaining a copy of the distribution, it must be installed and built for use at your site.
  1. Create an installation directory for the module. The path name of this directory should end with modules/instrument/DawnRuSH.
  2. Place the distribution file into this directory.
  3. Execute the following commands:
    cd modules/instrument/DawnRuSH
    tar xfz DawnRuSH<release>.tar.gz
    cd <release>
    Where <release> is the release number of of the DawnRuSH support.
  4. Edit the configure/RELEASE file and set the paths to your installation of EPICS base and the StreamDevice and ASYN support modules.
  5. Execute make in the top level directory.