Skip to content

Commit 346c429

Browse files
committed
ADDS CCSDS telemetry playground code
1 parent ebb1204 commit 346c429

File tree

8 files changed

+372
-4
lines changed

8 files changed

+372
-4
lines changed

EPS-design/references/BQ25703.pdf

1.65 MB
Binary file not shown.
650 KB
Binary file not shown.

EPS-design/references/bq25703.png

383 KB
Loading
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
#include <stdlib.h>
2+
#include <string.h>
3+
#include "ccsds_tm.h"
4+
5+
void telemetry_generate_dummy(void)
6+
{
7+
/*generate OBS data */
8+
uint32_t obs_timestamp = UINT32_MAX; // timestamp
9+
float obs_board_voltage = 3.3; // board_voltage
10+
float obs_board_current = 250.5; // board_current
11+
uint32_t obs_uptime = 45500; // uptime in seconds
12+
uint8_t obs_reset_count = 10; // number_of_resets
13+
14+
/*generate EPS data */
15+
16+
/*generate ADCS data*/
17+
float adcs_x_acc = 0.3;
18+
float adcs_y_acc = 6.3;
19+
float adcs_z_acc = 0.3;
20+
21+
/*generate COMMS data */
22+
/*generate PAYLOAD data */
23+
}
Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
/**
2+
* @brief This file declares the headers for CCSDS TM protocol
3+
*/
4+
5+
#ifndef CCSDS_TM_H
6+
#define CCSDS_TM_H
7+
8+
#include <stdint.h>
9+
#include <stdlib.h>
10+
11+
/**
12+
* byte sizes
13+
*/
14+
#define CCSDS_MAX_PACKET_SIZE (2000)
15+
#define TRANSFER_FRAME_PRIMARY_HEADER_MAX_LENGTH (6)
16+
#define TRANSFER_FRAME_SECONDARY_HEADER_MAX_LENGTH (6)
17+
#define TRANSFER_FRAME_DATA_FIELD_MAX_LENGTH (1024)
18+
#define TRANSFER_FRAME_ERROR_CHECKSUM_MASK (2)
19+
20+
/**
21+
* TRANSFER_FRAME_PRIMARY_HEADER (TFPH)
22+
*/
23+
#define TFPH_VERSION_NUMBER_MASK (0x03)
24+
#define TFPH_SPACECRAFT_ID_MASK (0X3FF)
25+
#define TFPH_VIRTUAL_CHANNEL_ID_MASK (0x07)
26+
#define TFPH_OPERATIONAL_CONTROL_FLAG_MASK (0x01)
27+
#define TFPH_MASTER_CHANNEL_FRAME_COUNT_MASK (0xFF)
28+
#define TFPH_VIRTUAL_CHANNEL_FRAME_COUNT_MASK (0xFF)
29+
#define TPFH_TRANSFER_FRAME_DATA_FIELD_STATUS (0xFFFF)
30+
31+
/**
32+
* transfer frame data field status (TF)
33+
* transfer frame secondary header status (TFSHS)
34+
*/
35+
#define TFSHS_FLAG_MASK (0x01)
36+
#define TFSHS_SYNC_FLAG_MASK (0x01)
37+
#define TFSHS_PACKET_ORDER_FLAG_MASK (0x01)
38+
#define TFSHS_SEGMENT_LENGTH_ID_MASK (0x02)
39+
#define TFSHS_FIRST_HEADER_POINTER_MASK (0x7FF)
40+
41+
/**
42+
* Transfer frame secondary header TFSH
43+
*/
44+
#define TFSH_TRANSFER_FRAME_SECONDARY_HEADER_VERSION_NUMBER_MASK (0x02)
45+
#define TFSH_SYNC_FLAG_MASK (0x3F)
46+
47+
#define TFSH_DATA_FIELD_MAX_LENGTH (64)
48+
49+
/**
50+
* \brief faker fucntion to generate dummy telemetry
51+
*/
52+
void telemetry_generate_dummy(void);
53+
54+
55+
typedef struct CCSDS_Packet CCSDS_Packet;
56+
57+
/**
58+
* \brief Base class for CCSDS protocol
59+
*/
60+
struct CCSDS_Packet {
61+
62+
CCSDS_Packet* CCSDS_packet_create();
63+
void (*CCSDS_Packet_init)(
64+
void (*CCSDS_Packet_cleanup_function)(void),
65+
void (*CCSDS_Packet_telemetry_faker_function)(void)
66+
);
67+
68+
void (*CCSDS_Packet_cleanup)(void);
69+
void (*CCSDS_Packet_telemetry_faker)(void);
70+
71+
};
72+
73+
/* create functions */
74+
CCSDS_Packet *CCSDS_packet_create() {
75+
// allocate memory for the CCSDS packet
76+
CCSDS_Packet *pkt = (CCSDS_Packet *) malloc(sizeof(uint8_t) * CCSDS_MAX_PACKET_SIZE);
77+
}
78+
79+
/* call init with the created functions */
80+
81+
82+
#endif

user-docs/.$telemetry-Protocol-data-unit.drawio.bkp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<mxfile host="Electron" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/28.1.2 Chrome/138.0.7204.243 Electron/37.4.0 Safari/537.36" version="28.1.2">
22
<diagram name="Page-1" id="BEZI4qmmZRfK3UoGMRGf">
3-
<mxGraphModel dx="721" dy="531" grid="0" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" background="none" math="0" shadow="0">
3+
<mxGraphModel dx="1311" dy="965" grid="0" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" background="none" math="0" shadow="0">
44
<root>
55
<mxCell id="0" />
66
<mxCell id="1" parent="0" />
@@ -189,7 +189,7 @@
189189
<mxCell id="C4oDjcXgk7rpG0gPZD4N-62" value="6 bit" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1">
190190
<mxGeometry x="136" y="1037" width="41" height="26" as="geometry" />
191191
</mxCell>
192-
<mxCell id="C4oDjcXgk7rpG0gPZD4N-63" value="transfer&lt;div&gt;frame secondary&amp;nbsp;&lt;/div&gt;&lt;div&gt;header ID&lt;/div&gt;" style="whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1">
192+
<mxCell id="C4oDjcXgk7rpG0gPZD4N-63" value="transfer&lt;div&gt;frame secondary&amp;nbsp;&lt;/div&gt;&lt;div&gt;header data field&lt;/div&gt;" style="whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1">
193193
<mxGeometry x="238" y="895" width="184" height="69" as="geometry" />
194194
</mxCell>
195195
<mxCell id="C4oDjcXgk7rpG0gPZD4N-64" value="up to 64 bytes" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1">

0 commit comments

Comments
 (0)