@@ -1,6 +1,6 | |||||
1 | ############################################################################# |
|
1 | ############################################################################# | |
2 | # Makefile for building: bin/fsw |
|
2 | # Makefile for building: bin/fsw-gsa | |
3 |
# Generated by qmake (2.01a) (Qt 4.8.4) on: Fri Jul |
|
3 | # Generated by qmake (2.01a) (Qt 4.8.4) on: Fri Jul 12 07:42:51 2013 | |
4 | # Project: fsw-qt.pro |
|
4 | # Project: fsw-qt.pro | |
5 | # Template: app |
|
5 | # Template: app | |
6 | # Command: /usr/bin/qmake-qt4 -spec /usr/lib64/qt4/mkspecs/linux-g++ -o Makefile fsw-qt.pro |
|
6 | # Command: /usr/bin/qmake-qt4 -spec /usr/lib64/qt4/mkspecs/linux-g++ -o Makefile fsw-qt.pro | |
@@ -10,7 +10,7 | |||||
10 |
|
10 | |||
11 | CC = sparc-rtems-gcc |
|
11 | CC = sparc-rtems-gcc | |
12 | CXX = sparc-rtems-g++ |
|
12 | CXX = sparc-rtems-g++ | |
13 |
DEFINES = -DSW_VERSION_N1=0 -DSW_VERSION_N2=0 -DSW_VERSION_N3=0 -DSW_VERSION_N4= |
|
13 | DEFINES = -DSW_VERSION_N1=0 -DSW_VERSION_N2=0 -DSW_VERSION_N3=0 -DSW_VERSION_N4=7 -DPRINT_MESSAGES_ON_CONSOLE -DGSA | |
14 | CFLAGS = -pipe -O3 -Wall $(DEFINES) |
|
14 | CFLAGS = -pipe -O3 -Wall $(DEFINES) | |
15 | CXXFLAGS = -pipe -O3 -Wall $(DEFINES) |
|
15 | CXXFLAGS = -pipe -O3 -Wall $(DEFINES) | |
16 | INCPATH = -I/usr/lib64/qt4/mkspecs/linux-g++ -I. -I../src -I../header |
|
16 | INCPATH = -I/usr/lib64/qt4/mkspecs/linux-g++ -I. -I../src -I../header | |
@@ -78,9 +78,9 DIST = /usr/lib64/qt4/mkspecs/c | |||||
78 | /usr/lib64/qt4/mkspecs/features/lex.prf \ |
|
78 | /usr/lib64/qt4/mkspecs/features/lex.prf \ | |
79 | /usr/lib64/qt4/mkspecs/features/include_source_dir.prf \ |
|
79 | /usr/lib64/qt4/mkspecs/features/include_source_dir.prf \ | |
80 | fsw-qt.pro |
|
80 | fsw-qt.pro | |
81 | QMAKE_TARGET = fsw |
|
81 | QMAKE_TARGET = fsw-gsa | |
82 | DESTDIR = bin/ |
|
82 | DESTDIR = bin/ | |
83 | TARGET = bin/fsw |
|
83 | TARGET = bin/fsw-gsa | |
84 |
|
84 | |||
85 | first: all |
|
85 | first: all | |
86 | ####### Implicit rules |
|
86 | ####### Implicit rules | |
@@ -159,8 +159,8 qmake: FORCE | |||||
159 | @$(QMAKE) -spec /usr/lib64/qt4/mkspecs/linux-g++ -o Makefile fsw-qt.pro |
|
159 | @$(QMAKE) -spec /usr/lib64/qt4/mkspecs/linux-g++ -o Makefile fsw-qt.pro | |
160 |
|
160 | |||
161 | dist: |
|
161 | dist: | |
162 | @$(CHK_DIR_EXISTS) obj/fsw1.0.0 || $(MKDIR) obj/fsw1.0.0 |
|
162 | @$(CHK_DIR_EXISTS) obj/fsw-gsa1.0.0 || $(MKDIR) obj/fsw-gsa1.0.0 | |
163 | $(COPY_FILE) --parents $(SOURCES) $(DIST) obj/fsw1.0.0/ && (cd `dirname obj/fsw1.0.0` && $(TAR) fsw1.0.0.tar fsw1.0.0 && $(COMPRESS) fsw1.0.0.tar) && $(MOVE) `dirname obj/fsw1.0.0`/fsw1.0.0.tar.gz . && $(DEL_FILE) -r obj/fsw1.0.0 |
|
163 | $(COPY_FILE) --parents $(SOURCES) $(DIST) obj/fsw-gsa1.0.0/ && (cd `dirname obj/fsw-gsa1.0.0` && $(TAR) fsw-gsa1.0.0.tar fsw-gsa1.0.0 && $(COMPRESS) fsw-gsa1.0.0.tar) && $(MOVE) `dirname obj/fsw-gsa1.0.0`/fsw-gsa1.0.0.tar.gz . && $(DEL_FILE) -r obj/fsw-gsa1.0.0 | |
164 |
|
164 | |||
165 |
|
165 | |||
166 | clean:compiler_clean |
|
166 | clean:compiler_clean |
1 | NO CONTENT: modified file, binary diff hidden |
|
NO CONTENT: modified file, binary diff hidden |
1 | NO CONTENT: modified file, binary diff hidden |
|
NO CONTENT: modified file, binary diff hidden |
@@ -7,11 +7,11 CONFIG -= qt | |||||
7 | include(./sparc.pri) |
|
7 | include(./sparc.pri) | |
8 |
|
8 | |||
9 | # flight software version |
|
9 | # flight software version | |
10 |
SWVERSION=-0- |
|
10 | SWVERSION=-0-7 | |
11 | DEFINES += SW_VERSION_N1=0 |
|
11 | DEFINES += SW_VERSION_N1=0 | |
12 | DEFINES += SW_VERSION_N2=0 |
|
12 | DEFINES += SW_VERSION_N2=0 | |
13 | DEFINES += SW_VERSION_N3=0 |
|
13 | DEFINES += SW_VERSION_N3=0 | |
14 |
DEFINES += SW_VERSION_N4= |
|
14 | DEFINES += SW_VERSION_N4=7 | |
15 |
|
15 | |||
16 | contains( CONFIG, verbose ) { |
|
16 | contains( CONFIG, verbose ) { | |
17 | DEFINES += PRINT_MESSAGES_ON_CONSOLE |
|
17 | DEFINES += PRINT_MESSAGES_ON_CONSOLE |
@@ -1,6 +1,6 | |||||
1 | <?xml version="1.0" encoding="UTF-8"?> |
|
1 | <?xml version="1.0" encoding="UTF-8"?> | |
2 | <!DOCTYPE QtCreatorProject> |
|
2 | <!DOCTYPE QtCreatorProject> | |
3 |
<!-- Written by Qt Creator 2.4.1, 2013-07- |
|
3 | <!-- Written by Qt Creator 2.4.1, 2013-07-12T07:17:03. --> | |
4 | <qtcreator> |
|
4 | <qtcreator> | |
5 | <data> |
|
5 | <data> | |
6 | <variable>ProjectExplorer.Project.ActiveTarget</variable> |
|
6 | <variable>ProjectExplorer.Project.ActiveTarget</variable> | |
@@ -56,7 +56,7 | |||||
56 | <value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value> |
|
56 | <value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value> | |
57 | <value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value> |
|
57 | <value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value> | |
58 | <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0"> |
|
58 | <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0"> | |
59 |
<value type="QString" key="ProjectExplorer.BuildCOnfiguration.ToolChain">ProjectExplorer.ToolChain.Gcc:/usr/ |
|
59 | <value type="QString" key="ProjectExplorer.BuildCOnfiguration.ToolChain">ProjectExplorer.ToolChain.Gcc:/usr/lib64/ccache/g++.x86-linux-generic-elf-64bit./usr/bin/gdb</value> | |
60 | <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0"> |
|
60 | <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0"> | |
61 | <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0"> |
|
61 | <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0"> | |
62 | <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value> |
|
62 | <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value> | |
@@ -106,7 +106,7 | |||||
106 | <value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">false</value> |
|
106 | <value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">false</value> | |
107 | </valuemap> |
|
107 | </valuemap> | |
108 | <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1"> |
|
108 | <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1"> | |
109 |
<value type="QString" key="ProjectExplorer.BuildCOnfiguration.ToolChain">ProjectExplorer.ToolChain.Gcc:/usr/ |
|
109 | <value type="QString" key="ProjectExplorer.BuildCOnfiguration.ToolChain">ProjectExplorer.ToolChain.Gcc:/usr/lib64/ccache/g++.x86-linux-generic-elf-64bit./usr/bin/gdb</value> | |
110 | <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0"> |
|
110 | <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0"> | |
111 | <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0"> |
|
111 | <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0"> | |
112 | <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value> |
|
112 | <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value> |
@@ -1,3 +1,4 | |||||
|
1 | ||||
1 | #ifndef CCSDS_H_INCLUDED |
|
2 | #ifndef CCSDS_H_INCLUDED | |
2 | #define CCSDS_H_INCLUDED |
|
3 | #define CCSDS_H_INCLUDED | |
3 |
|
4 | |||
@@ -11,19 +12,25 | |||||
11 | #define CCSDS_PACKET_CATEGORY 12 |
|
12 | #define CCSDS_PACKET_CATEGORY 12 | |
12 | #define CCSDS_NODE_ADDRESS 0xfe |
|
13 | #define CCSDS_NODE_ADDRESS 0xfe | |
13 |
|
14 | |||
14 |
// PACKET ID |
|
15 | // PACKET ID | |
15 | #define TM_PACKET_ID_TC_EXE 0x0cc1 // PID 76 CAT 1 |
|
16 | #define TM_PACKET_ID_TC_EXE 0x0cc1 // PID 76 CAT 1 | |
16 | #define TM_PACKET_ID_HK 0x0cc4 // PID 76 CAT 4 |
|
17 | #define TM_PACKET_ID_HK 0x0cc4 // PID 76 CAT 4 | |
17 | #define TM_PACKET_ID_PARAMETER_DUMP 0x0cc9 // PID 76 CAT 9 |
|
18 | #define TM_PACKET_ID_PARAMETER_DUMP 0x0cc9 // PID 76 CAT 9 | |
18 | #define TM_PACKET_ID_SCIENCE_NORMAL 0x0ccc // PID 76 CAT 12 |
|
19 | #define TM_PACKET_ID_SCIENCE_NORMAL 0x0ccc // PID 76 CAT 12 | |
19 | #define TM_PACKET_ID_SCIENCE_BURST_SBM1_SBM2 0x0cfc // PID 79 CAT 12 |
|
20 | #define TM_PACKET_ID_SCIENCE_BURST_SBM1_SBM2 0x0cfc // PID 79 CAT 12 | |
20 |
|
21 | |||
|
22 | // PACKET SEQUENCE CONTROL | |||
|
23 | #define TM_PACKET_SEQ_CTRL_CONTINUATION 0 | |||
|
24 | #define TM_PACKET_SEQ_CTRL_FIRST 1 | |||
|
25 | #define TM_PACKET_SEQ_CTRL_LAST 2 | |||
|
26 | #define TM_PACKET_SEQ_CTRL_STANDALONE 3 | |||
|
27 | ||||
21 | // FAILURE CODES |
|
28 | // FAILURE CODES | |
22 | #define FAILURE_CODE_INCONSISTENT 5 // 0x00 0x05 |
|
29 | #define FAILURE_CODE_INCONSISTENT 5 // 0x00 0x05 | |
23 |
#define FAILURE_CODE_NOT_EXECUTABLE 4 |
|
30 | #define FAILURE_CODE_NOT_EXECUTABLE 42000 // 0xa4 0x10 | |
24 |
#define FAILURE_CODE_NOT_IMPLEMENTED 4 |
|
31 | #define FAILURE_CODE_NOT_IMPLEMENTED 42002 // 0xa4 0x12 | |
25 |
#define FAILURE_CODE_ERROR 4 |
|
32 | #define FAILURE_CODE_ERROR 42003 // 0xa4 0x13 | |
26 |
#define FAILURE_CODE_CORRUPTED 4 |
|
33 | #define FAILURE_CODE_CORRUPTED 42005 // 0xa4 0x15 | |
27 | // |
|
34 | // | |
28 | #define TM_DESTINATION_ID_GROUND 0 |
|
35 | #define TM_DESTINATION_ID_GROUND 0 | |
29 | #define TM_DESTINATION_ID_MISSION_TIMELINE 110 |
|
36 | #define TM_DESTINATION_ID_MISSION_TIMELINE 110 | |
@@ -39,6 +46,7 | |||||
39 |
|
46 | |||
40 | #define CCSDS_DESTINATION_ID 0x01 |
|
47 | #define CCSDS_DESTINATION_ID 0x01 | |
41 | #define CCSDS_PROTOCOLE_ID 0x02 |
|
48 | #define CCSDS_PROTOCOLE_ID 0x02 | |
|
49 | #define CCSDS_RESERVED 0x00 | |||
42 | #define CCSDS_USER_APP 0x00 |
|
50 | #define CCSDS_USER_APP 0x00 | |
43 |
|
51 | |||
44 | #define SIZE_TM_LFR_TC_EXE_NOT_IMPLEMENTED 24 |
|
52 | #define SIZE_TM_LFR_TC_EXE_NOT_IMPLEMENTED 24 | |
@@ -89,23 +97,26 | |||||
89 | // TM TYPES |
|
97 | // TM TYPES | |
90 | #define TM_TYPE_TC_EXE 1 |
|
98 | #define TM_TYPE_TC_EXE 1 | |
91 | #define TM_TYPE_HK 3 |
|
99 | #define TM_TYPE_HK 3 | |
|
100 | #define TM_TYPE_PARAMETER_DUMP 3 | |||
92 | #define TM_TYPE_LFR_SCIENCE 21 |
|
101 | #define TM_TYPE_LFR_SCIENCE 21 | |
93 |
|
102 | |||
94 | // TM SUBTYPES |
|
103 | // TM SUBTYPES | |
95 | #define TM_SUBTYPE_EXE_OK 7 |
|
104 | #define TM_SUBTYPE_EXE_OK 7 | |
96 | #define TM_SUBTYPE_EXE_NOK 8 |
|
105 | #define TM_SUBTYPE_EXE_NOK 8 | |
97 | #define TM_SUBTYPE_HK 25 |
|
106 | #define TM_SUBTYPE_HK 25 | |
|
107 | #define TM_SUBTYPE_PARAMETER_DUMP 25 | |||
98 | #define TM_SUBTYPE_SCIENCE 3 |
|
108 | #define TM_SUBTYPE_SCIENCE 3 | |
99 | #define TM_SUBTYPE_LFR_SCIENCE 3 |
|
109 | #define TM_SUBTYPE_LFR_SCIENCE 3 | |
100 |
|
110 | |||
101 | // TM SID |
|
111 | // TM SID | |
102 | #define SID_DEFAULT 0 |
|
112 | #define SID_DEFAULT 0 | |
|
113 | #define SID_EXE_INC 5 | |||
|
114 | #define SID_NOT_EXE 42000 // 0xa4 0x10 | |||
|
115 | #define SID_NOT_IMP 42002 // 0xa4 0x12 | |||
|
116 | #define SID_EXE_ERR 42003 // 0xa4 0x13 | |||
|
117 | #define SID_EXE_CORR 42005 // 0xa4 0x15 | |||
103 | #define SID_HK 1 |
|
118 | #define SID_HK 1 | |
104 |
#define SID_ |
|
119 | #define SID_PARAMETER_DUMP 10 | |
105 | #define SID_NOT_EXE 40000 |
|
|||
106 | #define SID_NOT_IMP 40002 |
|
|||
107 | #define SID_EXE_ERR 40003 |
|
|||
108 | #define SID_EXE_CORR 40005 |
|
|||
109 |
|
120 | |||
110 | #define SID_NORM_SWF_F0 3 |
|
121 | #define SID_NORM_SWF_F0 3 | |
111 | #define SID_NORM_SWF_F1 4 |
|
122 | #define SID_NORM_SWF_F1 4 | |
@@ -137,17 +148,20 | |||||
137 | // LENGTH (BYTES) |
|
148 | // LENGTH (BYTES) | |
138 | #define LENGTH_TM_LFR_TC_EXE_MAX 32 |
|
149 | #define LENGTH_TM_LFR_TC_EXE_MAX 32 | |
139 | #define LENGTH_TM_LFR_HK 126 |
|
150 | #define LENGTH_TM_LFR_HK 126 | |
|
151 | ||||
140 | // PACKET_LENGTH |
|
152 | // PACKET_LENGTH | |
141 | #define PACKET_LENGTH_TC_EXE_SUCCESS 20 - CCSDS_TC_TM_PACKET_OFFSET |
|
153 | #define PACKET_LENGTH_TC_EXE_SUCCESS (20 - CCSDS_TC_TM_PACKET_OFFSET) | |
142 | #define PACKET_LENGTH_TC_EXE_INCONSISTENT 26 - CCSDS_TC_TM_PACKET_OFFSET |
|
154 | #define PACKET_LENGTH_TC_EXE_INCONSISTENT (26 - CCSDS_TC_TM_PACKET_OFFSET) | |
143 | #define PACKET_LENGTH_TC_EXE_NOT_EXECUTABLE 26 - CCSDS_TC_TM_PACKET_OFFSET |
|
155 | #define PACKET_LENGTH_TC_EXE_NOT_EXECUTABLE (26 - CCSDS_TC_TM_PACKET_OFFSET) | |
144 | #define PACKET_LENGTH_TC_EXE_NOT_IMPLEMENTED 24 - CCSDS_TC_TM_PACKET_OFFSET |
|
156 | #define PACKET_LENGTH_TC_EXE_NOT_IMPLEMENTED (24 - CCSDS_TC_TM_PACKET_OFFSET) | |
145 | #define PACKET_LENGTH_TC_EXE_ERROR 24 - CCSDS_TC_TM_PACKET_OFFSET |
|
157 | #define PACKET_LENGTH_TC_EXE_ERROR (24 - CCSDS_TC_TM_PACKET_OFFSET) | |
146 | #define PACKET_LENGTH_TC_EXE_CORRUPTED 32 - CCSDS_TC_TM_PACKET_OFFSET |
|
158 | #define PACKET_LENGTH_TC_EXE_CORRUPTED (32 - CCSDS_TC_TM_PACKET_OFFSET) | |
147 | #define PACKET_LENGTH_HK 126 - CCSDS_TC_TM_PACKET_OFFSET |
|
159 | #define PACKET_LENGTH_HK (126 - CCSDS_TC_TM_PACKET_OFFSET) | |
148 |
#define PACKET_LENGTH_PARAMETER_DUMP |
|
160 | #define PACKET_LENGTH_PARAMETER_DUMP (34 - CCSDS_TC_TM_PACKET_OFFSET) | |
149 | #define TM_HEADER_LEN 16 |
|
161 | #define TM_HEADER_LEN 16 | |
150 |
|
162 | |||
|
163 | #define SPARE1_PUSVERSION_SPARE2 0x10 | |||
|
164 | ||||
151 | #define LEN_TM_LFR_HK 126 + 4 |
|
165 | #define LEN_TM_LFR_HK 126 + 4 | |
152 | #define LEN_TM_LFR_TC_EXE_NOT_IMP 24 +4 |
|
166 | #define LEN_TM_LFR_TC_EXE_NOT_IMP 24 +4 | |
153 |
|
167 | |||
@@ -366,4 +380,52 struct Packet_TM_LFR_HK_str | |||||
366 | }; |
|
380 | }; | |
367 | typedef struct Packet_TM_LFR_HK_str Packet_TM_LFR_HK_t; |
|
381 | typedef struct Packet_TM_LFR_HK_str Packet_TM_LFR_HK_t; | |
368 |
|
382 | |||
|
383 | struct Packet_TM_LFR_PARAMETER_DUMP_str | |||
|
384 | { | |||
|
385 | volatile unsigned char targetLogicalAddress; | |||
|
386 | volatile unsigned char protocolIdentifier; | |||
|
387 | volatile unsigned char reserved; | |||
|
388 | volatile unsigned char userApplication; | |||
|
389 | volatile unsigned char packetID[2]; | |||
|
390 | volatile unsigned char packetSequenceControl[2]; | |||
|
391 | volatile unsigned char packetLength[2]; | |||
|
392 | // DATA FIELD HEADER | |||
|
393 | volatile unsigned char spare1_pusVersion_spare2; | |||
|
394 | volatile unsigned char serviceType; | |||
|
395 | volatile unsigned char serviceSubType; | |||
|
396 | volatile unsigned char destinationID; | |||
|
397 | volatile unsigned char time[6]; | |||
|
398 | volatile unsigned char sid; | |||
|
399 | ||||
|
400 | //****************** | |||
|
401 | // COMMON PARAMETERS | |||
|
402 | volatile unsigned char unused0; | |||
|
403 | volatile unsigned char bw_sp0_sp1_r0_r1; | |||
|
404 | ||||
|
405 | //****************** | |||
|
406 | // NORMAL PARAMETERS | |||
|
407 | volatile unsigned char sy_lfr_n_swf_l[2]; | |||
|
408 | volatile unsigned char sy_lfr_n_swf_p[2]; | |||
|
409 | volatile unsigned char sy_lfr_n_asm_p[2]; | |||
|
410 | volatile unsigned char sy_lfr_n_bp_p0; | |||
|
411 | volatile unsigned char sy_lfr_n_bp_p1; | |||
|
412 | ||||
|
413 | //***************** | |||
|
414 | // BURST PARAMETERS | |||
|
415 | volatile unsigned char sy_lfr_b_bp_p0; | |||
|
416 | volatile unsigned char sy_lfr_b_bp_p1; | |||
|
417 | ||||
|
418 | //**************** | |||
|
419 | // SBM1 PARAMETERS | |||
|
420 | volatile unsigned char sy_lfr_s1_bp_p0; | |||
|
421 | volatile unsigned char sy_lfr_s1_bp_p1; | |||
|
422 | ||||
|
423 | //**************** | |||
|
424 | // SBM2 PARAMETERS | |||
|
425 | volatile unsigned char sy_lfr_s2_bp_p0; | |||
|
426 | volatile unsigned char sy_lfr_s2_bp_p1; | |||
|
427 | }; | |||
|
428 | typedef struct Packet_TM_LFR_PARAMETER_DUMP_str Packet_TM_LFR_PARAMETER_DUMP_t; | |||
|
429 | ||||
|
430 | ||||
369 | #endif // CCSDS_H_INCLUDED |
|
431 | #endif // CCSDS_H_INCLUDED |
@@ -29,11 +29,7 void timecode_irq_handler(void *pDev, vo | |||||
29 |
|
29 | |||
30 | // MODE PARAMETERS |
|
30 | // MODE PARAMETERS | |
31 | extern struct param_local_str param_local; |
|
31 | extern struct param_local_str param_local; | |
32 | extern struct param_common_str param_common; |
|
32 | extern Packet_TM_LFR_PARAMETER_DUMP_t parameter_dump_packet; | |
33 | extern struct param_norm_str param_norm; |
|
|||
34 | extern struct param_burst_str param_burst; |
|
|||
35 | extern struct param_sbm1_str param_sbm1; |
|
|||
36 | extern struct param_sbm2_str param_sbm2; |
|
|||
37 | extern Packet_TM_LFR_HK_t housekeeping_packet; |
|
33 | extern Packet_TM_LFR_HK_t housekeeping_packet; | |
38 | extern unsigned short sequenceCounters[SEQ_CNT_NB_PID][SEQ_CNT_NB_CAT][SEQ_CNT_NB_DEST_ID]; |
|
34 | extern unsigned short sequenceCounters[SEQ_CNT_NB_PID][SEQ_CNT_NB_CAT][SEQ_CNT_NB_DEST_ID]; | |
39 |
|
35 | |||
@@ -49,7 +45,8 int start_all_tasks( void ); | |||||
49 | int create_message_queue( void ); |
|
45 | int create_message_queue( void ); | |
50 |
|
46 | |||
51 | // OTHER functions |
|
47 | // OTHER functions | |
52 |
void init_ |
|
48 | void init_parameter_dump( void ); | |
|
49 | void init_local_mode_parameters( void ); | |||
53 | void init_housekeeping_parameters( void ); |
|
50 | void init_housekeeping_parameters( void ); | |
54 |
|
51 | |||
55 | int spacewire_configure_link( void ); |
|
52 | int spacewire_configure_link( void ); |
@@ -24,6 +24,9 | |||||
24 |
|
24 | |||
25 | //**************************** |
|
25 | //**************************** | |
26 | // LFR DEFAULT MODE PARAMETERS |
|
26 | // LFR DEFAULT MODE PARAMETERS | |
|
27 | // COMMON | |||
|
28 | #define DEFAULT_SY_LFR_COMMON0 0x00 | |||
|
29 | #define DEFAULT_SY_LFR_COMMON1 0x10 // default value 0 0 0 1 0 0 0 0 | |||
27 | // NORM |
|
30 | // NORM | |
28 | #define DEFAULT_SY_LFR_N_SWF_L 2048 // nb sample |
|
31 | #define DEFAULT_SY_LFR_N_SWF_L 2048 // nb sample | |
29 | #define DEFAULT_SY_LFR_N_SWF_P 16 // sec |
|
32 | #define DEFAULT_SY_LFR_N_SWF_P 16 // sec | |
@@ -144,32 +147,4 struct param_local_str{ | |||||
144 | unsigned int local_sbm2_nb_cwf_max; |
|
147 | unsigned int local_sbm2_nb_cwf_max; | |
145 | }; |
|
148 | }; | |
146 |
|
149 | |||
147 | struct param_common_str{ |
|
|||
148 | unsigned char sy_lfr_common0; |
|
|||
149 | unsigned char sy_lfr_common1; |
|
|||
150 | }; |
|
|||
151 |
|
||||
152 | struct param_norm_str{ |
|
|||
153 | unsigned int sy_lfr_n_swf_l; // length of the snapshots |
|
|||
154 | unsigned int sy_lfr_n_swf_p; // time between two snapshots |
|
|||
155 | unsigned int sy_lfr_n_asm_p; // time between two asm |
|
|||
156 | unsigned char sy_lfr_n_bp_p0; // timebetween two products BP1 set |
|
|||
157 | unsigned char sy_lfr_n_bp_p1; // time between two products BP2 set |
|
|||
158 | }; |
|
|||
159 |
|
||||
160 | struct param_burst_str{ |
|
|||
161 | unsigned char sy_lfr_b_bp_p0; // timebetween two products BP1 set |
|
|||
162 | unsigned char sy_lfr_b_bp_p1; // time between two products BP2 set |
|
|||
163 | }; |
|
|||
164 |
|
||||
165 | struct param_sbm1_str{ |
|
|||
166 | unsigned char sy_lfr_s1_bp_p0; // timebetween two products BP1 set |
|
|||
167 | unsigned char sy_lfr_s1_bp_p1; // time between two products BP2 set |
|
|||
168 | }; |
|
|||
169 |
|
||||
170 | struct param_sbm2_str{ |
|
|||
171 | unsigned char sy_lfr_s2_bp_p0; // timebetween two products BP1 set |
|
|||
172 | unsigned char sy_lfr_s2_bp_p1; // time between two products BP2 set |
|
|||
173 | }; |
|
|||
174 |
|
||||
175 | #endif // FSW_RTEMS_CONFIG_H_INCLUDED |
|
150 | #endif // FSW_RTEMS_CONFIG_H_INCLUDED |
@@ -15,10 +15,9 extern rtems_name misc_name[ ]; | |||||
15 | extern rtems_name misc_id[ ]; |
|
15 | extern rtems_name misc_id[ ]; | |
16 | extern rtems_id Task_id[ ]; // array of task ids |
|
16 | extern rtems_id Task_id[ ]; // array of task ids | |
17 | // MODE PARAMETERS |
|
17 | // MODE PARAMETERS | |
18 | extern struct param_common_str param_common; |
|
|||
19 | extern struct param_norm_str param_norm; |
|
|||
20 | extern struct param_sbm1_str param_sbm1; |
|
18 | extern struct param_sbm1_str param_sbm1; | |
21 | extern struct param_sbm2_str param_sbm2; |
|
19 | extern struct param_sbm2_str param_sbm2; | |
|
20 | extern Packet_TM_LFR_PARAMETER_DUMP_t parameter_dump_packet; | |||
22 | extern Packet_TM_LFR_HK_t housekeeping_packet; |
|
21 | extern Packet_TM_LFR_HK_t housekeeping_packet; | |
23 | extern time_management_regs_t *time_management_regs; |
|
22 | extern time_management_regs_t *time_management_regs; | |
24 | extern waveform_picker_regs_t *waveform_picker_regs; |
|
23 | extern waveform_picker_regs_t *waveform_picker_regs; | |
@@ -73,6 +72,7 int action_load_norm(ccsdsTelecommandPac | |||||
73 | int action_load_burst(ccsdsTelecommandPacket_t *TC); |
|
72 | int action_load_burst(ccsdsTelecommandPacket_t *TC); | |
74 | int action_load_sbm1(ccsdsTelecommandPacket_t *TC); |
|
73 | int action_load_sbm1(ccsdsTelecommandPacket_t *TC); | |
75 | int action_load_sbm2(ccsdsTelecommandPacket_t *TC); |
|
74 | int action_load_sbm2(ccsdsTelecommandPacket_t *TC); | |
|
75 | int action_dump(ccsdsTelecommandPacket_t *TC); | |||
76 | // other functions |
|
76 | // other functions | |
77 | void update_last_TC_exe(ccsdsTelecommandPacket_t *TC); |
|
77 | void update_last_TC_exe(ccsdsTelecommandPacket_t *TC); | |
78 | void update_last_TC_rej(ccsdsTelecommandPacket_t *TC); |
|
78 | void update_last_TC_rej(ccsdsTelecommandPacket_t *TC); | |
@@ -80,6 +80,7 void close_action(ccsdsTelecommandPacket | |||||
80 | int send_tm_lfr_tc_exe_success(ccsdsTelecommandPacket_t *TC); |
|
80 | int send_tm_lfr_tc_exe_success(ccsdsTelecommandPacket_t *TC); | |
81 | int send_tm_lfr_tc_exe_not_executable(ccsdsTelecommandPacket_t *TC); |
|
81 | int send_tm_lfr_tc_exe_not_executable(ccsdsTelecommandPacket_t *TC); | |
82 | int send_tm_lfr_tc_exe_not_implemented(ccsdsTelecommandPacket_t *TC); |
|
82 | int send_tm_lfr_tc_exe_not_implemented(ccsdsTelecommandPacket_t *TC); | |
|
83 | int send_tm_lfr_tc_exe_error(ccsdsTelecommandPacket_t *TC); | |||
83 |
|
84 | |||
84 | #endif // TC_HANDLER_H_INCLUDED |
|
85 | #endif // TC_HANDLER_H_INCLUDED | |
85 |
|
86 |
@@ -40,12 +40,8 float averaged_spec_mat_f0[ TOTAL_SIZE_S | |||||
40 | float compressed_spec_mat_f0[ TOTAL_SIZE_COMPRESSED_MATRIX_f0 ]; |
|
40 | float compressed_spec_mat_f0[ TOTAL_SIZE_COMPRESSED_MATRIX_f0 ]; | |
41 |
|
41 | |||
42 | // MODE PARAMETERS |
|
42 | // MODE PARAMETERS | |
|
43 | Packet_TM_LFR_PARAMETER_DUMP_t parameter_dump_packet; | |||
43 | struct param_local_str param_local; |
|
44 | struct param_local_str param_local; | |
44 | struct param_common_str param_common; |
|
|||
45 | struct param_norm_str param_norm; |
|
|||
46 | struct param_burst_str param_burst; |
|
|||
47 | struct param_sbm1_str param_sbm1; |
|
|||
48 | struct param_sbm2_str param_sbm2; |
|
|||
49 |
|
45 | |||
50 | // HK PACKETS |
|
46 | // HK PACKETS | |
51 | Packet_TM_LFR_HK_t housekeeping_packet; |
|
47 | Packet_TM_LFR_HK_t housekeeping_packet; |
@@ -67,7 +67,8 rtems_task Init( rtems_task_argument ign | |||||
67 | set_apbuart_scaler_reload_register(REGS_ADDR_APBUART, APBUART_SCALER_RELOAD_VALUE); |
|
67 | set_apbuart_scaler_reload_register(REGS_ADDR_APBUART, APBUART_SCALER_RELOAD_VALUE); | |
68 |
|
68 | |||
69 | initLookUpTableForCRC(); // in tc_handler.h |
|
69 | initLookUpTableForCRC(); // in tc_handler.h | |
70 |
init_ |
|
70 | init_parameter_dump(); | |
|
71 | init_local_mode_parameters(); | |||
71 | init_housekeeping_parameters(); |
|
72 | init_housekeeping_parameters(); | |
72 | create_message_queue(); |
|
73 | create_message_queue(); | |
73 |
|
74 | |||
@@ -179,36 +180,76 rtems_task spiq_task(rtems_task_argument | |||||
179 | } |
|
180 | } | |
180 | } |
|
181 | } | |
181 |
|
182 | |||
182 |
void init_ |
|
183 | void init_parameter_dump(void) | |
183 | { |
|
184 | { | |
184 | // COMMON PARAMETERS |
|
185 | parameter_dump_packet.targetLogicalAddress = CCSDS_DESTINATION_ID; | |
185 | param_common.sy_lfr_common0 = 0x00; |
|
186 | parameter_dump_packet.protocolIdentifier = CCSDS_PROTOCOLE_ID; | |
186 | param_common.sy_lfr_common1 = 0x10; // default value 0 0 0 1 0 0 0 0 |
|
187 | parameter_dump_packet.reserved = CCSDS_RESERVED; | |
|
188 | parameter_dump_packet.userApplication = CCSDS_USER_APP; | |||
|
189 | parameter_dump_packet.packetID[0] = (unsigned char) (TM_PACKET_ID_PARAMETER_DUMP >> 8); | |||
|
190 | parameter_dump_packet.packetID[1] = (unsigned char) TM_PACKET_ID_PARAMETER_DUMP; | |||
|
191 | parameter_dump_packet.packetSequenceControl[0] = (unsigned char) (TM_PACKET_SEQ_CTRL_STANDALONE << 6); | |||
|
192 | parameter_dump_packet.packetSequenceControl[1] = 0x00; | |||
|
193 | parameter_dump_packet.packetLength[0] = (unsigned char) (PACKET_LENGTH_PARAMETER_DUMP >> 8); | |||
|
194 | parameter_dump_packet.packetLength[1] = (unsigned char) PACKET_LENGTH_PARAMETER_DUMP; | |||
|
195 | // DATA FIELD HEADER | |||
|
196 | parameter_dump_packet.spare1_pusVersion_spare2 = SPARE1_PUSVERSION_SPARE2; | |||
|
197 | parameter_dump_packet.serviceType = TM_TYPE_PARAMETER_DUMP; | |||
|
198 | parameter_dump_packet.serviceSubType = TM_SUBTYPE_PARAMETER_DUMP; | |||
|
199 | parameter_dump_packet.destinationID = TM_DESTINATION_ID_GROUND; | |||
|
200 | parameter_dump_packet.time[0] = (unsigned char) (time_management_regs->coarse_time>>24); | |||
|
201 | parameter_dump_packet.time[1] = (unsigned char) (time_management_regs->coarse_time>>16); | |||
|
202 | parameter_dump_packet.time[2] = (unsigned char) (time_management_regs->coarse_time>>8); | |||
|
203 | parameter_dump_packet.time[3] = (unsigned char) (time_management_regs->coarse_time); | |||
|
204 | parameter_dump_packet.time[4] = (unsigned char) (time_management_regs->fine_time>>8); | |||
|
205 | parameter_dump_packet.time[5] = (unsigned char) (time_management_regs->fine_time); | |||
|
206 | parameter_dump_packet.sid = SID_PARAMETER_DUMP; | |||
187 |
|
207 | |||
188 | // NORMAL MODE |
|
208 | //****************** | |
189 | param_norm.sy_lfr_n_swf_l = DEFAULT_SY_LFR_N_SWF_L; // nb sample |
|
209 | // COMMON PARAMETERS | |
190 | param_norm.sy_lfr_n_swf_p = DEFAULT_SY_LFR_N_SWF_P; // sec |
|
210 | parameter_dump_packet.unused0 = DEFAULT_SY_LFR_COMMON0; | |
191 | param_norm.sy_lfr_n_asm_p = DEFAULT_SY_LFR_N_ASM_P; // sec |
|
211 | parameter_dump_packet.bw_sp0_sp1_r0_r1 = DEFAULT_SY_LFR_COMMON1; | |
192 | param_norm.sy_lfr_n_bp_p0 = DEFAULT_SY_LFR_N_BP_P0; // sec |
|
|||
193 | param_norm.sy_lfr_n_bp_p1 = DEFAULT_SY_LFR_N_BP_P1; // sec |
|
|||
194 |
|
212 | |||
195 | // BURST MODE |
|
213 | //****************** | |
196 | param_burst.sy_lfr_b_bp_p0 = DEFAULT_SY_LFR_B_BP_P0; // sec |
|
214 | // NORMAL PARAMETERS | |
197 | param_burst.sy_lfr_b_bp_p1 = DEFAULT_SY_LFR_B_BP_P1; // sec |
|
215 | parameter_dump_packet.sy_lfr_n_swf_l[0] = (unsigned char) (DEFAULT_SY_LFR_N_SWF_L >> 8); | |
|
216 | parameter_dump_packet.sy_lfr_n_swf_l[1] = (unsigned char) DEFAULT_SY_LFR_N_SWF_L; | |||
|
217 | parameter_dump_packet.sy_lfr_n_swf_p[0] = (unsigned char) (DEFAULT_SY_LFR_N_SWF_P >> 8); | |||
|
218 | parameter_dump_packet.sy_lfr_n_swf_p[1] = (unsigned char) DEFAULT_SY_LFR_N_SWF_P; | |||
|
219 | parameter_dump_packet.sy_lfr_n_asm_p[0] = (unsigned char) (DEFAULT_SY_LFR_N_ASM_P >> 8); | |||
|
220 | parameter_dump_packet.sy_lfr_n_asm_p[1] = (unsigned char) DEFAULT_SY_LFR_N_ASM_P; | |||
|
221 | parameter_dump_packet.sy_lfr_n_bp_p0 = (unsigned char) DEFAULT_SY_LFR_N_BP_P0; | |||
|
222 | parameter_dump_packet.sy_lfr_n_bp_p1 = (unsigned char) DEFAULT_SY_LFR_N_BP_P1; | |||
198 |
|
223 | |||
199 | // SBM1 MODE |
|
224 | //***************** | |
200 | param_sbm1.sy_lfr_s1_bp_p0 = DEFAULT_SY_LFR_S1_BP_P0; // sec |
|
225 | // BURST PARAMETERS | |
201 |
param |
|
226 | parameter_dump_packet.sy_lfr_b_bp_p0 = (unsigned char) DEFAULT_SY_LFR_B_BP_P0; | |
|
227 | parameter_dump_packet.sy_lfr_b_bp_p1 = (unsigned char) DEFAULT_SY_LFR_B_BP_P1; | |||
202 |
|
228 | |||
203 | // SBM2 MODE |
|
229 | //**************** | |
204 | param_sbm2.sy_lfr_s2_bp_p0 = DEFAULT_SY_LFR_S2_BP_P0; // sec |
|
230 | // SBM1 PARAMETERS | |
205 |
param |
|
231 | parameter_dump_packet.sy_lfr_s1_bp_p0 = (unsigned char) DEFAULT_SY_LFR_S1_BP_P0; | |
|
232 | parameter_dump_packet.sy_lfr_s1_bp_p1 = (unsigned char) DEFAULT_SY_LFR_S1_BP_P0; | |||
206 |
|
233 | |||
|
234 | //**************** | |||
|
235 | // SBM2 PARAMETERS | |||
|
236 | parameter_dump_packet.sy_lfr_s2_bp_p0 = (unsigned char) DEFAULT_SY_LFR_S2_BP_P0; | |||
|
237 | parameter_dump_packet.sy_lfr_s2_bp_p1 = (unsigned char) DEFAULT_SY_LFR_S2_BP_P0; | |||
|
238 | } | |||
|
239 | ||||
|
240 | void init_local_mode_parameters(void) | |||
|
241 | { | |||
207 | // LOCAL PARAMETERS |
|
242 | // LOCAL PARAMETERS | |
208 | // (2 snapshots of 2048 points per seconds) * (period of the NORM snashots) |
|
243 | // (2 snapshots of 2048 points per seconds) * (period of the NORM snashots) | |
209 |
param_local.local_sbm1_nb_cwf_max = 2 * |
|
244 | param_local.local_sbm1_nb_cwf_max = 2 * ( | |
|
245 | parameter_dump_packet.sy_lfr_n_swf_p[0] * 256 | |||
|
246 | + parameter_dump_packet.sy_lfr_n_swf_p[1] | |||
|
247 | ); | |||
210 | // (period of the NORM snashots) / (8 seconds per snapshot at f2 = 256 Hz) |
|
248 | // (period of the NORM snashots) / (8 seconds per snapshot at f2 = 256 Hz) | |
211 |
param_local.local_sbm2_nb_cwf_max = |
|
249 | param_local.local_sbm2_nb_cwf_max = ( | |
|
250 | parameter_dump_packet.sy_lfr_n_swf_p[0] * 256 | |||
|
251 | + parameter_dump_packet.sy_lfr_n_swf_p[1] | |||
|
252 | )/ 8; | |||
212 |
|
253 | |||
213 | PRINTF1("local_sbm1_nb_cwf_max %d \n", param_local.local_sbm1_nb_cwf_max) |
|
254 | PRINTF1("local_sbm1_nb_cwf_max %d \n", param_local.local_sbm1_nb_cwf_max) | |
214 | PRINTF1("local_sbm2_nb_cwf_max %d \n", param_local.local_sbm2_nb_cwf_max) |
|
255 | PRINTF1("local_sbm2_nb_cwf_max %d \n", param_local.local_sbm2_nb_cwf_max) |
@@ -480,7 +480,7 rtems_task actn_task( rtems_task_argumen | |||||
480 | break; |
|
480 | break; | |
481 | // |
|
481 | // | |
482 | case TC_SUBTYPE_DUMP: |
|
482 | case TC_SUBTYPE_DUMP: | |
483 |
result = action_d |
|
483 | result = action_dump( &TC ); | |
484 | close_action( &TC, result ); |
|
484 | close_action( &TC, result ); | |
485 | break; |
|
485 | break; | |
486 | // |
|
486 | // | |
@@ -613,10 +613,10 int action_enter(ccsdsTelecommandPacket_ | |||||
613 |
|
613 | |||
614 | int action_load_comm(ccsdsTelecommandPacket_t *TC) |
|
614 | int action_load_comm(ccsdsTelecommandPacket_t *TC) | |
615 | { |
|
615 | { | |
616 |
param |
|
616 | parameter_dump_packet.unused0 = TC->dataAndCRC[0]; | |
617 | param_common.sy_lfr_common1 = TC->dataAndCRC[1]; |
|
617 | parameter_dump_packet.bw_sp0_sp1_r0_r1 = TC->dataAndCRC[1]; | |
618 |
|
618 | |||
619 |
set_wfp_data_shaping(param |
|
619 | set_wfp_data_shaping(parameter_dump_packet.bw_sp0_sp1_r0_r1); | |
620 |
|
620 | |||
621 | return LFR_SUCCESSFUL; |
|
621 | return LFR_SUCCESSFUL; | |
622 | } |
|
622 | } | |
@@ -633,11 +633,18 int action_load_norm(ccsdsTelecommandPac | |||||
633 | result = LFR_DEFAULT; |
|
633 | result = LFR_DEFAULT; | |
634 | } |
|
634 | } | |
635 | else { |
|
635 | else { | |
636 |
param |
|
636 | parameter_dump_packet.sy_lfr_n_swf_l[0] = TC->dataAndCRC[0]; | |
637 |
param |
|
637 | parameter_dump_packet.sy_lfr_n_swf_l[1] = TC->dataAndCRC[1]; | |
638 | param_norm.sy_lfr_n_asm_p = (TC->dataAndCRC[4] * 256) + TC->dataAndCRC[5]; |
|
638 | ||
639 |
param |
|
639 | parameter_dump_packet.sy_lfr_n_swf_p[0] = TC->dataAndCRC[2]; | |
640 |
param |
|
640 | parameter_dump_packet.sy_lfr_n_swf_p[1] = TC->dataAndCRC[3]; | |
|
641 | ||||
|
642 | parameter_dump_packet.sy_lfr_n_asm_p[0] = TC->dataAndCRC[4]; | |||
|
643 | parameter_dump_packet.sy_lfr_n_asm_p[1] = TC->dataAndCRC[5]; | |||
|
644 | ||||
|
645 | parameter_dump_packet.sy_lfr_n_bp_p0 = TC->dataAndCRC[6]; | |||
|
646 | parameter_dump_packet.sy_lfr_n_bp_p1 = TC->dataAndCRC[7]; | |||
|
647 | ||||
641 | result = LFR_SUCCESSFUL; |
|
648 | result = LFR_SUCCESSFUL; | |
642 | } |
|
649 | } | |
643 |
|
650 | |||
@@ -704,6 +711,25 int action_load_sbm2(ccsdsTelecommandPac | |||||
704 | return result; |
|
711 | return result; | |
705 | } |
|
712 | } | |
706 |
|
713 | |||
|
714 | int action_dump(ccsdsTelecommandPacket_t *TC) | |||
|
715 | { | |||
|
716 | int status; | |||
|
717 | // send parameter dump packet | |||
|
718 | status = write(fdSPW, (char *) ¶meter_dump_packet, | |||
|
719 | PACKET_LENGTH_PARAMETER_DUMP + CCSDS_TC_TM_PACKET_OFFSET + 4); | |||
|
720 | if (status == -1) | |||
|
721 | { | |||
|
722 | PRINTF1("in action_dump *** ERR sending packet, code %d", status) | |||
|
723 | status = RTEMS_UNSATISFIED; | |||
|
724 | } | |||
|
725 | else | |||
|
726 | { | |||
|
727 | status = RTEMS_SUCCESSFUL; | |||
|
728 | } | |||
|
729 | ||||
|
730 | return status; | |||
|
731 | } | |||
|
732 | ||||
707 | int action_updt_info(ccsdsTelecommandPacket_t *TC) { |
|
733 | int action_updt_info(ccsdsTelecommandPacket_t *TC) { | |
708 | unsigned int val; |
|
734 | unsigned int val; | |
709 | int result; |
|
735 | int result; | |
@@ -994,7 +1020,10 int enter_sbm1_mode(ccsdsTelecommandPack | |||||
994 | } |
|
1020 | } | |
995 |
|
1021 | |||
996 | // at the beginning of the mode, the parameter local_sbm1_nb_cwf_max has a specific value |
|
1022 | // at the beginning of the mode, the parameter local_sbm1_nb_cwf_max has a specific value | |
997 |
param_local.local_sbm1_nb_cwf_max = 2 * |
|
1023 | param_local.local_sbm1_nb_cwf_max = 2 * ( | |
|
1024 | (parameter_dump_packet.sy_lfr_n_swf_p[0] * 256) | |||
|
1025 | + parameter_dump_packet.sy_lfr_n_swf_p[1] | |||
|
1026 | )/ 4; | |||
998 |
|
1027 | |||
999 | #ifdef GSA |
|
1028 | #ifdef GSA | |
1000 | #else |
|
1029 | #else | |
@@ -1024,7 +1053,10 int enter_sbm2_mode(ccsdsTelecommandPack | |||||
1024 | } |
|
1053 | } | |
1025 |
|
1054 | |||
1026 | // at the beginning of the mode, the parameter local_sbm2_nb_cwf_max has a specific value |
|
1055 | // at the beginning of the mode, the parameter local_sbm2_nb_cwf_max has a specific value | |
1027 |
param_local.local_sbm1_nb_cwf_max = |
|
1056 | param_local.local_sbm1_nb_cwf_max = ( | |
|
1057 | (parameter_dump_packet.sy_lfr_n_swf_p[0] * 256) | |||
|
1058 | + parameter_dump_packet.sy_lfr_n_swf_p[1] | |||
|
1059 | ) / 16; | |||
1028 |
|
1060 | |||
1029 | #ifdef GSA |
|
1061 | #ifdef GSA | |
1030 | #else |
|
1062 | #else | |
@@ -1141,6 +1173,39 int send_tm_lfr_tc_exe_not_implemented(c | |||||
1141 | return LFR_SUCCESSFUL; |
|
1173 | return LFR_SUCCESSFUL; | |
1142 | } |
|
1174 | } | |
1143 |
|
1175 | |||
|
1176 | int send_tm_lfr_tc_exe_error(ccsdsTelecommandPacket_t *TC) | |||
|
1177 | { | |||
|
1178 | rtems_status_code status; | |||
|
1179 | TMHeader_t TM_header; | |||
|
1180 | char data[8]; | |||
|
1181 | spw_ioctl_pkt_send spw_ioctl_send; | |||
|
1182 | ||||
|
1183 | TM_build_header( TM_LFR_TC_EXE_ERR, PACKET_LENGTH_TC_EXE_ERROR, | |||
|
1184 | &TM_header, | |||
|
1185 | TC->sourceID); // TC source ID | |||
|
1186 | ||||
|
1187 | data[0] = (char) (FAILURE_CODE_ERROR >> 8); | |||
|
1188 | data[1] = (char) FAILURE_CODE_ERROR; | |||
|
1189 | data[2] = TC->packetID[0]; | |||
|
1190 | data[3] = TC->packetID[1]; | |||
|
1191 | data[4] = TC->packetSequenceControl[0]; | |||
|
1192 | data[5] = TC->packetSequenceControl[1]; | |||
|
1193 | data[6] = TC->serviceType; // type of the rejected TC | |||
|
1194 | data[7] = TC->serviceSubType; // subtype of the rejected TC | |||
|
1195 | ||||
|
1196 | // filling the structure for the spacewire transmission | |||
|
1197 | spw_ioctl_send.hlen = TM_HEADER_LEN + 4; // + 4 is for the protocole extra header | |||
|
1198 | spw_ioctl_send.hdr = (char*) &TM_header; | |||
|
1199 | spw_ioctl_send.dlen = 8; | |||
|
1200 | spw_ioctl_send.data = data; | |||
|
1201 | spw_ioctl_send.options = 0; | |||
|
1202 | ||||
|
1203 | // SEND DATA | |||
|
1204 | status = ioctl( fdSPW, SPACEWIRE_IOCTRL_SEND, &spw_ioctl_send ); | |||
|
1205 | ||||
|
1206 | return LFR_SUCCESSFUL; | |||
|
1207 | } | |||
|
1208 | ||||
1144 | void update_last_TC_exe(ccsdsTelecommandPacket_t *TC) |
|
1209 | void update_last_TC_exe(ccsdsTelecommandPacket_t *TC) | |
1145 | { |
|
1210 | { | |
1146 | housekeeping_packet.hk_lfr_last_exe_tc_id[0] = TC->packetID[0]; |
|
1211 | housekeeping_packet.hk_lfr_last_exe_tc_id[0] = TC->packetID[0]; |
@@ -555,12 +555,18 void send_waveform_norm(Header_TM_LFR_SC | |||||
555 | if (lfrMode == LFR_MODE_SBM1) { |
|
555 | if (lfrMode == LFR_MODE_SBM1) { | |
556 | param_local.local_sbm1_nb_cwf_sent = 0; |
|
556 | param_local.local_sbm1_nb_cwf_sent = 0; | |
557 | // after the first transmission of the swf at F1, the period is set to local_sbm1_nb_cwf_max |
|
557 | // after the first transmission of the swf at F1, the period is set to local_sbm1_nb_cwf_max | |
558 |
param_local.local_sbm1_nb_cwf_max = 2 * |
|
558 | param_local.local_sbm1_nb_cwf_max = 2 * ( | |
|
559 | ( parameter_dump_packet.sy_lfr_n_swf_p[0] * 256 ) | |||
|
560 | + parameter_dump_packet.sy_lfr_n_swf_p[1] | |||
|
561 | ); | |||
559 | } |
|
562 | } | |
560 | else if (lfrMode == LFR_MODE_SBM2) { |
|
563 | else if (lfrMode == LFR_MODE_SBM2) { | |
561 | param_local.local_sbm2_nb_cwf_sent = 0; |
|
564 | param_local.local_sbm2_nb_cwf_sent = 0; | |
562 | // after the first transmission of the swf at F2, the period is set to local_sbm2_nb_cwf_max |
|
565 | // after the first transmission of the swf at F2, the period is set to local_sbm2_nb_cwf_max | |
563 |
param_local.local_sbm2_nb_cwf_max = |
|
566 | param_local.local_sbm2_nb_cwf_max = ( | |
|
567 | ( parameter_dump_packet.sy_lfr_n_swf_p[0] * 256 ) | |||
|
568 | + parameter_dump_packet.sy_lfr_n_swf_p[1] | |||
|
569 | )/ 8; | |||
564 | } |
|
570 | } | |
565 | else { |
|
571 | else { | |
566 | waveform_picker_regs->status = waveform_picker_regs->status & 0x00; |
|
572 | waveform_picker_regs->status = waveform_picker_regs->status & 0x00; | |
@@ -663,14 +669,16 void reset_wfp_burst_enable() | |||||
663 |
|
669 | |||
664 | void reset_wfp_regs() |
|
670 | void reset_wfp_regs() | |
665 | { |
|
671 | { | |
666 |
set_wfp_data_shaping(param |
|
672 | set_wfp_data_shaping(parameter_dump_packet.bw_sp0_sp1_r0_r1); | |
667 | reset_wfp_burst_enable(); |
|
673 | reset_wfp_burst_enable(); | |
668 | waveform_picker_regs->addr_data_f0 = (int) (wf_snap_f0); // |
|
674 | waveform_picker_regs->addr_data_f0 = (int) (wf_snap_f0); // | |
669 | waveform_picker_regs->addr_data_f1 = (int) (wf_snap_f1); // |
|
675 | waveform_picker_regs->addr_data_f1 = (int) (wf_snap_f1); // | |
670 | waveform_picker_regs->addr_data_f2 = (int) (wf_snap_f2); // |
|
676 | waveform_picker_regs->addr_data_f2 = (int) (wf_snap_f2); // | |
671 | waveform_picker_regs->addr_data_f3 = (int) (wf_cont_f3); // |
|
677 | waveform_picker_regs->addr_data_f3 = (int) (wf_cont_f3); // | |
672 | waveform_picker_regs->status = 0x00; // |
|
678 | waveform_picker_regs->status = 0x00; // | |
673 | set_wfp_delta_snapshot( param_norm.sy_lfr_n_swf_p ); // time in seconds between two snapshots |
|
679 | set_wfp_delta_snapshot( | |
|
680 | ( parameter_dump_packet.sy_lfr_n_swf_p[0]*256) | |||
|
681 | + parameter_dump_packet.sy_lfr_n_swf_p[1] ); // time in seconds between two snapshots | |||
674 | waveform_picker_regs->delta_f2_f1 = 0xffff; // max 4 bytes |
|
682 | waveform_picker_regs->delta_f2_f1 = 0xffff; // max 4 bytes | |
675 | waveform_picker_regs->delta_f2_f0 = 0x17c00; // max 5 bytes |
|
683 | waveform_picker_regs->delta_f2_f0 = 0x17c00; // max 5 bytes | |
676 | waveform_picker_regs->nb_burst_available = 0x180; // max 3 bytes, size of the buffer in burst (1 burst = 16 x 4 octets) |
|
684 | waveform_picker_regs->nb_burst_available = 0x180; // max 3 bytes, size of the buffer in burst (1 burst = 16 x 4 octets) |
General Comments 0
You need to be logged in to leave comments.
Login now