1.5.1 NDSatCom-KuBand-Upconverter Example

    //
    //  Device driver for the ND SatCom Ku-band upconverter.
    //
    //
    //  CHANGE RECORD:
    //
    //  2001-05-05   1.00  initial version.
    //  2001-06-23   1.01  the get procedure also depends on the tx.gain and
    //                     the tx.frequency parameter. 
    //  2001-06-27   1.02  info.type set to NDSatCom-Upconverter
    //  2001-08-09   1.03  changed info.type to match the file name.
    //                     
    COMMENT   "NDSatCom-KuBand-Upconverter 1.03 010809"
    PROTOCOL  Miteq-MOD95
    INCLUDE   "drivers/Standard.inc"

    /** identification variables **********************************************/

    VAR info.type        CYCLE 0   TEXT READONLY INIT "NDSatCom-KuBand-Upconverter"
    VAR info.port        CYCLE 0   TEXT READONLY
    VAR info.frame       CYCLE 0   TEXT READONLY INIT "Upconverter"
    VAR info.if          CYCLE 0   TEXT READONLY

    /** configuration variables ***********************************************/

    /** MNC variables *********************************************************/

    VAR tx.on            CHOICE "OFF|ON|"                         CYCLE 2
    VAR tx.gain          FLOAT 0 30.0 1 "dB"                      CYCLE 0
    VAR tx.frequency     FLOAT 12750.0 14500.0 3 "MHz"            CYCLE 0

    /** internal variables ****************************************************/

    /** alarm flags ***********************************************************/

    ALARM faults.01      TEXT "Remote access"
    ALARM faults.02      TEXT "Synthesizer"
    ALARM faults.03      TEXT "LO-A lock"
    ALARM faults.04      TEXT "LO-B lock"
    ALARM faults.05      TEXT "Power supply"
    ALARM faults.06      TEXT "IF-LO level"
    ALARM faults.07      TEXT "RF-LO level"

    /** overall status / parameter fetch routine *******************************/

    TABLE T01 "OFF=1,ON=0"
    TABLE T02 "70 MHz=0,140MHz=1"
    TABLE T03 "0=1,1=0"
    PROC GET WATCH tx.on tx.gain tx.frequency
        PRINT "A"
        INPUT AT 2  SCALE 0.001            tx.frequency
              AT 11 SCALE -0.1 OFFSET 30.0 tx.gain
              AT 15 CUT 1 XLT T03          faults.01
              AT 17 CUT 1 XLT T02          info.if
              AT 19 CUT 1 XLT T01          tx.on
              AT 21 CUT 1                  faults.02
              AT 22 CUT 1                  faults.03
              AT 23 CUT 1                  faults.04
              AT 24 CUT 1                  faults.05
              AT 25 CUT 1                  faults.06
              AT 26 CUT 1                  faults.07
              
    /** set the tx.gain ********************************************************/

    PROC PUT WATCH tx.gain
        PRINT "T" SCALE -10.0 OFFSET 300.0 FMT "d03" tx.gain
        INPUT
        DELAY 1.0

    /** set the rf-on state ****************************************************/

    TABLE T04 "OFF=M,ON=U"
    PROC PUT WATCH tx.on
        PRINT XLT T04 tx.on
        INPUT
        
    /** read / set the frequency ***********************************************/

    PROC PUT WATCH tx.frequency
        PRINT "F" SCALE 1000.0 FMT "d8" tx.frequency
        INPUT
        DELAY 1.0