10 #pragma message ("Commanders : No I2C commander !") 14 #define I2C_BUFFERLENGTH (sizeof(unsigned long) + 1 + sizeof(int) + 5) 17 static unsigned long I2CLastEventId;
19 void OnReceiveHandler(
int inNbBytes)
23 unsigned char buf[I2C_BUFFERLENGTH];
26 while (Wire.available() && count < I2C_BUFFERLENGTH)
27 buf[count++] = Wire.read();
29 #ifdef COMMANDERS_DEBUG_MODE 30 Serial.print(F(
"I2CCommander::ReceiveHandler: chars read : "));
31 Serial.println(count, DEC);
40 unsigned long foundID = ((four << 0) & 0xFF) + ((three << 8) & 0xFFFF) + ((two << 16) & 0xFFFFFF) + ((one << 24) & 0xFFFFFFFF);
44 int foundData = buf[6];
45 foundData = foundData << 8;
52 I2CLastEventId = foundID;
57 Wire.begin(inSlaveID);
58 Wire.onReceive(OnReceiveHandler);
59 this->I2CSlaveId = inSlaveID;
67 unsigned long id = I2CLastEventId;
75 #ifdef COMMANDERS_PRINT_COMMANDERS 78 Serial.print(F(
"Commander: I2CCommander - slave ID: "));
79 Serial.println(this->I2CSlaveId);
static void SetLastEventData(int inData)
static void SetLastEventType(COMMANDERS_EVENT_TYPE inEvent)
static unsigned long RaiseEvent(unsigned long inId, COMMANDERS_EVENT_TYPE inEvent = COMMANDERS_EVENT_MOVEPOSITIONID, int inData = 0)
void begin(uint8_t inI2CSlaveID)