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
0 commit comments