ENEL400 / L3PDU

Dependents:   LoRaBaseStation LoRaTerminal

Revision:
0:f32c0e562e9a
Child:
2:f4f46b04ab8a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ControPacket/ControlPacket.cpp	Wed Jun 29 01:37:59 2016 +0000
@@ -0,0 +1,82 @@
+#include "ControlPacket.h"
+
+ControlPacket::ControlPacket()
+    : BasicPacket()
+{
+}
+
+ControlPacket::ControlPacket(uint8_t *data)
+    : BasicPacket(data)
+{
+}
+
+ControlPacket::~ControlPacket()
+{
+}
+
+void ControlPacket::setSequenceID(uint8_t seqid)
+{
+    setField1(seqid);
+}
+
+void ControlPacket::setSourceID(uint8_t sid)
+{
+    uint8_t pattern = getField2();
+
+    // clear upper 4 bits
+    pattern &= 0x0f;
+
+    // set bits
+    pattern |= sid << 4;
+
+    // write back to bit field
+    setField2(pattern);
+}
+
+void ControlPacket::setDestinationID(uint8_t did)
+{
+    uint8_t pattern = getField2();
+
+    // clear lower 4 bits
+    pattern &= 0xf0;
+
+    // set bits
+    pattern |= did & 0x0f;
+
+    // write back to bit field
+    setField2(pattern);
+}
+
+void ControlPacket::setCommand(uint8_t cmd)
+{
+    uint8_t pattern = getField3();
+
+    // clear upper 4 bits
+    pattern &= 0x0f;
+
+    // set bits
+    pattern |= cmd << 4;
+
+    // write back to bit field
+    setField3(pattern);
+}
+
+uint8_t ControlPacket::getSequenceID()
+{
+    return getField1();
+}
+
+uint8_t ControlPacket::getSourceID()
+{
+    return (getField2() & 0xf0) >> 4;
+}
+
+uint8_t ControlPacket::getDestinationID()
+{
+    return getField2() & 0x0f;
+}
+
+uint8_t ControlPacket::getCommand()
+{
+    return (getField3() & 0xf0) >> 4;
+}