System Management code

Dependencies:   mbed CANBuffer Watchdog MODSERIAL mbed-rtos xbeeRelay IAP

Fork of SystemManagement by Martin Deng

Revision:
31:7eaa5e881b56
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Libs/xbeeRelay/PERMessage.cpp	Fri Nov 14 06:05:59 2014 +0000
@@ -0,0 +1,54 @@
+#include "PERMessage.h"
+
+PERMessage::PERMessage() {
+
+}
+
+PERMessage::PERMessage(char contentID, char deviceID, bool rtr, char length, unsigned char* data) {
+     dataArray[0] = contentID;
+     dataArray[1] = ((deviceID & 0x7) << 5) | (rtr << 4) | (length & 0xF);
+     for (int i = 0; i < (length & 0xF); i++) {
+        dataArray[i+2] = data[i];
+     }
+}
+
+char PERMessage::getContentID() {
+    return dataArray[0];
+}
+
+char PERMessage::getDeviceID() {
+    return (dataArray[1] >> 5) & 0x7;
+}
+
+bool PERMessage::getRTR() {
+    return dataArray[1] & 0x1F;
+}
+
+char PERMessage::getLength() {
+    return dataArray[1] & 0xF;
+}
+
+void PERMessage::getDataArray(char* buffer) {
+    for (int i = 0; i < getLength() + 2; i++) {
+        buffer[i] = dataArray[i];
+    }
+}
+bool PERMessage::setContentID(char contentID) {
+    dataArray[0] = contentID;
+    return true;
+}
+
+bool PERMessage::setDeviceID(char deviceID) {
+    dataArray[1] = dataArray[1] | (deviceID & 0x7) << 5;
+    return true;
+}
+
+bool PERMessage::setRTR(bool RTR) {
+    dataArray[1] = dataArray[1] | RTR << 4;
+    return true;
+}
+
+bool PERMessage::setLength(char length) {
+    dataArray[1] = dataArray[1] | length & 0xF;
+    return true;
+}