Skip to content

Commit

Permalink
Added RenardTX, fixed FS
Browse files Browse the repository at this point in the history
Added Renard Transmit class for sending Renard out, fixed wonky file
structure.
  • Loading branch information
madsci1016 committed Aug 27, 2015
1 parent 1ee5250 commit 1b07d1d
Show file tree
Hide file tree
Showing 3 changed files with 70 additions and 18 deletions.
42 changes: 41 additions & 1 deletion Renard/Renard.cpp → Arduino-Renard.cpp
@@ -1,4 +1,4 @@
#include "Renard.h"
#include "Arduino-Renard.h"

//Captures address and size of buffer
void Renard::begin(uint8_t * ptr, uint8_t length, HardwareSerial *theSerial, uint32_t baud){
Expand Down Expand Up @@ -91,4 +91,44 @@ boolean Renard::receive(){
}

return rtn;
}

void RenardTX::begin(uint16_t length, HardwareSerial *theSerial, uint32_t baud){

_size = length;
_serial = theSerial;
_serial->begin(baud);
}

void RenardTX::startPacket(){

_ptr = (uint8_t*) malloc(_size+2);
_ptr[0] = 0x7E;
_ptr[1] = 0x80;


}

void RenardTX::setValue(uint16_t address, uint8_t value){

switch (value){
case 0x7d:
_ptr[address+2] = 0x7c;
break;
case 0x7e:
case 0x7f:
_ptr[address+2] = 0x80;
break;
default:
_ptr[address+2] = value;
break;
}
}

void RenardTX::sendPacket(){

_serial->write(_ptr, _size+2);
_serial->flush();

free(_ptr);
}
44 changes: 28 additions & 16 deletions Renard/Renard.h → Arduino-Renard.h
Expand Up @@ -22,8 +22,8 @@ GNU General Public License for more details.
*send a letter to Creative Commons, 444 Castro Street, Suite 900, Mountain View, California, 94041, USA.
******************************************************************/

#ifndef Renard_h
#define Renard_h
#ifndef Arduino-Renard_h
#define Arduino-Renard_h


#if ARDUINO > 22
Expand All @@ -41,26 +41,38 @@ GNU General Public License for more details.
#define FORWARDING 4

class Renard {
public:
public:

//function to start library
//begin(pointer to buffer, number of channels, serial port object)
void begin(uint8_t *, uint8_t, HardwareSerial *theSerial, uint32_t);
//function to start library
//begin(pointer to buffer, number of channels, serial port object)
void begin(uint8_t *, uint8_t, HardwareSerial *theSerial, uint32_t);

//function the services the serial port and parses the Renard data
//returns true if a full packet of data has come in
boolean receive();
//function the services the serial port and parses the Renard data
//returns true if a full packet of data has come in
boolean receive();

private:
HardwareSerial *_serial;
private:
HardwareSerial *_serial;

uint8_t * address; //address of buffer
uint8_t size; //size of buffer
uint8_t rx_state; //state machine mode
uint8_t rx_channel; //number of channels received
uint8_t * address; //address of buffer
uint8_t size; //size of buffer
uint8_t rx_state; //state machine mode
uint8_t rx_channel; //number of channels received

};


class RenardTX {
public:
void begin(uint16_t, HardwareSerial *theSerial, uint32_t); //declare size and serial port
void startPacket(); //allocate memory
void setValue(uint16_t, uint8_t); //write to memory, applying escapes
void sendPacket(); //Output data, clean up memory

private:
HardwareSerial *_serial;
uint16_t _size;
uint8_t * _ptr;

};

#endif
Expand Up @@ -16,7 +16,7 @@



#include <Renard.h>
#include <Arduino-Renard.h>
#include <Adafruit_NeoPixel.h>


Expand Down

0 comments on commit 1b07d1d

Please sign in to comment.