void onTestEvent(saf_Event event) { if (event.code == EVENT_IN_DOWN && event.value ==0) { DDRB = 0xff; PORTB = PORTB | 2; } if (event.code == EVENT_IN_DOWN && event.value ==1) { DDRB = 0xff; PORTB = PORTB & ~(2); } if (event.code == EVENT_SAFTICK && event.value == 0) { boolean_++; DDRB = 0xff; if (boolean_%2) { PORTB = PORTB | 0x01; saf_eventBusSend_(EVENT_RS_SEND, 'X'); } else { PORTB = PORTB & 0xFE; saf_eventBusSend_(EVENT_RS_SEND, '-'); } } if (event.code == EVENT_RS_RECEIVE) { if (event.value == 'a') { PORTB = PORTB | 0x04; } if (event.value == 's') { PORTB = PORTB & ~(0x04); } } }
void output_onEvent(saf_Event event) { if (event.code == EVENT_OUT_DOWN) { if (event.value < _output_index){ if (getState(event.value) == 0) { setLo(event.value); } else { setHi(event.value); } } } if (event.code == EVENT_OUT_UP) { if (event.value < _output_index){ if (getState(event.value) == 0) { setHi(event.value); } else { setLo(event.value); } } } if (event.code == EVENT_OUT_BLINK) { saf_eventBusSend_(EVENT_OUT_UP, event.value); saf_startTimer(OUTPUT_BLINK_DELAY, EVENT_OUT_BLINK_END, event.value); } if (event.code == EVENT_OUT_BLINK_END) { saf_eventBusSend_(EVENT_OUT_DOWN, event.value & ~0x80); if ((event.value & 0x80) > 0) { saf_startTimer(OUTPUT_BLINK_DELAY, EVENT_OUT_BLINK2, event.value); } } if (event.code == EVENT_OUT_BLINK2) { saf_eventBusSend_(EVENT_OUT_UP, event.value & ~0x80); if ((event.value & 0x80) > 0) { saf_startTimer(OUTPUT_BLINK_DELAY, EVENT_OUT_BLINK_END, event.value & ~0x80); } else { saf_startTimer(OUTPUT_BLINK_DELAY, EVENT_OUT_BLINK_END, event.value | 0x80); } } }
void tc_apply(saf_Event event) { if (event.code == COMMAND_TEST) { //zaznaczamy ze ta odpowiedz jest na konkretne pytanie responseBuffer[event.value].operand[0] = requestBuffer[event.value].operand[0]; //logika: responseBuffer[event.value].operand[1] = 0; for (uint8_t i=1; i<requestBuffer[event.value].count; i++) { responseBuffer[event.value].operand[1] += requestBuffer[event.value].operand[i]; } responseBuffer[event.value].count = 2; saf_eventBusSend_(RESPONSE_TEST, event.value); } }