Radio control: use the Jeti protocol to communicate between a DIY sensor and a Jeti receiver (using 9 bits one wire serial)

Dependencies:   mbed

core.h

Committer:
robertspil
Date:
2013-10-29
Revision:
0:32193823db59

File content as of revision 0:32193823db59:

#ifndef CORE_H
#define CORE_H
#include "mbed.h"
#define B_RIGHT 0xE0
#define B_LEFT   0x70
#define B_UP      0xD0
#define B_DOWN 0xB0
#define B_ERASE 0x60
int GetTicker();
class JetiC { // free-wheeling communication with the JetiBox
	/* use :
	constructor initialize a first message
	loop until isAnswer()==True
		process the answer : select() + display()
		getSensor()
		
	*/
	public:
	JetiC(); 
	bool isAnswer(); //-> true after the Get from Rx ; reset  when the call isAnswer() returned true
	int current_node;
	int buttons; //answer from the jei box buttons
	//void write_buffer();
	void display(); //format the buffer for the current node and the current sensor data
    void select( ); // process the answer to select a new current_node
	void debug_display();
	//-----various utility functions to fill the buffer-------------------------------
	void clear();
	void print(char);
	void print(long value, uint8_t len); // len = total length
	void printf(float value, uint8_t decimals, uint8_t len); // 2nd argument = number of decimals
	void print_p(const char *); //const char * const mystrings[] = {"aaa","zzzz"};
	void setPos(int);//set the position of the "cursor"
	
	private:
	
	//Timer loop;
	void printNumber( int value, uint8_t pos, uint8_t len);
	int pos;
	int mode; //0 = normal message 1=special sequence to quit the sensor going left through the expander

//this class is in the file JetiC.cpp, with the interrupt routines and their specific data
};

// common data
struct instr_data{
	JetiC*    jetiptr; //pointer to the JetiBox object..or NULL
//	Sensor* sensorptr ; // pointer to the Sensor Object
	
};
#endif