System Management code
Dependencies: mbed CANBuffer Watchdog MODSERIAL mbed-rtos xbeeRelay IAP
Fork of SystemManagement by
Diff: Libs/xbeeRelay/PERMessage.cpp
- 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; +}