SatDump 2.0.0-alpha-520736c72
Loading...
Searching...
No Matches
ccsds.h
Go to the documentation of this file.
1#pragma once
2
7
8#include <cstdint>
9#include <vector>
10
11namespace ccsds
12{
16 struct CCSDSHeader
17 {
18 uint8_t raw[6];
19 uint8_t version;
20 bool type;
21 bool secondary_header_flag;
22 uint16_t apid;
23 uint8_t sequence_flag;
24 uint16_t packet_sequence_count;
25 uint16_t packet_length;
26
27 CCSDSHeader();
28 CCSDSHeader(uint8_t *rawi);
29 CCSDSHeader(const CCSDSHeader &v) noexcept;
30 void encodeHDR();
31
32 CCSDSHeader &operator=(const CCSDSHeader &v) noexcept;
33 };
34
38 struct CCSDSPacket
39 {
40 CCSDSHeader header;
41 std::vector<uint8_t> payload;
42 void encodeHDR();
43
44 CCSDSPacket() {}
45 CCSDSPacket(const CCSDSPacket &v) noexcept;
46
47 CCSDSPacket &operator=(const CCSDSPacket &v) noexcept;
48 };
49
55 CCSDSHeader parseCCSDSHeader(uint8_t *header);
56
63 bool crcCheckCCITT(CCSDSPacket &pkt);
64
71 bool crcCheckHLDC32(CCSDSPacket &pkt);
72
79 bool crcCheckVerticalParity(CCSDSPacket &pkt);
80} // namespace ccsds
Struct representing a CCSDS Space Packet header.
Definition ccsds.h:17
Struct representing a CCSDS Space Packet.
Definition ccsds.h:39