[1] | 1 | #ifndef __PLC_H
|
---|
| 2 | #define __PLC_H
|
---|
| 3 | #include <stdint.h>
|
---|
| 4 |
|
---|
| 5 | #define AMOUNT_REMOUT_BLOCK_PLC 3
|
---|
| 6 | #define AMOUNT_BLOCK_PLC AMOUNT_REMOUT_BLOCK_PLC + 1
|
---|
| 7 |
|
---|
| 8 | #define PLC_ADDR_BOARD 0x0E // board ÈÏ 01
|
---|
| 9 | #define PLC_MARKER_BOARD 0xEE
|
---|
| 10 |
|
---|
| 11 | #define MAX_LEN_PLC_BUFF 1536
|
---|
| 12 |
|
---|
| 13 | typedef struct {
|
---|
| 14 | uint16_t len;
|
---|
| 15 | uint8_t data[MAX_LEN_PLC_BUFF + 64];
|
---|
| 16 | }plc_buff_typeDef;
|
---|
| 17 |
|
---|
| 18 | typedef struct {
|
---|
| 19 | uint8_t Pointer;
|
---|
| 20 | uint8_t Buff[MAX_LEN_PLC_BUFF];
|
---|
| 21 | uint16_t LenBuff;
|
---|
| 22 | }plc_TxData_typeDef;
|
---|
| 23 |
|
---|
| 24 | typedef struct {
|
---|
| 25 | _Bool Valid;
|
---|
| 26 | uint8_t Query; // çàïðîñ äàííûõ
|
---|
| 27 | uint8_t Pointer;
|
---|
| 28 | uint8_t Buff[MAX_LEN_PLC_BUFF];
|
---|
| 29 | uint16_t LenBuff;
|
---|
| 30 | }plc_RxData_typeDef;
|
---|
| 31 |
|
---|
| 32 | typedef enum { //b
|
---|
| 33 | FPRM,
|
---|
| 34 | FPRMS
|
---|
| 35 | }TypeFilter_typeDef;
|
---|
| 36 |
|
---|
| 37 | typedef enum { //a
|
---|
| 38 | P_NONE,
|
---|
| 39 | P_20W,
|
---|
| 40 | P_40W
|
---|
| 41 | }PowerPRD_typedef;
|
---|
| 42 |
|
---|
| 43 | typedef enum {
|
---|
| 44 | ATT_FPRM_0 = 0,
|
---|
| 45 | ATT_FPRM_6,
|
---|
| 46 | ATT_FPRM_12,
|
---|
| 47 | ATT_FPRM_18,
|
---|
| 48 | ATT_FPRM_24
|
---|
| 49 | }FilterATT_typeDef;
|
---|
| 50 |
|
---|
| 51 | typedef enum {
|
---|
| 52 | NO_SIGNAL,
|
---|
| 53 | OVERLOAD,
|
---|
| 54 | ACTIVATION,
|
---|
| 55 | RECEIVING
|
---|
| 56 | }StatusReceiver_typeDef;
|
---|
| 57 |
|
---|
| 58 | typedef enum {
|
---|
| 59 | ANALOG,
|
---|
| 60 | TRANSIT,
|
---|
| 61 | DIGITAL_MASTER,
|
---|
| 62 | DIGITAL_SLAVE
|
---|
| 63 | }ModeChannel_typeDef;
|
---|
| 64 |
|
---|
| 65 | typedef enum {
|
---|
| 66 | NO_ALARM,
|
---|
| 67 | LINE_BREAK,
|
---|
| 68 | FAILURE_PRD,
|
---|
| 69 | NO_SIGNAL_PWR_AMP,
|
---|
| 70 | HIGH_TEMPERATURE
|
---|
| 71 | }pwrAmpAlarm_typeDef;
|
---|
| 72 |
|
---|
| 73 | typedef struct { //(UM-02)
|
---|
| 74 | _Bool Presence;
|
---|
| 75 | uint8_t Version;
|
---|
| 76 | pwrAmpAlarm_typeDef Alarm;
|
---|
| 77 | uint8_t Level_Transmitter; // l-prd
|
---|
| 78 | uint8_t Temp;
|
---|
| 79 | uint16_t Voltage;
|
---|
| 80 | }PowerAmplifier_typeDef;
|
---|
| 81 |
|
---|
| 82 | typedef struct {
|
---|
| 83 | _Bool En; //Âêëþ÷åí/âûêëþ÷åí ïðèåìíèê (ÌÄ-02): Ðåã 0x11, 0x12, 0x13 (áàéò 3[7])
|
---|
| 84 | StatusReceiver_typeDef Status_Receiver;
|
---|
| 85 | ModeChannel_typeDef Mode;
|
---|
| 86 | uint16_t Frequency_Transmitter; // ×àòîòà ïåðåäàò÷èêà (ÌÄ-02): Ðåã 0x11, 0x12, 0x13 (áàéòû (3,2)[9:0])
|
---|
| 87 | uint16_t Frequency_Receiver; // ×àòîòà ïðèåìíèêà (ÌÄ-02): Ðåã 0x11, 0x12, 0x13 (áàéòû (5,4)[9:0])
|
---|
| 88 | int16_t Level_Receiver; // Óðîâåíü ñèãíàëà ïðèåìíèêà ((Level_InputSignal * -0,2) + 0,007 + Frequency_Receiver + 9 + 2a + 2b + ATT) (-20...+30 dBm)
|
---|
| 89 | int16_t Level_InputSignal; // Óðîâåíü âõîäíîãî ñèãíàëà (ÌÄ-02): Ðåã - 0x15, 0x16, 0x17 (áàéò 3), (0.0..-51.0 äÁ, -0.2äÁ/åä)
|
---|
| 90 | uint16_t Rate_Transmitter; // Ñêîðîñòü ïåðåäàò÷èêà (ÌÄ-02): Ðåã - 0x15, 0x16, 0x17 (áàéò 4) (0,1...30 êá/ñ)
|
---|
| 91 | uint16_t Rate_Receiver; //Ñêîðîñòü ïðèåìíèêà (ÌÄ-02): Ðåã - 0x15, 0x16, 0x17 (áàéò 5) (0,1 - 30 êá/ñ)
|
---|
| 92 | uint16_t QualityNoise_Receiver; // Çàïàñ ïî øóìó ïðèåìíèêà (ÌÄ-02): Ðåã - 0x15, 0x16, 0x17 (áàéò 6) (10...30 dB)
|
---|
| 93 | uint16_t SNR_Receiver; // Îòíîøåíèå ñèãíàë/øóì (Rate_Receiver + QualityNoise_Receiver - 2) (10...40 dB)
|
---|
| 94 | uint8_t Kosh_sig;// êîýôôèöèåíò áèòîâûõ îøèáîê (sig * 10)
|
---|
| 95 | int8_t Kosh_exp; // -7 ñòåïåíü ê ïðèìåðó
|
---|
| 96 | uint8_t Kosh_raw;
|
---|
| 97 | uint16_t CounterError;
|
---|
| 98 | }plc_Channel_typeDef;
|
---|
| 99 |
|
---|
| 100 | typedef struct {
|
---|
| 101 | char NameBlock[64];
|
---|
| 102 | _Bool ChangeSettings; // ôëàã åñëè íàñòðîéêè ìåíÿþòñÿ è íóæíî ñäåëàòü îòñóòñòâóþùèì áëîê
|
---|
| 103 | _Bool EnablePoll;
|
---|
| 104 | uint8_t PollingTimeout; // âðåìÿ ÷åðåç êîòîðîå îïðàøèâàòü áëîê(â ñåêóíäàõ)
|
---|
| 105 | uint8_t Route[9];
|
---|
| 106 | uint8_t CommonAlarm; // 1 - missing block, 0 - normal, 2 - alarm
|
---|
| 107 | uint8_t VersionMD;
|
---|
| 108 | char Version[16];
|
---|
| 109 | TypeFilter_typeDef Type_Filter;
|
---|
| 110 | PowerPRD_typedef Power_PRD;
|
---|
| 111 | FilterATT_typeDef FilterATT;
|
---|
| 112 | plc_Channel_typeDef HF_Channel[3];
|
---|
| 113 | PowerAmplifier_typeDef PowerAmplifier[2];
|
---|
| 114 | }plc_data_typeDef;
|
---|
| 115 |
|
---|
| 116 | typedef struct {
|
---|
| 117 | _Bool enable_all_pool;
|
---|
| 118 | uint8_t num; // êîë-âî áëîêîâ äëÿ îïðîñà
|
---|
| 119 | uint8_t change_block; // äëÿ ïåðåíîñà áëîêîâ
|
---|
| 120 | }plc_common_typeDef;
|
---|
| 121 |
|
---|
| 122 | uint16_t plc_calc_cs(uint8_t *buff, uint16_t len);
|
---|
| 123 | void plc_receive(uint8_t ch);
|
---|
| 124 | uint16_t escape_encoder(uint8_t *buff, uint16_t len_buf, uint8_t *out_biff);
|
---|
| 125 | uint8_t my_cmd_plc(plc_RxData_typeDef *PLCRxData, plc_TxData_typeDef *PLCTxData);
|
---|
| 126 |
|
---|
| 127 | #endif /* __PLC_H */
|
---|