This demonstrates the process of communicating through ethernet to a SEL-2431 Voltage Regulator Control Panel using SEL Fast Message. Basic device commands and data cna be requested and displayed over a connected serial port. This is a basic version and full testing and documentation has yet to be completed.
Dependencies: BufferedSerial analogAverager voltageRegulator netStatReg analogMinMax CounterMinMax
selMsg.h@8:fa2a2c3a16ce, 2019-09-26 (annotated)
- Committer:
- masterkookus
- Date:
- Thu Sep 26 18:40:53 2019 +0000
- Revision:
- 8:fa2a2c3a16ce
- Child:
- 9:d6e7981dfc89
Command Response and Data Storage;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
masterkookus | 8:fa2a2c3a16ce | 1 | #ifndef SELMSG_H |
masterkookus | 8:fa2a2c3a16ce | 2 | #define SELMSG_H |
masterkookus | 8:fa2a2c3a16ce | 3 | |
masterkookus | 8:fa2a2c3a16ce | 4 | const char fmCmd[3][2] = { |
masterkookus | 8:fa2a2c3a16ce | 5 | {0xA5,0xC0}, |
masterkookus | 8:fa2a2c3a16ce | 6 | {0xA5,0xC1}, |
masterkookus | 8:fa2a2c3a16ce | 7 | {0xA5,0xD1} |
masterkookus | 8:fa2a2c3a16ce | 8 | }; |
masterkookus | 8:fa2a2c3a16ce | 9 | |
masterkookus | 8:fa2a2c3a16ce | 10 | const char vRegDevCfg[23] = { |
masterkookus | 8:fa2a2c3a16ce | 11 | 0xA5,0xC0,0x17,0x02,0x03,0x00,0xA5,0xC1,0xA5,0xD1,0xA5,0xC2,0xA5,0xD2,0xA5,0xC3,0xA5,0xD3,0x01,0x00,0x00,0x05,0x21 |
masterkookus | 8:fa2a2c3a16ce | 12 | }; |
masterkookus | 8:fa2a2c3a16ce | 13 | |
masterkookus | 8:fa2a2c3a16ce | 14 | /*const char vRegMsgCfg204] = { |
masterkookus | 8:fa2a2c3a16ce | 15 | 0xA5,0xC1,0xBB,0x01,0x00,0x00,0x11,0x01,0x34,0x00,0x00,0x04,0x00,0x48,0x00,0x50,0x49,0x4C,0x00,0x00,0x00,0x00,0x01,0xFF, |
masterkookus | 8:fa2a2c3a16ce | 16 | 0xFF,0x00,0x00,0x49,0x4C,0x41,0x00,0x00,0x00,0x01,0xFF,0xFF,0x00,0x00,0x56,0x53,0x00,0x00,0x00,0x00,0x01,0xFF,0xFF,0x00, |
masterkookus | 8:fa2a2c3a16ce | 17 | 0x00,0x56,0x53,0x41,0x00,0x00,0x00,0x01,0xFF,0xFF,0x00,0x00,0x56,0x4C,0x00,0x00,0x00,0x00,0x01,0xFF,0xFF,0x00,0x00,0x56, |
masterkookus | 8:fa2a2c3a16ce | 18 | 0x4C,0x41,0x00,0x00,0x00,0x01,0xFF,0xFF,0x00,0x00,0x56,0x43,0x4D,0x50,0x00,0x00,0x01,0xFF,0xFF,0x00,0x00,0x54,0x41,0x50, |
masterkookus | 8:fa2a2c3a16ce | 19 | 0x50,0x4F,0x53,0x01,0xFF,0xFF,0x00,0x00,0x56,0x53,0x53,0x45,0x43,0x00,0x01,0xFF,0xFF,0x00,0x00,0x56,0x4C,0x53,0x45,0x43, |
masterkookus | 8:fa2a2c3a16ce | 20 | 0x00,0x01,0xFF,0xFF,0x00,0x00,0x56,0x43,0x4D,0x50,0x53,0x43,0x01,0xFF,0xFF,0x00,0x00,0x50,0x4C,0x00,0x00,0x00,0x00,0x01, |
masterkookus | 8:fa2a2c3a16ce | 21 | 0xFF,0xFF,0x00,0x00,0x51,0x4C,0x00,0x00,0x00,0x00,0x01,0xFF,0xFF,0x00,0x00,0x53,0x4C,0x00,0x00,0x00,0x00,0x01,0xFF,0xFF, |
masterkookus | 8:fa2a2c3a16ce | 22 | 0x00,0x00,0x50,0x46,0x00,0x00,0x00,0x00,0x01,0xFF,0xFF,0x00,0x00,0x50,0x46,0x4C,0x44,0x00,0x00,0x01,0xFF,0xFF,0x00,0x00, |
masterkookus | 8:fa2a2c3a16ce | 23 | 0x46,0x52,0x45,0x51,0x00,0x00,0x01,0xFF,0xFF,0x00,0x00,0x23 |
masterkookus | 8:fa2a2c3a16ce | 24 | };*/ |
masterkookus | 8:fa2a2c3a16ce | 25 | |
masterkookus | 8:fa2a2c3a16ce | 26 | //short2byte analogScaleOffset; |
masterkookus | 8:fa2a2c3a16ce | 27 | |
masterkookus | 8:fa2a2c3a16ce | 28 | struct analog1Sample { |
masterkookus | 8:fa2a2c3a16ce | 29 | char analogName[6]; |
masterkookus | 8:fa2a2c3a16ce | 30 | float analog1Value; |
masterkookus | 8:fa2a2c3a16ce | 31 | }; |
masterkookus | 8:fa2a2c3a16ce | 32 | struct analog2Sample { |
masterkookus | 8:fa2a2c3a16ce | 33 | char analogName[6]; |
masterkookus | 8:fa2a2c3a16ce | 34 | float analog1Value; |
masterkookus | 8:fa2a2c3a16ce | 35 | float analog2Value; |
masterkookus | 8:fa2a2c3a16ce | 36 | }; |
masterkookus | 8:fa2a2c3a16ce | 37 | struct analog3Sample { |
masterkookus | 8:fa2a2c3a16ce | 38 | char analogName[6]; |
masterkookus | 8:fa2a2c3a16ce | 39 | float analog1Value; |
masterkookus | 8:fa2a2c3a16ce | 40 | float analog2Value; |
masterkookus | 8:fa2a2c3a16ce | 41 | float analog3Value; |
masterkookus | 8:fa2a2c3a16ce | 42 | }; |
masterkookus | 8:fa2a2c3a16ce | 43 | struct analog4Sample { |
masterkookus | 8:fa2a2c3a16ce | 44 | char analogName[6]; |
masterkookus | 8:fa2a2c3a16ce | 45 | float analog1Value; |
masterkookus | 8:fa2a2c3a16ce | 46 | float analog2Value; |
masterkookus | 8:fa2a2c3a16ce | 47 | float analog3Value; |
masterkookus | 8:fa2a2c3a16ce | 48 | float analog4Value; |
masterkookus | 8:fa2a2c3a16ce | 49 | }; |
masterkookus | 8:fa2a2c3a16ce | 50 | |
masterkookus | 8:fa2a2c3a16ce | 51 | struct fmTimeStamp { |
masterkookus | 8:fa2a2c3a16ce | 52 | char month; |
masterkookus | 8:fa2a2c3a16ce | 53 | char day; |
masterkookus | 8:fa2a2c3a16ce | 54 | char year; |
masterkookus | 8:fa2a2c3a16ce | 55 | char hour; |
masterkookus | 8:fa2a2c3a16ce | 56 | char min; |
masterkookus | 8:fa2a2c3a16ce | 57 | char sec; |
masterkookus | 8:fa2a2c3a16ce | 58 | short msec; |
masterkookus | 8:fa2a2c3a16ce | 59 | }; |
masterkookus | 8:fa2a2c3a16ce | 60 | |
masterkookus | 8:fa2a2c3a16ce | 61 | struct vRegData { |
masterkookus | 8:fa2a2c3a16ce | 62 | char numAnalog; |
masterkookus | 8:fa2a2c3a16ce | 63 | char numDigital; |
masterkookus | 8:fa2a2c3a16ce | 64 | struct analog1Sample analogs[17]; |
masterkookus | 8:fa2a2c3a16ce | 65 | struct fmTimeStamp timeStamp; |
masterkookus | 8:fa2a2c3a16ce | 66 | char digitalTargets[52]; |
masterkookus | 8:fa2a2c3a16ce | 67 | }; |
masterkookus | 8:fa2a2c3a16ce | 68 | |
masterkookus | 8:fa2a2c3a16ce | 69 | void initVoltageRegulator(vRegData *vReg); |
masterkookus | 8:fa2a2c3a16ce | 70 | |
masterkookus | 8:fa2a2c3a16ce | 71 | #endif |