diff --git a/src/mrf24j.cpp b/src/mrf24j.cpp index b720cd6..b90ae53 100644 --- a/src/mrf24j.cpp +++ b/src/mrf24j.cpp @@ -104,12 +104,17 @@ word Mrf24j::address16_read(void) { return a16h << 8 | read_short(MRF_SADRL); } + +void Mrf24j::send_str(word dest16, char * data) { + byte len = strlen(data); // get the length of the char* array + send(dest16, data, len); +} + /** * Simple send 16, with acks, not much of anything.. assumes src16 and local pan only. * @param data */ -void Mrf24j::send16(word dest16, char * data) { - byte len = strlen(data); // get the length of the char* array +void Mrf24j::send(word dest16, char * data, int len) { int i = 0; write_long(i++, bytes_MHR); // header length // +ignoreBytes is because some module seems to ignore 2 bytes after the header?!. diff --git a/src/mrf24j.h b/src/mrf24j.h index 1475b95..1a0df63 100644 --- a/src/mrf24j.h +++ b/src/mrf24j.h @@ -227,7 +227,8 @@ class Mrf24j */ void set_palna(boolean enabled); - void send16(word dest16, char * data); + void send(word dest16, char * data, int len); + void send_str(word dest16, char * data); void interrupt_handler(void); diff --git a/test/tx/main.cpp b/test/tx/main.cpp index 8e96d1d..47a0de0 100644 --- a/test/tx/main.cpp +++ b/test/tx/main.cpp @@ -47,7 +47,7 @@ int main() { //mrf.wake(); sprintf(tmp,"Received %i\n\r", i); - mrf.send16(0x4202, tmp); + mrf.send_str(0x4202, tmp); _delay_ms(2000); }