This page describes the device driver and the device window for the EF-Data SDM Satellite Modem. The driver actually supports the following modem operation modes:
The Drop/Insert mode is not yet supported by the driver, nor are the EF-Data AUPC and MUX options.
Not all SDM300 modems support all functions which are implemented in the device driver. If you try to select a function which is unsupported by this particular modem, the parameter will fall back to it's old value. Each missing attempt to set a parameter is recorded to the event log.
Device window pages
The following table shows which device window pages are available with this individual device type. Tool-bar functions not mentioned here are described at the general description of device windows .
--- The IF parameters (frequency, level, etc.) and some global modem settings.
--- The modulator settings, transmit clocking.
--- The demodulator settings, receive clocking, doppler buffer.
--- The Reed-Solomon settings.
--- The IDR/IBS mode settings.
--- The ASYNC overhead settings.
--- The data interface settings
--- The receive quality.
--- The faults page.
--- The device info page.
--- The maintenance page. The configuration parameters described below are set at this page.Configuration parameters
At the maintenance page of the device window there are a couple of configuration parameters which must be set to make the software talk to the SDM300.
| parameter | description |
|---|---|
| address | The modem's RS485 packet address. Valid addresses are 1..255, 1 is the factory default. You must set the same address than set at the modem's front panel |
| Serial | Remember to set the line parameters for the serial interface connected to the device. The recommended line setting for the use with the sat-nms software is 19200,E,7,1 . You have to set the same value at the device's front panel. |
Remote / local switching
The SDM300 does not provide a local/remote parameter which can be set at the device. Instead, the SDM300 is set to remote control with a command sent by the M&C/VLC. Touching one of the buttons at the front panel normally reverts the modem to local front panel control. The software repeatedly sends the "REMOTE" command to be sure that the SDM300 is in remote mode at any time. Hence, if you want to operate a SDM300 which is connected to a sat-nms system at it's front panel, pull out the remote interface plug from or set the device 'out of service' at the software's user interface.
Variables defined by this device driver
| name | type | flags | range |
|---|---|---|---|
| info.driver | TEXT | R/O | StringRange R/O |
| lowLevel.cmd | TEXT | StringRange | |
| lowLevel.reply | TEXT | R/O | StringRange R/O |
| faults.99 | ALARM | R/O | AlarmFlagRange R/O (Communication) |
| faults.commstat | TEXT | R/O | StringRange R/O |
| info.type | TEXT | R/O | StringRange R/O |
| info.port | TEXT | R/O | StringRange R/O |
| info.frame | TEXT | R/O | StringRange R/O |
| info.id | TEXT | R/O | StringRange R/O |
| info.serial | TEXT | R/O | StringRange R/O |
| info.card.1 | TEXT | R/O | StringRange R/O |
| info.card.2 | TEXT | R/O | StringRange R/O |
| info.signal.on | CHOICE | R/O | EnumRange R/O (OFF ON) |
| reset | TEXT | NOPRESET | StringRange |
| modemType | CHOICE | EnumRange (IDR IBS DI ASYNC EFD CUSTOM) | |
| duplexMode | CHOICE | EnumRange (TX_ONLY RX_ONLY DUPLEX) | |
| refClkSrc | CHOICE | EnumRange (INT EXT1 EXT5 EXT10 EXT20) | |
| refClkFreq | FLOAT | DoubleRange (8.0 .. 10000.0) | |
| loopBack | CHOICE | EnumRange (OFF IFC BASEB IF RF) | |
| tx.frequency | FLOAT | DoubleRange (55.000000 .. 188.000000) | |
| tx.power | FLOAT | DoubleRange (-30.0 .. -5.0) | |
| tx.on | CHOICE | EnumRange (OFF ON) | |
| tx.mod.dataRate | INTEGER | IntegerRange (0 .. 0) | |
| tx.mod.symbolRate | INTEGER | R/O | IntegerRange R/O (0 .. 0) |
| tx.mod.type | CHOICE | EnumRange (SEQ VIT) | |
| tx.mod.fec | CHOICE | EnumRange (QPSK-1/2 QPSK-3/4 QPSK-7/8 BPSK-1/2) | |
| tx.mod.clockSource | CHOICE | EnumRange (INT EXT REF) | |
| tx.mod.cwMode | CHOICE | EnumRange (OFF DUAL OFFSET CENTER) | |
| tx.mod.spectrumInvert | CHOICE | EnumRange (NRM INV) | |
| tx.mod.scrambling | CHOICE | EnumRange (OFF ON) | |
| tx.mod.filter | CHOICE | EnumRange (INTL EFD CSC FDC SDM51) | |
| tx.mod.differential | CHOICE | EnumRange (OFF ON) | |
| tx.rs.bypass | CHOICE | EnumRange (OFF ON) | |
| tx.rs.interleave | CHOICE | EnumRange (4 8 16) | |
| tx.ifc.clockPhase | CHOICE | EnumRange (NRM INV AUTO) | |
| tx.ifc.dataPhase | CHOICE | EnumRange (NRM INV) | |
| tx.ifc.overheadType | CHOICE | EnumRange (NONE IDR IBS DI ASYNC) | |
| tx.ifc.framingMode | CHOICE | EnumRange (AMI HDB3 B8ZS) | |
| tx.ifc.hardware | CHOICE | EnumRange (G703 V35 RS422 RS232) | |
| tx.asy.baudrate | CHOICE | EnumRange (110 150 300 600 1200 2400 4800 9600 19200 38400) | |
| tx.asy.dataBits | CHOICE | EnumRange (5 6 7 8) | |
| tx.asy.stopBits | CHOICE | EnumRange (1 2) | |
| tx.asy.parity | CHOICE | EnumRange (ODD EVEN NONE) | |
| tx.asy.hardware | CHOICE | EnumRange (RS232 RS485 RS485_2W) | |
| tx.idr.overheadType | CHOICE | EnumRange (DATA AUDIO) | |
| tx.idr.bwAlarm.1 | CHOICE | EnumRange (OFF ON) | |
| tx.idr.bwAlarm.2 | CHOICE | EnumRange (OFF ON) | |
| tx.idr.bwAlarm.3 | CHOICE | EnumRange (OFF ON) | |
| tx.idr.bwAlarm.4 | CHOICE | EnumRange (OFF ON) | |
| tx.idr.audioLevel.1 | INTEGER | IntegerRange (-20 .. 10) | |
| tx.idr.audioLevel.2 | INTEGER | IntegerRange (-20 .. 10) | |
| rx.frequency | FLOAT | DoubleRange (50.000000 .. 180.000000) | |
| rx.dem.dataRate | INTEGER | IntegerRange (0 .. 0) | |
| rx.dem.symbolRate | INTEGER | R/O | IntegerRange R/O (0 .. 0) |
| rx.dem.type | CHOICE | EnumRange (SEQ VIT) | |
| rx.dem.fec | CHOICE | EnumRange (QPSK-1/2 QPSK-3/4 QPSK-7/8 BPSK-1/2) | |
| rx.dem.clockSource | CHOICE | EnumRange (INT EXT SAT REF INS) | |
| rx.dem.spectrumInvert | CHOICE | EnumRange (NRM INV) | |
| rx.dem.scrambling | CHOICE | EnumRange (OFF ON) | |
| rx.dem.filter | CHOICE | EnumRange (INTL EFD CSC FDC) | |
| rx.dem.differential | CHOICE | EnumRange (OFF ON) | |
| rx.dem.sweepMode | INTEGER | IntegerRange (0 .. 999) | |
| rx.dem.sweepOffset | INTEGER | IntegerRange (-35000 .. 35000) | |
| rx.dem.sweepRange | INTEGER | IntegerRange (0 .. 70000) | |
| rx.buf.size | INTEGER | IntegerRange (0 .. 99) | |
| rx.meter.signal | FLOAT | R/O | DoubleRange R/O (0.0 .. 0.0) |
| rx.meter.ber | TEXT | R/O | StringRange R/O |
| rx.meter.ebno | FLOAT | R/O | DoubleRange R/O (0.0 .. 0.0) |
| rx.meter.bufFill | INTEGER | R/O | IntegerRange R/O (0 .. 0) |
| rx.limit.ber | CHOICE | EnumRange (NONE 1E-3 1E-4 1E-5 1E-6 1E-7 1E-8) | |
| rx.rs.bypass | CHOICE | EnumRange (OFF ON CORR) | |
| rx.rs.interleave | CHOICE | EnumRange (4 8 16) | |
| rx.ifc.clockPhase | CHOICE | EnumRange (NRM INV) | |
| rx.ifc.dataPhase | CHOICE | EnumRange (NRM INV) | |
| rx.ifc.overheadType | CHOICE | EnumRange (NONE IDR IBS DI ASYNC) | |
| rx.ifc.framingMode | CHOICE | EnumRange (AMI HDB3 B8ZS) | |
| rx.ifc.hardware | CHOICE | EnumRange (G703 V35 RS422 RS232) | |
| rx.asy.baudrate | CHOICE | EnumRange (110 150 300 600 1200 2400 4800 9600 19200 38400) | |
| rx.asy.dataBits | CHOICE | EnumRange (5 6 7 8) | |
| rx.asy.stopBits | CHOICE | EnumRange (1 2) | |
| rx.asy.parity | CHOICE | EnumRange (ODD EVEN NONE) | |
| rx.asy.hardware | CHOICE | EnumRange (RS232 RS485) | |
| rx.idr.overheadType | CHOICE | EnumRange (DATA AUDIO) | |
| rx.idr.bwAlarm.1 | CHOICE | EnumRange (OFF ON) | |
| rx.idr.bwAlarm.2 | CHOICE | EnumRange (OFF ON) | |
| rx.idr.bwAlarm.3 | CHOICE | EnumRange (OFF ON) | |
| rx.idr.bwAlarm.4 | CHOICE | EnumRange (OFF ON) | |
| rx.idr.audioLevel.1 | INTEGER | IntegerRange (-20 .. 10) | |
| rx.idr.audioLevel.2 | INTEGER | IntegerRange (-20 .. 10) | |
| faults.01 | ALARM | R/O | AlarmFlagRange R/O (Modulator Module) |
| faults.02 | ALARM | R/O | AlarmFlagRange R/O (Modulator IF synth) |
| faults.03 | ALARM | R/O | AlarmFlagRange R/O (Data clock synth) |
| faults.04 | ALARM | R/O | AlarmFlagRange R/O (Mod. I-channel) |
| faults.05 | ALARM | R/O | AlarmFlagRange R/O (Mod. Q-channel) |
| faults.06 | ALARM | R/O | AlarmFlagRange R/O (Mod. AGC level) |
| faults.07 | ALARM | R/O | AlarmFlagRange R/O (Reference PLL lock) |
| faults.08 | ALARM | R/O | AlarmFlagRange R/O (Reference activity) |
| faults.09 | ALARM | R/O | AlarmFlagRange R/O (Demodulator Module) |
| faults.10 | ALARM | R/O | AlarmFlagRange R/O (Decoder lock) |
| faults.11 | ALARM | R/O | AlarmFlagRange R/O (Demod. IF synth) |
| faults.12 | ALARM | R/O | AlarmFlagRange R/O (Demod. I-channel) |
| faults.13 | ALARM | R/O | AlarmFlagRange R/O (Demod. Q-channel) |
| faults.14 | ALARM | R/O | AlarmFlagRange R/O (BER threshold) |
| faults.15 | ALARM | R/O | AlarmFlagRange R/O (Tx-ifc data/AIS) |
| faults.16 | ALARM | R/O | AlarmFlagRange R/O (Tx-ifc PLL lock) |
| faults.17 | ALARM | R/O | AlarmFlagRange R/O (Tx-ifc clk activity) |
| faults.18 | ALARM | R/O | AlarmFlagRange R/O (Drop) |
| faults.19 | ALARM | R/O | AlarmFlagRange R/O (Tx audio 1 clip) |
| faults.20 | ALARM | R/O | AlarmFlagRange R/O (Tx audio 2 clip) |
| faults.21 | ALARM | R/O | AlarmFlagRange R/O (Insert) |
| faults.22 | ALARM | R/O | AlarmFlagRange R/O (Buffer underflow) |
| faults.23 | ALARM | R/O | AlarmFlagRange R/O (Buffer overflow) |
| faults.24 | ALARM | R/O | AlarmFlagRange R/O (Rx-ifc data/AIS) |
| faults.25 | ALARM | R/O | AlarmFlagRange R/O (Frame BER) |
| faults.26 | ALARM | R/O | AlarmFlagRange R/O (Rx backward alarm) |
| faults.27 | ALARM | R/O | AlarmFlagRange R/O (Buffer clk activity) |
| faults.28 | ALARM | R/O | AlarmFlagRange R/O (Buffer clk PLL lock) |
| faults.29 | ALARM | R/O | AlarmFlagRange R/O (Demux lock) |
| faults.30 | ALARM | R/O | AlarmFlagRange R/O (2047 pat. lock detect) |
| faults.31 | ALARM | R/O | AlarmFlagRange R/O (Buffer full) |
| faults.32 | ALARM | R/O | AlarmFlagRange R/O (Rx audio 1 clip) |
| faults.33 | ALARM | R/O | AlarmFlagRange R/O (Rx audio 2 clip) |
| faults.34 | ALARM | R/O | AlarmFlagRange R/O (M&C Module) |
| faults.35 | ALARM | R/O | AlarmFlagRange R/O (Interface) |
| faults.36 | ALARM | R/O | AlarmFlagRange R/O (Battery) |
| faults.37 | ALARM | R/O | AlarmFlagRange R/O (Power supply +5V) |
| faults.38 | ALARM | R/O | AlarmFlagRange R/O (Power supply +12V) |
| faults.39 | ALARM | R/O | AlarmFlagRange R/O (Power supply -12V) |
| faults.40 | ALARM | R/O | AlarmFlagRange R/O (Tx Alarm #1) |
| faults.41 | ALARM | R/O | AlarmFlagRange R/O (Tx Alarm #2) |
| faults.42 | ALARM | R/O | AlarmFlagRange R/O (Tx Alarm #3) |
| faults.43 | ALARM | R/O | AlarmFlagRange R/O (Tx Alarm #4) |
| faults.44 | ALARM | R/O | AlarmFlagRange R/O (Rx Alarm #1) |
| faults.45 | ALARM | R/O | AlarmFlagRange R/O (Rx Alarm #2) |
| faults.46 | ALARM | R/O | AlarmFlagRange R/O (Rx Alarm #3) |
| faults.47 | ALARM | R/O | AlarmFlagRange R/O (Rx Alarm #4) |
| internal.cs | TEXT | R/O | StringRange R/O |
| internal.a | INTEGER | R/O | IntegerRange R/O (0 .. 0) |
| internal.b | INTEGER | R/O | IntegerRange R/O (0 .. 0) |
| internal.c | INTEGER | R/O | IntegerRange R/O (0 .. 0) |
| internal.d | INTEGER | R/O | IntegerRange R/O (0 .. 0) |
| internal.e | INTEGER | R/O | IntegerRange R/O (0 .. 0) |
| internal.f | INTEGER | R/O | IntegerRange R/O (0 .. 0) |
| internal.g | INTEGER | R/O | IntegerRange R/O (0 .. 0) |
| internal.h | INTEGER | R/O | IntegerRange R/O (0 .. 0) |
| internal.i | INTEGER | R/O | IntegerRange R/O (0 .. 0) |
| internal.j | INTEGER | R/O | IntegerRange R/O (0 .. 0) |
| internal.k | INTEGER | R/O | IntegerRange R/O (0 .. 0) |
| internal.l | INTEGER | R/O | IntegerRange R/O (0 .. 0) |
| internal.m | INTEGER | R/O | IntegerRange R/O (0 .. 0) |
| internal.n | INTEGER | R/O | IntegerRange R/O (0 .. 0) |
| internal.o | INTEGER | R/O | IntegerRange R/O (0 .. 0) |
| internal.p | INTEGER | R/O | IntegerRange R/O (0 .. 0) |
| internal.q | INTEGER | R/O | IntegerRange R/O (0 .. 0) |
| internal.r | INTEGER | R/O | IntegerRange R/O (0 .. 0) |