int accel_start_ind_handler(ke_msg_id_t const msgid, struct accel_start_ind const *param, ke_task_id_t const dest_id, ke_task_id_t const src_id) { // Start the accelerometer with the correct parameters //vm acc_start((uint16_t*)¶m->accel_en[0], param->range); if(update_conn_params) update_conn_params = 2; // Start the accelerometer timer ke_timer_set(APP_ACCEL_TIMER, dest_id, 5); return (KE_MSG_CONSUMED); }
int test_ws_server() { con_table = idtable_create(1024); assert(con_table); r = reactor_create(); assert(r); acc_t* acc = acc_create(r); assert(acc); acc_set_read_func(acc, _accept_read, NULL); struct sockaddr_in addr; int res = sock_addr_aton(WS_IP, WS_PORT, &addr); assert(res == 0); res = acc_start(acc, (struct sockaddr*)&addr); assert(res == 0); while (1) { res = reactor_dispatch(r, 1); if(res < 0) return -1; if(res == 0) usleep(100); } acc_stop(acc); acc_release(acc); for (int i = 0; i < 1024; i++) { WSCtx* ctx = idtable_get(con_table, i); if (ctx) { wsconn_release(ctx->con); FREE(ctx); } } idtable_release(con_table); reactor_release(r); return 0; }