Skip to content

Commit e9b5fad

Browse files
committed
ADDS docs images
1 parent 71a5ba0 commit e9b5fad

File tree

19 files changed

+1207
-312
lines changed

19 files changed

+1207
-312
lines changed

Doxyfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1146,7 +1146,7 @@ EXAMPLE_RECURSIVE = NO
11461146
# that contain images that are to be included in the documentation (see the
11471147
# \image command).
11481148

1149-
IMAGE_PATH =
1149+
IMAGE_PATH = $(PROJECT_SOURCE_DIR)/user-docs/images
11501150

11511151
# The INPUT_FILTER tag can be used to specify a program that Doxygen should
11521152
# invoke to filter for each input file. Doxygen will invoke the filter program

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@
151151
</details>
152152

153153

154-
# Project-Shadow-Flight
154+
<h1> <a href="#project-shadow-flight">Project-Shadow-Flight</a> </h1>
155155
"Oh yee space fairer!
156156
I will write your name on the moon with my fingertips"
157157
~ ESA, EIRSAT-mission
-4.64 KB
Binary file not shown.

application-notes/ccsds-tm-decoding

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,21 @@ This file describes the Modified CCSDS packet
33
All the following data pointa/octets are contigous
44

55
HEADER:
6-
Transfer frame version NUmber TFVN
7-
Spacecraft identifier SCID
8-
Virtual channel identifier VCID
96

107

118
PROTOCOL DATA UNIT:
129
- TELEMETRY TRANSFER FRAME
13-
1.
10+
1. Header (6 bytes) - mandatory :
11+
Transfer frame version NUmber TFVN
12+
Spacecraft identifier SCID
13+
Virtual channel identifier VCID
14+
2. Secondary header (64 bytes) - optional
15+
16+
3. Data field (N bytes) - mandatory
17+
18+
4. Operational control field ((4 bytes)
19+
20+
5. Frame error control field (2 bytes)
1421

1522

1623

documentation/firmware-docs/html/index.html

Lines changed: 562 additions & 54 deletions
Large diffs are not rendered by default.

documentation/firmware-docs/html/navtreedata.js

Lines changed: 89 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -25,69 +25,107 @@
2525
var NAVTREE =
2626
[
2727
[ "Project Shadow Flight - A 1U Cubesat", "index.html", [
28-
[ "Project-Shadow-Flight", "index.html#autotoc_md0", [
29-
[ "Introduction", "index.html#autotoc_md1", [
30-
[ "Web documentation", "index.html#autotoc_md2", null ],
31-
[ "Design Videos for visual consumers", "index.html#autotoc_md3", null ]
28+
[ "System components", "index.html#autotoc_md5", [
29+
[ "Introduction", "index.html#autotoc_md0", [
30+
[ "Web documentation", "index.html#autotoc_md1", null ],
31+
[ "Design Videos for visual consumers", "index.html#autotoc_md2", null ]
3232
] ],
33-
[ "Motivation", "index.html#autotoc_md4", null ],
34-
[ "Mission statement", "index.html#autotoc_md5", null ]
35-
] ],
36-
[ "System components", "index.html#autotoc_md6", [
37-
[ "1. Onboard Computer", "index.html#autotoc_md7", [
38-
[ "Introduction", "index.html#autotoc_md8", null ],
39-
[ "Functional requirements", "index.html#autotoc_md9", null ],
40-
[ "Components of the OBC", "index.html#autotoc_md10", null ]
33+
[ "Motivation", "index.html#autotoc_md3", null ],
34+
[ "Mission statement", "index.html#autotoc_md4", null ],
35+
[ "1. Onboard Computer", "index.html#autotoc_md6", [
36+
[ "Introduction", "index.html#autotoc_md7", null ],
37+
[ "Functional requirements", "index.html#autotoc_md8", null ],
38+
[ "Components of the OBC", "index.html#autotoc_md9", null ]
4139
] ],
42-
[ "2. Sensor Board", "index.html#autotoc_md11", [
43-
[ "Introduction", "index.html#autotoc_md12", null ],
44-
[ "Functional requirements", "index.html#autotoc_md13", null ],
45-
[ "Communication protocol for sensors", "index.html#autotoc_md14", null ],
46-
[ "The PC/104 ISA Bus", "index.html#autotoc_md15", null ]
40+
[ "2. Sensor Board", "index.html#autotoc_md10", [
41+
[ "Introduction", "index.html#autotoc_md11", null ],
42+
[ "Functional requirements", "index.html#autotoc_md12", null ],
43+
[ "Communication protocol for sensors", "index.html#autotoc_md13", null ],
44+
[ "The PC/104 ISA Bus", "index.html#autotoc_md14", null ]
4745
] ],
48-
[ "<img src=\"./user-docs/images/pc104-dwg-500.gif\" alt=\"Shadow flight OBC\" width=\"400\" height=\"400\"/>", "index.html#autotoc_md17", [
49-
[ "My Pin definition", "index.html#autotoc_md19", null ]
46+
[ "<img src=\"./user-docs/images/pc104-dwg-500.gif\" alt=\"Shadow flight OBC\" width=\"400\" height=\"400\"/>", "index.html#autotoc_md16", [
47+
[ "My Pin definition", "index.html#autotoc_md18", null ]
5048
] ],
51-
[ "3. Attitude Determination and Control", "index.html#autotoc_md20", null ],
52-
[ "4. Electrical Power System (EPS)", "index.html#autotoc_md21", [
53-
[ "Introduction", "index.html#autotoc_md22", null ],
54-
[ "a) Power consumption of different bus components", "index.html#autotoc_md23", null ],
55-
[ "b) Power generation", "index.html#autotoc_md24", null ],
56-
[ "c) Energy storage", "index.html#autotoc_md25", null ],
57-
[ "d) Mission analysis in regards to power", "index.html#autotoc_md26", null ],
58-
[ "e) EPS Schematics summary", "index.html#autotoc_md27", [
59-
[ "Conversion", "index.html#autotoc_md28", null ],
60-
[ "Power Distribution Schemes", "index.html#autotoc_md29", null ],
61-
[ "Power supply control", "index.html#autotoc_md30", null ]
49+
[ "3. Attitude Determination and Control", "index.html#autotoc_md19", null ],
50+
[ "4. Electrical Power System (EPS)", "index.html#autotoc_md20", [
51+
[ "Introduction", "index.html#autotoc_md21", null ],
52+
[ "a) Power consumption of different bus components", "index.html#autotoc_md22", null ],
53+
[ "b) Power generation", "index.html#autotoc_md23", null ],
54+
[ "c) Energy storage", "index.html#autotoc_md24", null ],
55+
[ "d) Mission analysis in regards to power", "index.html#autotoc_md25", null ],
56+
[ "e) EPS Schematics summary", "index.html#autotoc_md26", [
57+
[ "Conversion", "index.html#autotoc_md27", null ],
58+
[ "Power Distribution Schemes", "index.html#autotoc_md28", null ],
59+
[ "Power supply control", "index.html#autotoc_md29", null ]
6260
] ],
63-
[ "f) Isolated tests", "index.html#autotoc_md31", null ],
64-
[ "g) EPS integration and Testing", "index.html#autotoc_md32", [
65-
[ "Battery and solar panel sizing data", "index.html#autotoc_md33", null ]
61+
[ "f) Isolated tests", "index.html#autotoc_md30", null ],
62+
[ "g) EPS integration and Testing", "index.html#autotoc_md31", [
63+
[ "Battery and solar panel sizing data", "index.html#autotoc_md32", null ]
6664
] ]
6765
] ]
6866
] ],
69-
[ "5. Payload and Mission Design", "index.html#autotoc_md34", [
70-
[ "Payload PCB", "index.html#autotoc_md37", [
71-
[ "Payload system requirements", "index.html#autotoc_md35", null ],
72-
[ "Payload communication interface", "index.html#autotoc_md36", [
73-
[ "Tracks", "index.html#autotoc_md38", null ],
74-
[ "3D view", "index.html#autotoc_md39", null ]
67+
[ "5. Payload and Mission Design", "index.html#autotoc_md33", [
68+
[ "Payload PCB", "index.html#autotoc_md36", [
69+
[ "Payload system requirements", "index.html#autotoc_md34", null ],
70+
[ "Payload communication interface", "index.html#autotoc_md35", [
71+
[ "Tracks", "index.html#autotoc_md37", null ],
72+
[ "3D view", "index.html#autotoc_md38", null ]
7573
] ]
7674
] ]
7775
] ],
78-
[ "Communication Protocol", "index.html#autotoc_md40", [
79-
[ "CCSDS Telemetry(TM) Space Data Link Protocol", "index.html#autotoc_md41", [
80-
[ "What is CCSDS Space Data Link Protocol", "index.html#autotoc_md42", null ],
81-
[ "CCSDS protocol data unit (PDU)", "index.html#autotoc_md43", null ],
82-
[ "Field descriptions", "index.html#autotoc_md44", null ],
83-
[ "How it is implemented", "index.html#autotoc_md45", null ],
84-
[ "Interface with the ground station", "index.html#autotoc_md46", null ],
85-
[ "Data limits and known issues", "index.html#autotoc_md47", null ]
76+
[ "Communication Protocol", "index.html#autotoc_md39", [
77+
[ "CCSDS Telemetry(TM) Space Data Link Protocol", "index.html#autotoc_md40", [
78+
[ "What is CCSDS Space Data Link Protocol", "index.html#autotoc_md41", null ],
79+
[ "CCSDS protocol data unit (PDU)", "index.html#autotoc_md42", null ],
80+
[ "Field descriptions", "index.html#autotoc_md43", null ],
81+
[ "How it is implemented", "index.html#autotoc_md44", null ],
82+
[ "Protocol data frame (PDU)", "index.html#autotoc_md45", [
83+
[ "1. Primary header", "index.html#autotoc_md47", null ],
84+
[ "Transfer Frame Version Number", "index.html#autotoc_md48", null ],
85+
[ "Spacecraft Identifier (SCID)", "index.html#autotoc_md49", null ]
86+
] ],
87+
[ "CCSDS Transfer Frame Header – Virtual Channel, Control Flag, and Counters", "index.html#autotoc_md50", [
88+
[ "Virtual Channel Identifier (VCID)", "index.html#autotoc_md51", null ],
89+
[ "Operational Control Field Flag (OCF Flag)", "index.html#autotoc_md52", null ],
90+
[ "Master Channel Frame Count (MCFC)", "index.html#autotoc_md53", null ],
91+
[ "Virtual Channel Frame Count (VCFC)", "index.html#autotoc_md54", null ],
92+
[ "Transfer Frame Data Field Status (TFDFS)", "index.html#autotoc_md55", null ],
93+
[ "Purpose", "index.html#autotoc_md56", null ]
94+
] ],
95+
[ "CCSDS Transfer Frame Secondary Header", "index.html#autotoc_md57", [
96+
[ "Overview", "index.html#autotoc_md58", null ],
97+
[ "Structure", "index.html#autotoc_md59", null ],
98+
[ "Channel Association", "index.html#autotoc_md60", null ],
99+
[ "Usage Rules", "index.html#autotoc_md61", null ],
100+
[ "Secondary header data field usage", "index.html#autotoc_md62", null ]
101+
] ],
102+
[ "Transfer Frame Data Field", "index.html#autotoc_md63", [
103+
[ "Overview", "index.html#autotoc_md64", null ],
104+
[ "Field Length", "index.html#autotoc_md65", null ],
105+
[ "Field Contents", "index.html#autotoc_md66", null ],
106+
[ "Channel Data Rules", "index.html#autotoc_md67", null ],
107+
[ "Packet Placement", "index.html#autotoc_md68", null ]
108+
] ]
109+
] ],
110+
[ "</blockquote>", "index.html#autotoc_md69", [
111+
[ "OID (Only Idle Data) Transfer Frames", "index.html#autotoc_md70", [
112+
[ "OID Frame Rules", "index.html#autotoc_md71", null ],
113+
[ "LFSR Initialization", "index.html#autotoc_md72", null ],
114+
[ "VCID Association", "index.html#autotoc_md73", null ],
115+
[ "Notes", "index.html#autotoc_md74", null ],
116+
[ "Idle data", "index.html#autotoc_md75", null ]
117+
] ],
118+
[ "Frame Error Control Field (FECF)", "index.html#autotoc_md76", [
119+
[ "Overview", "index.html#autotoc_md77", null ],
120+
[ "Encoding Procedure", "index.html#autotoc_md79", null ]
121+
] ],
122+
[ "Interface with the ground station", "index.html#autotoc_md80", null ],
123+
[ "Data limits and known issues", "index.html#autotoc_md81", null ]
86124
] ],
87-
[ "Related documents", "index.html#autotoc_md48", null ],
88-
[ "Relevant videos and resource materials", "index.html#autotoc_md49", null ],
89-
[ "Contribution and support", "index.html#autotoc_md50", null ],
90-
[ "Contributors", "index.html#autotoc_md51", null ]
125+
[ "Related documents", "index.html#autotoc_md82", null ],
126+
[ "Relevant videos and resource materials", "index.html#autotoc_md83", null ],
127+
[ "Contribution and support", "index.html#autotoc_md84", null ],
128+
[ "Contributors", "index.html#autotoc_md85", null ]
91129
] ]
92130
] ]
93131
];

documentation/firmware-docs/html/navtreeindex0.js

Lines changed: 80 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -3,53 +3,85 @@ var NAVTREEINDEX0 =
33
"index.html":[],
44
"index.html#autotoc_md0":[0],
55
"index.html#autotoc_md1":[0,0],
6-
"index.html#autotoc_md10":[1,0,2],
7-
"index.html#autotoc_md11":[1,1],
8-
"index.html#autotoc_md12":[1,1,0],
9-
"index.html#autotoc_md13":[1,1,1],
10-
"index.html#autotoc_md14":[1,1,2],
11-
"index.html#autotoc_md15":[1,1,3],
12-
"index.html#autotoc_md17":[1,2],
13-
"index.html#autotoc_md19":[1,2,0],
14-
"index.html#autotoc_md2":[0,0,0],
15-
"index.html#autotoc_md20":[1,3],
16-
"index.html#autotoc_md21":[1,4],
17-
"index.html#autotoc_md22":[1,4,0],
18-
"index.html#autotoc_md23":[1,4,1],
19-
"index.html#autotoc_md24":[1,4,2],
20-
"index.html#autotoc_md25":[1,4,3],
21-
"index.html#autotoc_md26":[1,4,4],
22-
"index.html#autotoc_md27":[1,4,5],
23-
"index.html#autotoc_md28":[1,4,5,0],
24-
"index.html#autotoc_md29":[1,4,5,1],
25-
"index.html#autotoc_md3":[0,0,1],
26-
"index.html#autotoc_md30":[1,4,5,2],
27-
"index.html#autotoc_md31":[1,4,6],
28-
"index.html#autotoc_md32":[1,4,7],
29-
"index.html#autotoc_md33":[1,4,7,0],
30-
"index.html#autotoc_md34":[2],
31-
"index.html#autotoc_md35":[0],
32-
"index.html#autotoc_md36":[1],
33-
"index.html#autotoc_md37":[2,0],
34-
"index.html#autotoc_md38":[1,0],
35-
"index.html#autotoc_md39":[1,1],
36-
"index.html#autotoc_md4":[0,1],
37-
"index.html#autotoc_md40":[3],
38-
"index.html#autotoc_md41":[3,0],
39-
"index.html#autotoc_md42":[3,0,0],
40-
"index.html#autotoc_md43":[3,0,1],
41-
"index.html#autotoc_md44":[3,0,2],
42-
"index.html#autotoc_md45":[3,0,3],
43-
"index.html#autotoc_md46":[3,0,4],
44-
"index.html#autotoc_md47":[3,0,5],
45-
"index.html#autotoc_md48":[3,1],
46-
"index.html#autotoc_md49":[3,2],
47-
"index.html#autotoc_md5":[0,2],
48-
"index.html#autotoc_md50":[3,3],
49-
"index.html#autotoc_md51":[3,4],
50-
"index.html#autotoc_md6":[1],
51-
"index.html#autotoc_md7":[1,0],
52-
"index.html#autotoc_md8":[1,0,0],
53-
"index.html#autotoc_md9":[1,0,1],
6+
"index.html#autotoc_md10":[0,4],
7+
"index.html#autotoc_md11":[0,4,0],
8+
"index.html#autotoc_md12":[0,4,1],
9+
"index.html#autotoc_md13":[0,4,2],
10+
"index.html#autotoc_md14":[0,4,3],
11+
"index.html#autotoc_md16":[0,5],
12+
"index.html#autotoc_md18":[0,5,0],
13+
"index.html#autotoc_md19":[0,6],
14+
"index.html#autotoc_md2":[0,1],
15+
"index.html#autotoc_md20":[0,7],
16+
"index.html#autotoc_md21":[0,7,0],
17+
"index.html#autotoc_md22":[0,7,1],
18+
"index.html#autotoc_md23":[0,7,2],
19+
"index.html#autotoc_md24":[0,7,3],
20+
"index.html#autotoc_md25":[0,7,4],
21+
"index.html#autotoc_md26":[0,7,5],
22+
"index.html#autotoc_md27":[0,7,5,0],
23+
"index.html#autotoc_md28":[0,7,5,1],
24+
"index.html#autotoc_md29":[0,7,5,2],
25+
"index.html#autotoc_md3":[1],
26+
"index.html#autotoc_md30":[0,7,6],
27+
"index.html#autotoc_md31":[0,7,7],
28+
"index.html#autotoc_md32":[0,7,7,0],
29+
"index.html#autotoc_md33":[1],
30+
"index.html#autotoc_md34":[0],
31+
"index.html#autotoc_md35":[1],
32+
"index.html#autotoc_md36":[1,0],
33+
"index.html#autotoc_md37":[1,0],
34+
"index.html#autotoc_md38":[1,1],
35+
"index.html#autotoc_md39":[2],
36+
"index.html#autotoc_md4":[2],
37+
"index.html#autotoc_md40":[2,0],
38+
"index.html#autotoc_md41":[2,0,0],
39+
"index.html#autotoc_md42":[2,0,1],
40+
"index.html#autotoc_md43":[2,0,2],
41+
"index.html#autotoc_md44":[2,0,3],
42+
"index.html#autotoc_md45":[2,0,4],
43+
"index.html#autotoc_md47":[2,0,4,0],
44+
"index.html#autotoc_md48":[2,0,4,1],
45+
"index.html#autotoc_md49":[2,0,4,2],
46+
"index.html#autotoc_md5":[0],
47+
"index.html#autotoc_md50":[2,0,5],
48+
"index.html#autotoc_md51":[2,0,5,0],
49+
"index.html#autotoc_md52":[2,0,5,1],
50+
"index.html#autotoc_md53":[2,0,5,2],
51+
"index.html#autotoc_md54":[2,0,5,3],
52+
"index.html#autotoc_md55":[2,0,5,4],
53+
"index.html#autotoc_md56":[2,0,5,5],
54+
"index.html#autotoc_md57":[2,0,6],
55+
"index.html#autotoc_md58":[2,0,6,0],
56+
"index.html#autotoc_md59":[2,0,6,1],
57+
"index.html#autotoc_md6":[0,3],
58+
"index.html#autotoc_md60":[2,0,6,2],
59+
"index.html#autotoc_md61":[2,0,6,3],
60+
"index.html#autotoc_md62":[2,0,6,4],
61+
"index.html#autotoc_md63":[2,0,7],
62+
"index.html#autotoc_md64":[2,0,7,0],
63+
"index.html#autotoc_md65":[2,0,7,1],
64+
"index.html#autotoc_md66":[2,0,7,2],
65+
"index.html#autotoc_md67":[2,0,7,3],
66+
"index.html#autotoc_md68":[2,0,7,4],
67+
"index.html#autotoc_md69":[2,1],
68+
"index.html#autotoc_md7":[0,3,0],
69+
"index.html#autotoc_md70":[2,1,0],
70+
"index.html#autotoc_md71":[2,1,0,0],
71+
"index.html#autotoc_md72":[2,1,0,1],
72+
"index.html#autotoc_md73":[2,1,0,2],
73+
"index.html#autotoc_md74":[2,1,0,3],
74+
"index.html#autotoc_md75":[2,1,0,4],
75+
"index.html#autotoc_md76":[2,1,1],
76+
"index.html#autotoc_md77":[2,1,1,0],
77+
"index.html#autotoc_md79":[2,1,1,1],
78+
"index.html#autotoc_md8":[0,3,1],
79+
"index.html#autotoc_md80":[2,1,2],
80+
"index.html#autotoc_md81":[2,1,3],
81+
"index.html#autotoc_md82":[2,2],
82+
"index.html#autotoc_md83":[2,3],
83+
"index.html#autotoc_md84":[2,4],
84+
"index.html#autotoc_md85":[2,5],
85+
"index.html#autotoc_md9":[0,3,2],
5486
"pages.html":[]
5587
};
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
doxygen/doxygen_new_line_after_brief=true
22
doxygen/doxygen_use_brief_tag=true
33
doxygen/doxygen_use_javadoc_tags=true
4-
doxygen/doxygen_use_pre_tag=true
4+
doxygen/doxygen_use_pre_tag=false
55
doxygen/doxygen_use_structural_commands=true
66
eclipse.preferences.version=1
Lines changed: 30 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,40 @@
11
/*
2-
* ccsds_tm.h
2+
* @file ccsds_tm.h
3+
* @ brief This file declares the functions for CCSDS telemetry protocol
4+
* @author Edwin Mwiti
5+
* @date Oct 6, 2025
6+
*
37
*
4-
* Created on: Oct 6, 2025
5-
* Author: eduh
68
*/
79

810
#ifndef INC_CCSDS_TM_H_
911
#define INC_CCSDS_TM_H_
1012

13+
#include "stdio.h"
14+
#include "defines.h"
15+
16+
#define CRC_POLYNOMIAL 0x1021 ///< Polynomial to use for CRC-16 calculation
17+
18+
19+
/**
20+
* @fn uint16_t CCSDS_TM_calculate_crc16()
21+
* @brief This function calculates the CRC16 for the given sequence of bytes
22+
* @return crc16 value
23+
*/
24+
uint16_t CCSDS_TM_calculate_crc16(const uint8_t *data_buffer, uint16_t length);
25+
26+
/**
27+
* @fn void CCSDS_TM_compose_packet()
28+
* @brief This function creates a CCSDS packet based off the passed data
29+
*
30+
*/
31+
void CCSDS_TM_compose_packet();
1132

33+
/**
34+
* @fn void CCSDS_TM_parse_packet()
35+
* @brief This function decomposes a CCSDS packet
36+
*
37+
*/
38+
void CCSDS_TM_parse_packet();
1239

1340
#endif /* INC_CCSDS_TM_H_ */

0 commit comments

Comments
 (0)