Exemplo n.º 1
0
void button_released(uint8_t button){
    PRINTF("Released %d\n", button);
    
    pressed_vector&=~(1<<button);
   
    broadcast_value(HEXAPUSH_PRESS_EID);
}
Exemplo n.º 2
0
PROCESS_THREAD(ir_receiver_process, ev, data) {

    PROCESS_BEGIN();

    while(1) {
        PROCESS_WAIT_EVENT();

        if(ev == PROCESS_EVENT_POLL) {
            if(ir_repeat) {
                PRINTF("Got repeat signal \n");
                ir_repeat = 0;
            } else {
                if(*(int32_t*)ir_prev_data != *(int32_t*)ir_last_data || timer_expired(&ir_rep_timer) || to_be_repeated()) {
                    memcpy(ir_prev_data, ir_last_data, 4);
                    timer_restart(&ir_rep_timer);
                    PRINTF("Got new command %d,%d,%d,%d!\n", ir_last_data[0],ir_last_data[1],ir_last_data[2],ir_last_data[3]);
                    broadcast_value(30);
                } else {
                    timer_restart(&ir_rep_timer);
                }
            }
        }
    }

    PROCESS_END();
}
Exemplo n.º 3
0
void button_pressed(uint8_t button) {
    PRINTF("Pressed %d\n", button);
    
    pressed_vector|=(1<<button);

    broadcast_value(HEXAPUSH_PRESS_EID);
}
Exemplo n.º 4
0
void button_clicked(uint8_t button) {

    PRINTF("Clicked %d\n", button);
   
    clicked_vector|=(1<<button);
    broadcast_value(HEXAPUSH_CLICK_EID);
    clicked_vector&=~(1<<button);
}
Exemplo n.º 5
0
void global_presence_detected(void) {
#if PRESENCE_DETECTOR_SERVER
    if(global_presence != PRESENCE) {
        global_presence = PRESENCE;
        broadcast_value(EP_PRESENCE_DETECTOR);
    }
    ctimer_restart(&pd_timeout);
#endif
}
Exemplo n.º 6
0
void raw_presence_detected(void) {
#if PRESENCE_DETECTOR_CLIENT
    uint8_t tmp = global_presence;
    presence = PRESENCE_DETECTOR_CLIENT_GROUP;
    global_presence = presence;
    broadcast_value(EP_PRESENCE_DETECTOR);
    global_presence = tmp;
    if(PRESENCE_DETECTOR_CLIENT_KEEP_ALIVE != 0) {
        ctimer_restart(&pd_keep_alive);
    }
#endif
}
Exemplo n.º 7
0
/*---------------------------------------------------------------------------*/
void broadcast_to_self(struct hxb_value* val, uint32_t eid)
{
#if STATE_MACHINE_ENABLE
  struct hxb_envelope envelope = {
		.src_port = 0,
		.eid = eid,
		.value = *val
 	};
	uip_ip6addr(&envelope.src_ip, 0, 0, 0, 0, 0, 0, 0, 1);
	syslog(LOG_DEBUG, "Sending EID %ld to own state machine.", eid);
	sm_handle_input(&envelope);
#endif
}

static void broadcast_value_ptr(void* data)
{
	broadcast_value(*(uint32_t*) data);
}
Exemplo n.º 8
0
void no_global_presence(void) {
#if PRESENCE_DETECTOR_SERVER
    global_presence = NO_PRESENCE;
    broadcast_value(EP_PRESENCE_DETECTOR);
#endif
}