code cleanup + comments

interrupts
polymurph 4 years ago
parent 5179c55b12
commit 07449fb177

@ -7,21 +7,27 @@
#define PACKET_N_BYTES 16 #define PACKET_N_BYTES 16
// type definitions
using ui8_t = uint8_t; using ui8_t = uint8_t;
using packet_t = std::array<ui8_t, PACKET_N_BYTES>; using packet_t = std::array<ui8_t, PACKET_N_BYTES>;
using payload_t = std::array<ui8_t, 12>; using payload_t = std::array<ui8_t, 12>;
// packet head for reference
const std::array<ui8_t,2> head = {0xAE, 0xAE}; const std::array<ui8_t,2> head = {0xAE, 0xAE};
// packet tail for reference
const std::array<ui8_t,2> tail = {0xAE, 0xAE}; const std::array<ui8_t,2> tail = {0xAE, 0xAE};
enum packetParts // packet sections
enum packetSections
{ {
Head, Head,
Payload, Payload,
Tail Tail
}; };
// dummy function which spitsout the payload of the packet
void outputPayload(payload_t payload) void outputPayload(payload_t payload)
{ {
@ -30,14 +36,17 @@ void outputPayload(payload_t payload)
std::cout << std::endl; std::cout << std::endl;
} }
// this function cann be called for example when the dma has received a datablock from uart and
// triggered a completion interrupt.
// The different packet sections can be changed according to the packet received. For example one
// can perform a CRC here.
void parsePacket(const packet_t& newPacket) void parsePacket(const packet_t& newPacket)
{ {
bool done = false;
payload_t payload; payload_t payload;
packetParts packetIndex = Head; packetSections packetIndex = Head;
ui8_t i = 0; ui8_t i = 0;
//do { // packet index foorloop forloop is rolled out throughout
switch(packetIndex) { switch(packetIndex) {
case Head: case Head:
std::cout << "checking packet head..." << std::endl; std::cout << "checking packet head..." << std::endl;
@ -51,7 +60,9 @@ void parsePacket(const packet_t& newPacket)
std::cout << "...head valid!" << std::endl; std::cout << "...head valid!" << std::endl;
//packetIndex = Payload; //packetIndex = Payload;
//break; //break;
case Payload:
// leapover to next packet section
case Payload:
// copy payload // copy payload
std::cout << "copy payload..." << std::endl; std::cout << "copy payload..." << std::endl;
for(;i < 14; i++) { for(;i < 14; i++) {
@ -60,6 +71,8 @@ void parsePacket(const packet_t& newPacket)
std::cout << "...done!" << std::endl; std::cout << "...done!" << std::endl;
//packetIndex = Tail; //packetIndex = Tail;
//break; //break;
// leapover to next packet section
case Tail: case Tail:
// check tail // check tail
std::cout << "checking packet tail..." << std::endl; std::cout << "checking packet tail..." << std::endl;
@ -72,8 +85,7 @@ void parsePacket(const packet_t& newPacket)
std::cout << "...tail valid!" << std::endl; std::cout << "...tail valid!" << std::endl;
std::cout << "forwarding payload!" << std::endl; std::cout << "forwarding payload!" << std::endl;
outputPayload(payload); outputPayload(payload);
done = true; return;
break;
default: default:
return; return;
}; };

Loading…
Cancel
Save