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);
		}
	}
}
Exemple #2
0
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);
		}
	}
}
Exemple #3
0
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);
	}
}