Browse Source

now with response and remote switching

led
Michael Waiblinger 9 years ago
parent
commit
56c502a579
  1. 45
      src/CANNode.cpp

45
src/CANNode.cpp

@ -55,7 +55,8 @@ static event_t events[N_EVENTS];
#define DEBUG_WRITE(a)
#endif /* DEBUG */
int led = LED;
uint8_t led = LED;
uint8_t state;
// Metro
Metro METRO_CAN = Metro(METRO_CAN_tick);
Metro METRO_OW_read = Metro(METRO_OW_read_tick);
@ -69,8 +70,6 @@ uint8_t readout,trig_event,event_idx,tmp;
OneWire OW_1(OW_pin);
static CAN_message_t txmsg,rxmsg;
static uint8_t hex[17] = "0123456789abcdef";
@ -118,6 +117,11 @@ uint8_t read_DS2406(uint8_t* addr) {
#endif /* DEBUG */
return tmp;
}
uint8_t toggle_Pin(uint8_t pin){
digitalWrite(pin, !digitalRead(pin));
return digitalRead(pin);
}
// -------------------------------------------------------------
void setup(void)
{
@ -142,9 +146,11 @@ void setup(void)
events[0].telegram.buf[1] = 0xAD;
events[1].id =0x02;
events[1].telegram.id = 0x0204BEEF;
events[1].telegram.len = 2;
events[1].telegram.buf[0] = 0xBE;
events[1].telegram.buf[1] = 0xEF;
events[1].telegram.len = 4;
events[1].telegram.buf[0] = 0xDE;
events[1].telegram.buf[1] = 0xAD;
events[1].telegram.buf[2] = 0xBE;
events[1].telegram.buf[3] = 0xEF;
//{ 0x02040608, 2, { 0xbe, 0xef }}};
@ -241,17 +247,34 @@ void loop(void)
// if frames were received, print the count
if ( rxCount ) {
//#if DEBUG
Serial.write('=');
Serial.print(rxCount);
Serial.print(",Hello=");
// Serial.write('=');
// Serial.print(rxCount);
Serial.print("GOT=");
Serial.print(rxmsg.id,HEX);
//#endif
for (uint8_t i=0; i<rxmsg.len; i++){
Serial.print(":");
Serial.print(rxmsg.buf[i],HEX);
}
Serial.print("\n");
if (rxmsg.id ==0x0102DEAD) {
state=toggle_Pin(led);
txmsg.id=0xDEADBEEF;
txmsg.len=2;
txmsg.buf[0]=led;
txmsg.buf[1]=state;
}
//#endif
rxCount = 0;
}
txTimer = 100;//milliseconds
if (txmsg.len != 0){
Serial.print("Sending to CAN");
Serial.print("PUT=");
Serial.print(txmsg.id,HEX);
for (uint8_t i=0; i<txmsg.len; i++){
Serial.print(":");
Serial.print(txmsg.buf[i],HEX);
}
Serial.print("\n");
CANbus.write(txmsg);
txmsg.buf[0]++;
txmsg.len = 0;

Loading…
Cancel
Save