
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@12:4bb088c27838, 2019-10-07 (annotated)
- Committer:
- masterkookus
- Date:
- Mon Oct 07 12:44:38 2019 +0000
- Revision:
- 12:4bb088c27838
- Parent:
- 11:d40adc7de05f
- Child:
- 15:9ad261a27883
Added percent or value option
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 | 10:9da863a6da3e | 4 | const char fmCmd[5][2] = { |
masterkookus | 8:fa2a2c3a16ce | 5 | {0xA5,0xC0}, |
masterkookus | 8:fa2a2c3a16ce | 6 | {0xA5,0xC1}, |
masterkookus | 10:9da863a6da3e | 7 | {0xA5,0xD1}, |
masterkookus | 10:9da863a6da3e | 8 | {0xA5,0xC2}, |
masterkookus | 10:9da863a6da3e | 9 | {0xA5,0xD2} |
masterkookus | 8:fa2a2c3a16ce | 10 | }; |
masterkookus | 8:fa2a2c3a16ce | 11 | |
masterkookus | 9:d6e7981dfc89 | 12 | const char serCmd[5][7] = { |
masterkookus | 9:d6e7981dfc89 | 13 | {'M','E','T',' ','M','\r','\n'}, |
masterkookus | 9:d6e7981dfc89 | 14 | {'T','A','P','\r','\n',' ',' '}, |
masterkookus | 9:d6e7981dfc89 | 15 | {'A','C','C','\r','\n',' ',' '}, |
masterkookus | 9:d6e7981dfc89 | 16 | {'O','T','T','E','R','\r','\n'}, |
masterkookus | 9:d6e7981dfc89 | 17 | {'\r','\n',' ',' ',' ',' ',' '} |
masterkookus | 9:d6e7981dfc89 | 18 | }; |
masterkookus | 9:d6e7981dfc89 | 19 | |
masterkookus | 12:4bb088c27838 | 20 | const char serCmdSeq[2][5] = { |
masterkookus | 9:d6e7981dfc89 | 21 | {0x02,0x03,0x04,0x04,0x00}, |
masterkookus | 12:4bb088c27838 | 22 | {0x02,0x03,0x04,0x04,0x01} |
masterkookus | 12:4bb088c27838 | 23 | }; |
masterkookus | 12:4bb088c27838 | 24 | |
masterkookus | 12:4bb088c27838 | 25 | const char serCmdlen[2][5] = { |
masterkookus | 12:4bb088c27838 | 26 | {0x05,0x07,0x04,0x04,0x07}, |
masterkookus | 12:4bb088c27838 | 27 | {0x05,0x07,0x04,0x04,0x05} |
masterkookus | 9:d6e7981dfc89 | 28 | }; |
masterkookus | 9:d6e7981dfc89 | 29 | |
masterkookus | 8:fa2a2c3a16ce | 30 | const char vRegDevCfg[23] = { |
masterkookus | 8:fa2a2c3a16ce | 31 | 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 | 32 | }; |
masterkookus | 8:fa2a2c3a16ce | 33 | |
masterkookus | 8:fa2a2c3a16ce | 34 | struct analog1Sample { |
masterkookus | 8:fa2a2c3a16ce | 35 | char analogName[6]; |
masterkookus | 8:fa2a2c3a16ce | 36 | float analog1Value; |
masterkookus | 8:fa2a2c3a16ce | 37 | }; |
masterkookus | 8:fa2a2c3a16ce | 38 | struct analog2Sample { |
masterkookus | 8:fa2a2c3a16ce | 39 | char analogName[6]; |
masterkookus | 8:fa2a2c3a16ce | 40 | float analog1Value; |
masterkookus | 8:fa2a2c3a16ce | 41 | float analog2Value; |
masterkookus | 8:fa2a2c3a16ce | 42 | }; |
masterkookus | 8:fa2a2c3a16ce | 43 | struct analog3Sample { |
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 | }; |
masterkookus | 8:fa2a2c3a16ce | 49 | struct analog4Sample { |
masterkookus | 8:fa2a2c3a16ce | 50 | char analogName[6]; |
masterkookus | 8:fa2a2c3a16ce | 51 | float analog1Value; |
masterkookus | 8:fa2a2c3a16ce | 52 | float analog2Value; |
masterkookus | 8:fa2a2c3a16ce | 53 | float analog3Value; |
masterkookus | 8:fa2a2c3a16ce | 54 | float analog4Value; |
masterkookus | 8:fa2a2c3a16ce | 55 | }; |
masterkookus | 8:fa2a2c3a16ce | 56 | |
masterkookus | 8:fa2a2c3a16ce | 57 | struct fmTimeStamp { |
masterkookus | 8:fa2a2c3a16ce | 58 | char month; |
masterkookus | 8:fa2a2c3a16ce | 59 | char day; |
masterkookus | 8:fa2a2c3a16ce | 60 | char year; |
masterkookus | 8:fa2a2c3a16ce | 61 | char hour; |
masterkookus | 8:fa2a2c3a16ce | 62 | char min; |
masterkookus | 8:fa2a2c3a16ce | 63 | char sec; |
masterkookus | 8:fa2a2c3a16ce | 64 | short msec; |
masterkookus | 8:fa2a2c3a16ce | 65 | }; |
masterkookus | 8:fa2a2c3a16ce | 66 | |
masterkookus | 8:fa2a2c3a16ce | 67 | struct vRegData { |
masterkookus | 8:fa2a2c3a16ce | 68 | char numAnalog; |
masterkookus | 8:fa2a2c3a16ce | 69 | char numDigital; |
masterkookus | 10:9da863a6da3e | 70 | char numDemAnalog; |
masterkookus | 10:9da863a6da3e | 71 | struct analog1Sample analogs[27]; |
masterkookus | 11:d40adc7de05f | 72 | struct analog1Sample calculated[5]; |
masterkookus | 8:fa2a2c3a16ce | 73 | struct fmTimeStamp timeStamp; |
masterkookus | 10:9da863a6da3e | 74 | struct fmTimeStamp demTimeStamp; |
masterkookus | 8:fa2a2c3a16ce | 75 | char digitalTargets[52]; |
masterkookus | 8:fa2a2c3a16ce | 76 | }; |
masterkookus | 8:fa2a2c3a16ce | 77 | |
masterkookus | 8:fa2a2c3a16ce | 78 | void initVoltageRegulator(vRegData *vReg); |
masterkookus | 8:fa2a2c3a16ce | 79 | |
masterkookus | 8:fa2a2c3a16ce | 80 | #endif |