Device driver for the 3rd generation AntwerpSpace Omnisat G3 Demodulator (IPC based solution).
It can be used to control one demodulator instance in a Ominsat G3. If more than one demodulator is used inside a chassis, additional instances of this driver can be added under the same device thread. Assigning the dedicated demodulator can be done via device setup config.boardId . Additionally mixed board combinations can be covered by adding an Modulator HDRM AntwerpSpace-G3-Mod to the same thread/chassis.
This driver interfaces via REST HTTP to the demodulator web server it requires expert privileges to be able to do a counter reset / carrier reaquisition. Beside that the driver only contains HDRD operational access parameters. It does not contain parameters for: CCSDS-FEP (configurational) and DVBS-FEP (configurational and monitoring).
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 HDRD monitoring parameters
--- The HDRD configuration parameters
--- The CCSDS-FEP monitoring parameters
--- Load units mission/configuration presets
--- 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 unit.
| parameter | description |
|---|---|
| address | The REST HTTP specification for the device. The full address specification consists of the following fields: aaa.bbb.ccc.ddd:pppp username password aaa.bbb.ccc.ddd The IP address of the device to control in 'dotted quad' notation. This field is mandatory. pppp The IP port number where the device accepts http requests. The port number may be omitted, the driver uses the standard port 80 in this case. *username password The Web access username and password for expert access: (Default: og3expert and og3expertpwd) |
| boardId | Defines the board index where the HDRD demodulator is installed. |
HTTP session reuse
Multiple devices located in the same frame (using the same IP address) can be configured to share the same HTTP session. For this enter the IP address and login credentials at the 'address' config parameter of the first device. For all other devices enter the name of the first device instead. These devices then reuse the HTTP session / connection of the first device. This has several advantadges:
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.temp.adc | FLOAT | R/O | DoubleRange R/O (0.0 .. 0.0) |
| info.temp.board | FLOAT | R/O | DoubleRange R/O (0.0 .. 0.0) |
| info.temp.fpgaInt | FLOAT | R/O | DoubleRange R/O (0.0 .. 0.0) |
| info.temp.fpgaExt | FLOAT | R/O | DoubleRange R/O (0.0 .. 0.0) |
| info.demod.load | INTEGER | R/O | IntegerRange R/O (0 .. 0) |
| info.chan.load | INTEGER | R/O | IntegerRange R/O (0 .. 0) |
| info.arm.load | INTEGER | R/O | IntegerRange R/O (0 .. 0) |
| info.uuid | TEXT | R/O | StringRange R/O |
| internal.reply | TEXT | R/O | StringRange R/O |
| internal.mission | TEXT | R/O | StringRange R/O |
| internal.configuration | TEXT | R/O | StringRange R/O |
| config.boardId | CHOICE | SAVE SETUP | EnumRange (1 2 3 4 5) |
| config.readBackDelay | INTEGER | SAVE SETUP | IntegerRange (100 .. 10000) |
| rx.level | FLOAT | R/O | DoubleRange R/O (0.00 .. 0.00) |
| rx.frequency | FLOAT | R/O | DoubleRange R/O (0.000 .. 0.000) |
| rfBw | INTEGER | R/O | IntegerRange R/O (0 .. 10000) |
| meas.symbolrate | FLOAT | R/O | DoubleRange R/O (0.000000 .. 0.000000) |
| meas.bitRate | FLOAT | R/O | DoubleRange R/O (0.000000 .. 0.000000) |
| meas.q.bitRate | FLOAT | R/O | DoubleRange R/O (0.000000 .. 0.000000) |
| meas.q.symbolrate | FLOAT | R/O | DoubleRange R/O (0.000000 .. 0.000000) |
| esno | FLOAT | R/O | DoubleRange R/O (0.0 .. 0.0) |
| q.esno | FLOAT | R/O | DoubleRange R/O (0.0 .. 0.0) |
| ch.esno | FLOAT | R/O | DoubleRange R/O (0.0 .. 0.0) |
| acqTime | INTEGER | R/O | IntegerRange R/O (0 .. 0) |
| reacqCount | INTEGER | R/O | IntegerRange R/O (0 .. 0) |
| tx.bitrate | FLOAT | R/O | DoubleRange R/O (0.000000 .. 0.000000) |
| tx.q.bitrate | FLOAT | R/O | DoubleRange R/O (0.000000 .. 0.000000) |
| perturbation | FLOAT | R/O | DoubleRange R/O (0.00000000000 .. 0.00000000000) |
| jitter | FLOAT | R/O | DoubleRange R/O (0.0000000000000 .. 0.0000000000000) |
| prbs1 | FLOAT | R/O | DoubleRange R/O (0.0 .. 0.0) |
| prbs1.resync | INTEGER | R/O | IntegerRange R/O (0 .. 0) |
| prbs1.polarity | CHOICE | R/O | EnumRange R/O (NORMAL INVERTED) |
| prbs2 | FLOAT | R/O | DoubleRange R/O (0.0 .. 0.0) |
| prbs2.resync | INTEGER | R/O | IntegerRange R/O (0 .. 0) |
| prbs2.polarity | CHOICE | R/O | EnumRange R/O (NORMAL INVERTED) |
| perturbationDll1 | FLOAT | R/O | DoubleRange R/O (0.00000000000 .. 0.00000000000) |
| perturbationDll2 | FLOAT | R/O | DoubleRange R/O (0.00000000000 .. 0.00000000000) |
| jitterDll1 | FLOAT | R/O | DoubleRange R/O (0.0000000000000 .. 0.0000000000000) |
| jitterDll2 | FLOAT | R/O | DoubleRange R/O (0.0000000000000 .. 0.0000000000000) |
| meas.convDec1 | INTEGER | R/O | IntegerRange R/O (0 .. 0) |
| meas.convDec2 | INTEGER | R/O | IntegerRange R/O (0 .. 0) |
| prbs.convDec1 | FLOAT | R/O | DoubleRange R/O (0.0 .. 0.0) |
| prbs.convDec2 | FLOAT | R/O | DoubleRange R/O (0.0 .. 0.0) |
| tcmDec | FLOAT | R/O | DoubleRange R/O (0.0000000000000 .. 0.0000000000000) |
| reference | CHOICE | R/O | EnumRange R/O (INTERNAL EXTERNAL) |
| flags.carrier | BOOLEAN | R/O | BooleanRange R/O (true false) |
| flags.agc | BOOLEAN | R/O | BooleanRange R/O (true false) |
| flags.perturbation | BOOLEAN | R/O | BooleanRange R/O (true false) |
| flags.jitter | BOOLEAN | R/O | BooleanRange R/O (true false) |
| flags.cw | BOOLEAN | R/O | BooleanRange R/O (true false) |
| flags.syncI | BOOLEAN | R/O | BooleanRange R/O (true false) |
| flags.syncQ | BOOLEAN | R/O | BooleanRange R/O (true false) |
| flags.jitterDll1 | BOOLEAN | R/O | BooleanRange R/O (true false) |
| flags.jitterDll2 | BOOLEAN | R/O | BooleanRange R/O (true false) |
| flags.perturbationDll1 | BOOLEAN | R/O | BooleanRange R/O (true false) |
| flags.perturbationDll2 | BOOLEAN | R/O | BooleanRange R/O (true false) |
| flags.convDec1 | BOOLEAN | R/O | BooleanRange R/O (true false) |
| flags.convDec2 | BOOLEAN | R/O | BooleanRange R/O (true false) |
| flags.tcmDec | BOOLEAN | R/O | BooleanRange R/O (true false) |
| flags.reference | BOOLEAN | R/O | BooleanRange R/O (true false) |
| flags.ccsds | BOOLEAN | R/O | BooleanRange R/O (true false) |
| ccsds.bitSlipFrame | INTEGER | R/O | IntegerRange R/O (0 .. 0) |
| ccsds.syncWordErr | INTEGER | R/O | IntegerRange R/O (0 .. 0) |
| ccsds.asmBer | FLOAT | R/O | DoubleRange R/O (0.000 .. 0.000) |
| ccsds.fs | INTEGER | R/O | IntegerRange R/O (0 .. 0) |
| ccsds.fsCheck | INTEGER | R/O | IntegerRange R/O (0 .. 0) |
| ccsds.fsLock | INTEGER | R/O | IntegerRange R/O (0 .. 0) |
| ccsds.fsFly | INTEGER | R/O | IntegerRange R/O (0 .. 0) |
| ccsds.fsToSearch | INTEGER | R/O | IntegerRange R/O (0 .. 0) |
| ccsds.rsFrame | INTEGER | R/O | IntegerRange R/O (0 .. 0) |
| ccsds.rsCorFrame | INTEGER | R/O | IntegerRange R/O (0 .. 0) |
| ccsds.rsUncorFrame | INTEGER | R/O | IntegerRange R/O (0 .. 0) |
| ccsds.rsUncorBlock | INTEGER | R/O | IntegerRange R/O (0 .. 0) |
| ccsds.rsCorHdr | INTEGER | R/O | IntegerRange R/O (0 .. 0) |
| ccsds.rsUncorHdr | INTEGER | R/O | IntegerRange R/O (0 .. 0) |
| ccsds.rsCorCodeHdr | INTEGER | R/O | IntegerRange R/O (0 .. 0) |
| ccsds.rsCorCodeData | INTEGER | R/O | IntegerRange R/O (0 .. 0) |
| ccsds.crcErr | INTEGER | R/O | IntegerRange R/O (0 .. 0) |
| ccsds.ldpcFrame | INTEGER | R/O | IntegerRange R/O (0 .. 0) |
| ccsds.ldpcCorFrame | INTEGER | R/O | IntegerRange R/O (0 .. 0) |
| ccsds.ldpcUncorFrame | INTEGER | R/O | IntegerRange R/O (0 .. 0) |
| ccsds.ldpcDecoder | INTEGER | R/O | IntegerRange R/O (0 .. 0) |
| ccsds.ldpcDisambiguation | INTEGER | R/O | IntegerRange R/O (0 .. 0) |
| adcRate | INTEGER | IntegerRange (0 .. 2500) | |
| iBitRate | FLOAT | R/O | DoubleRange R/O (1.0000 .. 975.0000) |
| qBitRate | FLOAT | R/O | DoubleRange R/O (1.0000 .. 975.0000) |
| iSymbolRate | FLOAT | DoubleRange (1.0000 .. 325.0000) | |
| qSymbolRate | FLOAT | DoubleRange (1.0000 .. 325.0000) | |
| modulation | CHOICE | EnumRange (BPSK QPSK SQPSK UQPSK AQPSK 8PSK GMSK) | |
| inpSelect | CHOICE | EnumRange (INTERNAL EXTERNAL) | |
| frequency | FLOAT | DoubleRange (0.000 .. 0.000) | |
| rfFrequency | FLOAT | DoubleRange (2000.000 .. 20000.000) | |
| loPolarity | CHOICE | EnumRange (NORMAL INVERTED) | |
| pll | CHOICE | EnumRange (OPEN CLOSED) | |
| searchRange | INTEGER | IntegerRange (0 .. 3000) | |
| preLockBw | INTEGER | IntegerRange (0 .. 100) | |
| postLockBw | INTEGER | IntegerRange (0 .. 100) | |
| damping | INTEGER | IntegerRange (0 .. 2) | |
| chanFilter | CHOICE | EnumRange (RECTANGULAR SRRC RC) | |
| chanFilterRolloff | FLOAT | DoubleRange (0.10 .. 1.00) | |
| diffDec1 | CHOICE | EnumRange (OFF ON) | |
| diffDec2 | CHOICE | EnumRange (OFF ON) | |
| convDec1 | CHOICE | EnumRange (OFF ON) | |
| convDec2 | CHOICE | EnumRange (OFF ON) | |
| diffDecMode1 | CHOICE | EnumRange (QPSK 0 QPSK 1 QPSK 2 QPSK 3 QPSK 4 QPSK 5 QPSK 6 QPSK 7 QPSK 8 BPSK NRZ-M BPSK NRZ-S) | |
| diffDecMode2 | CHOICE | EnumRange (QPSK 0 QPSK 1 QPSK 2 QPSK 3 QPSK 4 QPSK 5 QPSK 6 QPSK 7 QPSK 8 BPSK NRZ-M BPSK NRZ-S) | |
| convDecMode | CHOICE | EnumRange (SERIAL PARALLEL) | |
| convDec1Rate | CHOICE | EnumRange (1/2 2/3 3/4 5/6 7/8) | |
| convDec2Rate | CHOICE | EnumRange (1/2 2/3 3/4 5/6 7/8) | |
| prbsType1 | CHOICE | EnumRange (INTERVAL ACCUMULATED) | |
| prbsType2 | CHOICE | EnumRange (INTERVAL ACCUMULATED) | |
| ber1DataSelect | CHOICE | EnumRange (DEMOD-I DEMOD-Q INNER-CH1 INNER-CH2 CCDS-CH1 CCDS-CH2 DVBS-FEP 8PSK-TCM DEMOD-MERGE INNER-MERGE) | |
| ber2DataSelect | CHOICE | EnumRange (DEMOD-I DEMOD-Q INNER-CH1 INNER-CH2 CCDS-CH1 CCDS-CH2 DVBS-FEP 8PSK-TCM DEMOD-MERGE INNER-MERGE) | |
| eclDataA | CHOICE | EnumRange (DEMOD-I DEMOD-Q INNER-CH1 INNER-CH2 CCDS-CH1 CCDS-CH2 DVBS-FEP 8PSK-TCM DEMOD-MERGE INNER-MERGE) | |
| eclDataB | CHOICE | EnumRange (DEMOD-I DEMOD-Q INNER-CH1 INNER-CH2 CCDS-CH1 CCDS-CH2 DVBS-FEP 8PSK-TCM DEMOD-MERGE INNER-MERGE) | |
| ethDataA | CHOICE | EnumRange (DEMOD-I DEMOD-Q INNER-CH1 INNER-CH2 CCDS-CH1 CCDS-CH2 DVBS-FEP 8PSK-TCM DEMOD-MERGE INNER-MERGE) | |
| ethDataB | CHOICE | EnumRange (DEMOD-I DEMOD-Q INNER-CH1 INNER-CH2 CCDS-CH1 CCDS-CH2 DVBS-FEP 8PSK-TCM DEMOD-MERGE INNER-MERGE) | |
| recDataA | CHOICE | EnumRange (DEMOD-I DEMOD-Q INNER-CH1 INNER-CH2 CCDS-CH1 CCDS-CH2 DVBS-FEP 8PSK-TCM DEMOD-MERGE INNER-MERGE) | |
| recDataB | CHOICE | EnumRange (DEMOD-I DEMOD-Q INNER-CH1 INNER-CH2 CCDS-CH1 CCDS-CH2 DVBS-FEP 8PSK-TCM DEMOD-MERGE INNER-MERGE) | |
| prbsPoly1 | CHOICE | EnumRange (PRBS 7 PRBS 10 PRBS 11 PRBS 15 PRBS 23 PRBS 31) | |
| prbsPoly2 | CHOICE | EnumRange (PRBS 7 PRBS 10 PRBS 11 PRBS 15 PRBS 23 PRBS 31) | |
| prbsResync1 | CHOICE | EnumRange (45% 25% 10% 5%) | |
| prbsResync2 | CHOICE | EnumRange (45% 25% 10% 5%) | |
| clockEdge | CHOICE | EnumRange (RISING FALLING) | |
| clockEcl | CHOICE | EnumRange (OFF ON) | |
| demodAmbiguity | CHOICE | EnumRange (OFF ON) | |
| dataInv | CHOICE | EnumRange (OFF ON) | |
| dataInvQ | CHOICE | EnumRange (OFF ON) | |
| dataInvDec1 | CHOICE | EnumRange (OFF ON) | |
| dataInvCc1 | CHOICE | EnumRange (OFF ON) | |
| bitOrderRaw | CHOICE | EnumRange (ODD EVEN) | |
| bitOrderInner | CHOICE | EnumRange (ODD EVEN) | |
| mission | CHOICE | EnumRange (?) | |
| configuration | CHOICE | EnumRange (?) | |
| loadConfiguration | TEXT | NOPRESET | StringRange |
| reset | TEXT | NOPRESET | StringRange |
| record | TEXT | NOPRESET | StringRange |
| recordstop | TEXT | NOPRESET | StringRange |
| faults.01 | ALARM | R/O | AlarmFlagRange R/O (Carrier Loop) |
| faults.02 | ALARM | R/O | AlarmFlagRange R/O (Timing Loop) |
| faults.03 | ALARM | R/O | AlarmFlagRange R/O (AGC Loop) |
| faults.04 | ALARM | R/O | AlarmFlagRange R/O (PLL Perturbation) |
| faults.05 | ALARM | R/O | AlarmFlagRange R/O (PLL Jitter) |
| faults.06 | ALARM | R/O | AlarmFlagRange R/O (Timing Loop I) |
| faults.07 | ALARM | R/O | AlarmFlagRange R/O (Timing Loop Q) |
| faults.08 | ALARM | R/O | AlarmFlagRange R/O (DLL1 Perturbation) |
| faults.09 | ALARM | R/O | AlarmFlagRange R/O (DLL1 Jitter) |
| faults.10 | ALARM | R/O | AlarmFlagRange R/O (DLL2 Perturbation) |
| faults.11 | ALARM | R/O | AlarmFlagRange R/O (DLL2 Jitter) |
| faults.12 | ALARM | R/O | AlarmFlagRange R/O (Conv Dec1) |
| faults.13 | ALARM | R/O | AlarmFlagRange R/O (Conv Dec2) |
| faults.14 | ALARM | R/O | AlarmFlagRange R/O (TCM Dec) |
| faults.15 | ALARM | R/O | AlarmFlagRange R/O (Reference) |
| faults.16 | ALARM | R/O | AlarmFlagRange R/O (External Ref) |
| faults.17 | ALARM | R/O | AlarmFlagRange R/O (CCSDS FEP Sync) |