##// END OF EJS Templates
target is set to 254 (LFR address)...
paul@pc-solar1.lab-lpp.local -
r14:b984446d1da2 default
parent child
Show More
1 NO CONTENT: modified file, binary diff hidden
NO CONTENT: modified file, binary diff hidden
@@ -1,142 +1,142
1 #ifndef CCSDS_H_INCLUDED
1 #ifndef CCSDS_H_INCLUDED
2 #define CCSDS_H_INCLUDED
2 #define CCSDS_H_INCLUDED
3
3
4 #define CCSDS_TELEMETRY_HEADER_LENGTH 16+4
4 #define CCSDS_TELEMETRY_HEADER_LENGTH 16+4
5 #define CCSDS_TM_PKT_MAX_SIZE 4412
5 #define CCSDS_TM_PKT_MAX_SIZE 4412
6 #define CCSDS_TELECOMMAND_HEADER_LENGTH 10+4
6 #define CCSDS_TELECOMMAND_HEADER_LENGTH 10+4
7 #define CCSDS_TC_PKT_MAX_SIZE 50 // size of the TC_LFR_UPDATE_INFO packet
7 #define CCSDS_TC_PKT_MAX_SIZE 50 // size of the TC_LFR_UPDATE_INFO packet
8 #define CCSDS_TC_TM_PACKET_OFFSET 7
8 #define CCSDS_TC_TM_PACKET_OFFSET 7
9 #define CCSDS_PROCESS_ID 76
9 #define CCSDS_PROCESS_ID 76
10 #define CCSDS_PACKET_CATEGORY 12
10 #define CCSDS_PACKET_CATEGORY 12
11 #define CCSDS_NODE_ADDRESS 0x01 // SY_DPU_LFR_LA 1 is not allowed by the StarDundee brick, use 101 instead 0x65
11 #define CCSDS_NODE_ADDRESS 0xfe
12 #define CCSDS_DESTINATION_ID 0x02 // SY_LFR_DPU_LA 2 is not allowed by the StarDundee brick, use 102 instead 0x66
12 #define CCSDS_DESTINATION_ID 0x01
13 #define CCSDS_PROTOCOLE_ID 0x02
13 #define CCSDS_PROTOCOLE_ID 0x02
14 #define CCSDS_USER_APP 0x00
14 #define CCSDS_USER_APP 0x00
15
15
16 #define SIZE_TM_LFR_TC_EXE_NOT_IMPLEMENTED 24
16 #define SIZE_TM_LFR_TC_EXE_NOT_IMPLEMENTED 24
17 #define SIZE_TM_LFR_TC_EXE_CORRUPTED 32
17 #define SIZE_TM_LFR_TC_EXE_CORRUPTED 32
18
18
19 #define ILLEGAL_APID 0
19 #define ILLEGAL_APID 0
20 #define WRONG_LEN_PACKET 1
20 #define WRONG_LEN_PACKET 1
21 #define INCOR_CHECKSUM 2
21 #define INCOR_CHECKSUM 2
22 #define ILL_TYPE 3
22 #define ILL_TYPE 3
23 #define ILL_SUBTYPE 4
23 #define ILL_SUBTYPE 4
24 #define WRONG_APP_DATA 5
24 #define WRONG_APP_DATA 5
25 #define WRONG_CMD_CODE 6
25 #define WRONG_CMD_CODE 6
26 #define CCSDS_TM_VALID 7
26 #define CCSDS_TM_VALID 7
27 //
27 //
28 #define TC_NOT_EXE 40000
28 #define TC_NOT_EXE 40000
29 #define WRONG_SRC_ID 40001
29 #define WRONG_SRC_ID 40001
30 #define FUNCT_NOT_IMPL 40002
30 #define FUNCT_NOT_IMPL 40002
31 #define FAIL_DETECTED 40003
31 #define FAIL_DETECTED 40003
32 #define NOT_ALLOWED 40004
32 #define NOT_ALLOWED 40004
33 #define CORRUPTED 40005
33 #define CORRUPTED 40005
34
34
35 // // TC SUBTYPES
35 // // TC SUBTYPES
36 #define TC_SUBTYPE_RESET 3
36 #define TC_SUBTYPE_RESET 3
37 #define TC_SUBTYPE_LOAD_COMM 20
37 #define TC_SUBTYPE_LOAD_COMM 20
38 #define TC_SUBTYPE_LOAD_NORM 21
38 #define TC_SUBTYPE_LOAD_NORM 21
39 #define TC_SUBTYPE_LOAD_BURST 24
39 #define TC_SUBTYPE_LOAD_BURST 24
40 #define TC_SUBTYPE_LOAD_SBM1 27
40 #define TC_SUBTYPE_LOAD_SBM1 27
41 #define TC_SUBTYPE_LOAD_SBM2 28
41 #define TC_SUBTYPE_LOAD_SBM2 28
42 #define TC_SUBTYPE_DUMP 30
42 #define TC_SUBTYPE_DUMP 30
43 #define TC_SUBTYPE_ENTER 40
43 #define TC_SUBTYPE_ENTER 40
44 #define TC_SUBTYPE_UPDT_INFO 50
44 #define TC_SUBTYPE_UPDT_INFO 50
45 #define TC_SUBTYPE_EN_CAL 60
45 #define TC_SUBTYPE_EN_CAL 60
46 #define TC_SUBTYPE_DIS_CAL 61
46 #define TC_SUBTYPE_DIS_CAL 61
47 #define TC_SUBTYPE_UPDT_TIME 129
47 #define TC_SUBTYPE_UPDT_TIME 129
48
48
49 #define SID_DEFAULT 0
49 #define SID_DEFAULT 0
50 #define SID_EXE_INC 5
50 #define SID_EXE_INC 5
51 #define SID_NOT_EXE 40000
51 #define SID_NOT_EXE 40000
52 #define SID_NOT_IMP 40002
52 #define SID_NOT_IMP 40002
53 #define SID_EXE_ERR 40003
53 #define SID_EXE_ERR 40003
54 #define SID_EXE_CORR 40005
54 #define SID_EXE_CORR 40005
55
55
56 #define SID_NORM_SWF_F0 3
56 #define SID_NORM_SWF_F0 3
57 #define SID_NORM_SWF_F1 4
57 #define SID_NORM_SWF_F1 4
58 #define SID_NORM_SWF_F2 5
58 #define SID_NORM_SWF_F2 5
59 #define SID_NORM_CWF_F3 1
59 #define SID_NORM_CWF_F3 1
60 #define SID_BURST_CWF_F2 2
60 #define SID_BURST_CWF_F2 2
61 #define SID_SBM1_CWF_F1 24
61 #define SID_SBM1_CWF_F1 24
62 #define SID_SBM2_CWF_F2 25
62 #define SID_SBM2_CWF_F2 25
63 #define SID_NORM_ASM_F0 11
63 #define SID_NORM_ASM_F0 11
64 #define SID_NORM_ASM_F1 12
64 #define SID_NORM_ASM_F1 12
65 #define SID_NORM_ASM_F2 13
65 #define SID_NORM_ASM_F2 13
66 #define SID_NORM_BP1_F0 14
66 #define SID_NORM_BP1_F0 14
67 #define SID_NORM_BP1_F1 15
67 #define SID_NORM_BP1_F1 15
68 #define SID_NORM_BP1_F2 16
68 #define SID_NORM_BP1_F2 16
69 #define SID_NORM_BP2_F0 19
69 #define SID_NORM_BP2_F0 19
70 #define SID_NORM_BP2_F1 20
70 #define SID_NORM_BP2_F1 20
71 #define SID_NORM_BP2_F2 21
71 #define SID_NORM_BP2_F2 21
72 #define SID_BURST_BP1_F0 17
72 #define SID_BURST_BP1_F0 17
73 #define SID_BURST_BP2_F0 22
73 #define SID_BURST_BP2_F0 22
74 #define SID_BURST_BP1_F1 18
74 #define SID_BURST_BP1_F1 18
75 #define SID_BURST_BP2_F1 23
75 #define SID_BURST_BP2_F1 23
76 #define SID_SBM1_BP1_F0 28
76 #define SID_SBM1_BP1_F0 28
77 #define SID_SBM1_BP2_F0 31
77 #define SID_SBM1_BP2_F0 31
78 #define SID_SBM2_BP1_F0 29
78 #define SID_SBM2_BP1_F0 29
79 #define SID_SBM2_BP2_F0 32
79 #define SID_SBM2_BP2_F0 32
80 #define SID_SBM1_BP1_F1 30
80 #define SID_SBM1_BP1_F1 30
81 #define SID_SBM1_BP2_F1 33
81 #define SID_SBM1_BP2_F1 33
82
82
83 #define TM_LEN_EXE 20 - CCSDS_TC_TM_PACKET_OFFSET
83 #define TM_LEN_EXE 20 - CCSDS_TC_TM_PACKET_OFFSET
84 #define TM_LEN_NOT_EXE 26 - CCSDS_TC_TM_PACKET_OFFSET
84 #define TM_LEN_NOT_EXE 26 - CCSDS_TC_TM_PACKET_OFFSET
85 #define TM_LEN_NOT_IMP 24 - CCSDS_TC_TM_PACKET_OFFSET
85 #define TM_LEN_NOT_IMP 24 - CCSDS_TC_TM_PACKET_OFFSET
86 #define TM_LEN_EXE_ERR 24 - CCSDS_TC_TM_PACKET_OFFSET
86 #define TM_LEN_EXE_ERR 24 - CCSDS_TC_TM_PACKET_OFFSET
87 #define TM_LEN_EXE_CORR 32 - CCSDS_TC_TM_PACKET_OFFSET
87 #define TM_LEN_EXE_CORR 32 - CCSDS_TC_TM_PACKET_OFFSET
88 #define TM_HEADER_LEN 16
88 #define TM_HEADER_LEN 16
89 #define TM_LEN_SCI_NORM_SWF_340 340 * 12 + 6 + 10 - 1
89 #define TM_LEN_SCI_NORM_SWF_340 340 * 12 + 6 + 10 - 1
90 #define TM_LEN_SCI_NORM_SWF_8 8 * 12 + 6 + 10 - 1
90 #define TM_LEN_SCI_NORM_SWF_8 8 * 12 + 6 + 10 - 1
91
91
92 enum TM_TYPE{
92 enum TM_TYPE{
93 TM_LFR_TC_EXE_OK,
93 TM_LFR_TC_EXE_OK,
94 TM_LFR_TC_EXE_ERR,
94 TM_LFR_TC_EXE_ERR,
95 TM_LFR_HK,
95 TM_LFR_HK,
96 TM_LFR_SCI,
96 TM_LFR_SCI,
97 TM_LFR_SCI_SBM,
97 TM_LFR_SCI_SBM,
98 TM_LFR_PAR_DUMP
98 TM_LFR_PAR_DUMP
99 };
99 };
100
100
101 struct TMHeader_str
101 struct TMHeader_str
102 {
102 {
103 volatile unsigned char targetLogicalAddress;
103 volatile unsigned char targetLogicalAddress;
104 volatile unsigned char protocolIdentifier;
104 volatile unsigned char protocolIdentifier;
105 volatile unsigned char reserved;
105 volatile unsigned char reserved;
106 volatile unsigned char userApplication;
106 volatile unsigned char userApplication;
107 volatile unsigned char packetID[2];
107 volatile unsigned char packetID[2];
108 volatile unsigned char packetSequenceControl[2];
108 volatile unsigned char packetSequenceControl[2];
109 volatile unsigned char packetLength[2];
109 volatile unsigned char packetLength[2];
110 volatile unsigned char dataFieldHeader[10];
110 volatile unsigned char dataFieldHeader[10];
111 };
111 };
112 typedef struct TMHeader_str TMHeader_t;
112 typedef struct TMHeader_str TMHeader_t;
113
113
114 struct ExtendedTMHeader_str
114 struct ExtendedTMHeader_str
115 {
115 {
116 volatile unsigned char targetLogicalAddress;
116 volatile unsigned char targetLogicalAddress;
117 volatile unsigned char protocolIdentifier;
117 volatile unsigned char protocolIdentifier;
118 volatile unsigned char reserved;
118 volatile unsigned char reserved;
119 volatile unsigned char userApplication;
119 volatile unsigned char userApplication;
120 volatile unsigned char packetID[2];
120 volatile unsigned char packetID[2];
121 volatile unsigned char packetSequenceControl[2];
121 volatile unsigned char packetSequenceControl[2];
122 volatile unsigned char packetLength[2];
122 volatile unsigned char packetLength[2];
123 volatile unsigned char dataFieldHeader[10];
123 volatile unsigned char dataFieldHeader[10];
124 volatile unsigned char auxiliaryHeader[6];
124 volatile unsigned char auxiliaryHeader[6];
125 };
125 };
126 typedef struct ExtendedTMHeader_str ExtendedTMHeader_t;
126 typedef struct ExtendedTMHeader_str ExtendedTMHeader_t;
127
127
128 struct ccsdsTelecommandPacket_str
128 struct ccsdsTelecommandPacket_str
129 {
129 {
130 //unsigned char targetLogicalAddress; // removed by the grspw module
130 //unsigned char targetLogicalAddress; // removed by the grspw module
131 volatile unsigned char protocolIdentifier;
131 volatile unsigned char protocolIdentifier;
132 volatile unsigned char reserved;
132 volatile unsigned char reserved;
133 volatile unsigned char userApplication;
133 volatile unsigned char userApplication;
134 volatile unsigned char packetID[2];
134 volatile unsigned char packetID[2];
135 volatile unsigned char packetSequenceControl[2];
135 volatile unsigned char packetSequenceControl[2];
136 volatile unsigned char packetLength[2];
136 volatile unsigned char packetLength[2];
137 volatile unsigned char dataFieldHeader[4];
137 volatile unsigned char dataFieldHeader[4];
138 volatile unsigned char dataAndCRC[CCSDS_TC_PKT_MAX_SIZE-10];
138 volatile unsigned char dataAndCRC[CCSDS_TC_PKT_MAX_SIZE-10];
139 };
139 };
140 typedef struct ccsdsTelecommandPacket_str ccsdsTelecommandPacket_t;
140 typedef struct ccsdsTelecommandPacket_str ccsdsTelecommandPacket_t;
141
141
142 #endif // CCSDS_H_INCLUDED
142 #endif // CCSDS_H_INCLUDED
General Comments 0
You need to be logged in to leave comments. Login now