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 */
|
---|