static void trigger_publish_callback() { msgpack_sbuffer *sbuf; //Get all aggregated messages as payload of a single event. sbuf = msgpack_sbuffer_new(); get_event_collection_message(sbuf); //Send the msgpack array over PUB socket if(sbuf && sbuf->size > 0) publish_message(sbuf->data, sbuf->size); // Clear the aggregated messages message_list_clear(); msgpack_sbuffer_free(sbuf); }
void Whisker_controller::run() { scan_sub.update(); update_range(scan_data, local_scan_msg.p4); update_range(scan_data, local_scan_msg.p2); update_range(scan_data, local_scan_msg.p0); update_range(scan_data, local_scan_msg.p1); update_range(scan_data, local_scan_msg.p3); // b_state = calc_b_state(); dc_state = calc_dc_state(); sensor_state = calc_sensor_state(); active_control_vec = get_base_vector(); publish_message(); }