McMajan Library Pack  v 2.00
Improve your Arduino !
Ss_McAir24.h
Go to the documentation of this file.
1 
2 
3 #ifndef _McAir24_H_
4 #define _McAir24_H_
5 
7 
8 #include "ss_nrf24.h"
9 #include <SPI.h>
10 
11 
12 #define McAir24_ADDR_LEN 5
13 #define McAirData24 ss_nrf24::dataRF24
14 
15 /*! The macro UseMcAirData allow you to simplify the McAir24Data setup. You have to use it after the McAir24::init (instance of ss_nrf24::init) */
16 #define UseMcAirData() ss_nrf24::dataRF24 FastData; McAir24.RefData=FastData; McAir24.setPayLoadSize(6);
17 /*! The macro GetMcAirData allow to receive data from nrf24 using McAirData protocol without knowing how the library really works */
18 #define GetMcAirData() McAir24.getData((uint8_t *)McAir24.RefData.databuffer);
19 
20 #define McAirData McAir24.RefData.IO.Data
21 #define McAirGroup McAir24.RefData.IO.Group
22 #define McAirElement McAir24.RefData.IO.Element
23 
24 #define McAirDataChar (char(McAirData.datachar[0]))
25 #define McAirDataInt (int(McAirData.dataint[0]))
26 #define McAirDataFloat (float(McAirData.datafloat))
27 #define McAirDataLong (long(McAirData.datalong))
28 
29 
30 
31 class ss_nrf24 {
32  public:
33 
34 
35  union DataMix
36  {
37  char datachar[4];
38  int dataint[2];
39  float datafloat;
40  unsigned long datalong;
41  };
42 
43  struct McMajanData
44  {
45  char Group;
46  char Element;
47  union DataMix Data;
48  };
49 
50  union dataRF24
51  {
52  char databuffer[6];
53  struct McMajanData IO;
54  };
55 
57 
58  void SendAirData(uint8_t , uint8_t , char,uint8_t del=30);
59  void SendAirData(uint8_t , uint8_t , int,uint8_t del=30);
60  void SendAirData(uint8_t , uint8_t , float,uint8_t del=30);
61  void SendAirData(uint8_t , uint8_t , unsigned long,uint8_t del=30);
62 
63  void SendData(uint8_t del=30);
64  bool GetAirData();
65  void SetGE(uint8_t,uint8_t);
66 
67 
68  bool init(uint8_t,uint8_t);
69  //void config();
70 
72 
73  void send(uint8_t *value);
74  void setRADDR(uint8_t * adr);
75  void setTADDR(uint8_t * adr);
76  void setChannel(uint8_t); // Channel 0 - 127 or 0 - 84 in the US.
77  void setPayLoadSize(uint8_t);
78  bool dataReady();
79  bool isSending();
80  bool rxFifoEmpty();
81  bool txFifoEmpty();
82  void getData(uint8_t * data);
84 
85  void transmitSync(uint8_t *dataout,uint8_t len);
86  void transferSync(uint8_t *dataout,uint8_t *datain,uint8_t len);
90  void writeRegister(uint8_t reg, uint8_t * value, uint8_t len);
91  bool powerUpRx();
92  void powerUpTx();
93  void powerDown();
94 
95  void csnHi();
96  void csnLow();
97 
98  void ceHi();
99  void ceLow();
100  uint8_t flushRx();
101  uint8_t flushTx();
102 
103  bool Set_Speed_Power(uint8_t);
107 
108  uint8_t PTX; // In sending mode.
111  //uint8_t channel;
112  uint8_t payload; // Payload width in bytes default 16 max 32.
113 
115 
116  bool isSignal(void);
117 
118 };
119 
120 extern ss_nrf24 McAir24;
121 
122 
123 
124 
125 //dataRF24 IORF24;
126 
127 
128 
129 
130 #endif /* _McAir24_H_ */
bool Set_Speed_Power(uint8_t)
Definition: Ss_McAir24.cpp:356
unsigned long datalong
Definition: Ss_McAir24.h:40
uint8_t payload
Definition: Ss_McAir24.h:112
void writeRegister(uint8_t reg, uint8_t *value, uint8_t len)
Definition: Ss_McAir24.cpp:167
uint8_t getStatus()
Definition: Ss_McAir24.cpp:245
void getData(uint8_t *data)
Definition: Ss_McAir24.cpp:140
void Print_Internal_Registers()
Definition: Ss_McAir24.cpp:506
char databuffer[6]
Definition: Ss_McAir24.h:52
bool powerUpRx()
Definition: Ss_McAir24.cpp:251
void powerUpTx()
Definition: Ss_McAir24.cpp:304
void transmitSync(uint8_t *dataout, uint8_t len)
Definition: Ss_McAir24.cpp:11
uint8_t spiCommand(uint8_t)
Definition: Ss_McAir24.cpp:268
struct McMajanData IO
Definition: Ss_McAir24.h:53
bool isSending()
Definition: Ss_McAir24.cpp:229
uint8_t flushTx()
Definition: Ss_McAir24.cpp:299
union DataMix Data
Definition: Ss_McAir24.h:47
void setChannel(uint8_t)
Definition: Ss_McAir24.cpp:64
void SendData(uint8_t del=30)
Send data using McAir protocol.
Definition: Ss_McAir24.cpp:444
uint8_t readRegister(uint8_t reg, uint8_t *value, uint8_t len)
Definition: Ss_McAir24.cpp:175
bool dataReady()
Definition: Ss_McAir24.cpp:109
char datachar[4]
Definition: Ss_McAir24.h:37
void SendAirData(uint8_t, uint8_t, char, uint8_t del=30)
Definition: Ss_McAir24.cpp:390
void csnLow()
Definition: Ss_McAir24.cpp:323
void powerDown()
Definition: Ss_McAir24.cpp:327
void setTADDR(uint8_t *adr)
Definition: Ss_McAir24.cpp:97
uint8_t csnPin
Definition: Ss_McAir24.h:110
void setRADDR(uint8_t *adr)
Definition: Ss_McAir24.cpp:87
dataRF24 RefData
Definition: Ss_McAir24.h:56
void ceLow()
Definition: Ss_McAir24.cpp:315
bool rxFifoEmpty()
Definition: Ss_McAir24.cpp:129
uint8_t spiWrite(uint8_t, uint8_t)
Definition: Ss_McAir24.cpp:285
bool isSignal(void)
Definition: Ss_McAir24.cpp:528
void SetGE(uint8_t, uint8_t)
Definition: Ss_McAir24.cpp:455
bool waitAvailableTimeout(uint16_t)
Definition: Ss_McAir24.cpp:374
uint8_t cePin
Definition: Ss_McAir24.h:109
ss_nrf24 McAir24
Definition: Ss_McAir24.cpp:3
bool init(uint8_t, uint8_t)
Definition: Ss_McAir24.cpp:24
void csnHi()
Definition: Ss_McAir24.cpp:319
bool GetAirData()
Definition: Ss_McAir24.cpp:491
void transferSync(uint8_t *dataout, uint8_t *datain, uint8_t len)
Definition: Ss_McAir24.cpp:6
#define McAirData
Definition: Ss_McAir24.h:20
bool txFifoEmpty()
uint8_t PTX
Definition: Ss_McAir24.h:108
void setPayLoadSize(uint8_t)
Definition: Ss_McAir24.cpp:75
void send(uint8_t *value)
Definition: Ss_McAir24.cpp:197
uint8_t configRegister(uint8_t reg, uint8_t value)
Definition: Ss_McAir24.cpp:158
uint8_t readRegister(uint8_t reg)
Definition: Ss_McAir24.cpp:184
void ceHi()
Definition: Ss_McAir24.cpp:311
uint8_t flushRx()
Definition: Ss_McAir24.cpp:294
uint8_t spiRead(uint8_t)
Definition: Ss_McAir24.cpp:276