* Changed library to call by reference instead of using pointers. Makes code much cleaner.

* RelayNodes renamed to RepeaterNode to distiguish this from RelayActuator.
* Ack is now possible to request for all message types. Added ack-flag for some of the exposed internal messages and presentation message.
This commit is contained in:
Henrik Ekblad
2014-06-16 00:30:13 +02:00
parent 9ddf442e42
commit 90f79c97cd
15 changed files with 200 additions and 204 deletions
+37 -37
View File
@@ -15,26 +15,26 @@ MyMessage::MyMessage(uint8_t _sensor, uint8_t _type) {
/* Getters for payload converted to desired form */
void* MyMessage::getCustom() {
void* MyMessage::getCustom() const {
return (void *)data;
}
char* MyMessage::getString() {
const char* MyMessage::getString() const {
uint8_t payloadType = miGetPayloadType();
if (payloadType == P_STRING) {
data[miGetLength()] = '\0';
return data;
} else {
return NULL;
}
}
char* MyMessage::getString(char *buffer) {
char* MyMessage::getString(char *buffer) const {
uint8_t payloadType = miGetPayloadType();
if (payloadType == P_STRING) {
data[miGetLength()] = '\0';
return data;
strncpy(buffer, data, miGetLength());
buffer[miGetLength()] = '\0';
return buffer;
} else if (buffer != NULL) {
switch(payloadType) {
case P_BYTE:
@@ -65,7 +65,7 @@ char* MyMessage::getString(char *buffer) {
}
}
uint8_t MyMessage::getByte() {
uint8_t MyMessage::getByte() const {
switch(miGetPayloadType()) {
case P_BYTE:
return data[0];
@@ -76,15 +76,15 @@ uint8_t MyMessage::getByte() {
}
}
bool MyMessage::getBool() {
bool MyMessage::getBool() const {
return !(data[0]-'0'==0);
}
double MyMessage::getDouble() {
double MyMessage::getDouble() const {
return strtod(data, NULL);
}
long MyMessage::getLong() {
long MyMessage::getLong() const {
switch(miGetPayloadType()) {
case P_LONG32:
return lValue;
@@ -95,7 +95,7 @@ long MyMessage::getLong() {
}
}
unsigned long MyMessage::getULong() {
unsigned long MyMessage::getULong() const {
switch(miGetPayloadType()) {
case P_ULONG32:
return ulValue;
@@ -106,7 +106,7 @@ unsigned long MyMessage::getULong() {
}
}
int MyMessage::getInt() {
int MyMessage::getInt() const {
switch(miGetPayloadType()) {
case P_INT16:
return iValue;
@@ -117,7 +117,7 @@ int MyMessage::getInt() {
}
}
unsigned int MyMessage::getUInt() {
unsigned int MyMessage::getUInt() const {
switch(miGetPayloadType()) {
case P_UINT16:
return uiValue;
@@ -130,85 +130,85 @@ unsigned int MyMessage::getUInt() {
}
MyMessage* MyMessage::setType(uint8_t _type) {
MyMessage& MyMessage::setType(uint8_t _type) {
type = _type;
return this;
return *this;
}
MyMessage* MyMessage::setSensor(uint8_t _sensor) {
MyMessage& MyMessage::setSensor(uint8_t _sensor) {
sensor = _sensor;
return this;
return *this;
}
MyMessage* MyMessage::setDestination(uint8_t _destination) {
MyMessage& MyMessage::setDestination(uint8_t _destination) {
destination = _destination;
return this;
return *this;
}
// Set payload
MyMessage* MyMessage::set(void* value, uint8_t length) {
MyMessage& MyMessage::set(void* value, uint8_t length) {
miSetPayloadType(P_CUSTOM);
miSetLength(length);
memcpy(data, value, min(length, MAX_PAYLOAD));
return this;
return *this;
}
MyMessage* MyMessage::set(const char* value) {
MyMessage& MyMessage::set(const char* value) {
uint8_t length = strlen(value);
miSetLength(length);
miSetPayloadType(P_STRING);
strncpy(data, value, min(length, MAX_PAYLOAD));
return this;
return *this;
}
MyMessage* MyMessage::set(uint8_t value) {
MyMessage& MyMessage::set(uint8_t value) {
miSetLength(1);
miSetPayloadType(P_BYTE);
data[0] = value;
return this;
return *this;
}
MyMessage* MyMessage::set(bool value) {
MyMessage& MyMessage::set(bool value) {
miSetLength(1);
miSetPayloadType(P_STRING);
data[0] = value?'1':'0';
return this;
return *this;
}
MyMessage* MyMessage::set(double value, uint8_t decimals) {
MyMessage& MyMessage::set(double value, uint8_t decimals) {
dtostrf(value,2,decimals,data);
miSetLength(strlen(data));
miSetPayloadType(P_STRING);
return this;
return *this;
}
MyMessage* MyMessage::set(unsigned long value) {
MyMessage& MyMessage::set(unsigned long value) {
miSetPayloadType(P_ULONG32);
miSetLength(4);
ulValue = value;
return this;
return *this;
}
MyMessage* MyMessage::set(long value) {
MyMessage& MyMessage::set(long value) {
miSetPayloadType(P_LONG32);
miSetLength(4);
lValue = value;
return this;
return *this;
}
MyMessage* MyMessage::set(unsigned int value) {
MyMessage& MyMessage::set(unsigned int value) {
miSetPayloadType(P_UINT16);
miSetLength(2);
uiValue = value;
return this;
return *this;
}
MyMessage* MyMessage::set(int value) {
MyMessage& MyMessage::set(int value) {
miSetPayloadType(P_INT16);
miSetLength(2);
iValue = value;
return this;
return *this;
}