System Management code

Dependencies:   mbed CANBuffer Watchdog MODSERIAL mbed-rtos xbeeRelay IAP

Fork of SystemManagement by Martin Deng

Libs/xbeeRelay/PERMessage.cpp

Committer:
pspatel321
Date:
2014-11-14
Revision:
31:7eaa5e881b56

File content as of revision 31:7eaa5e881b56:

#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;
}