void sim_client_session::send(uint64_t sig) { for (auto& msg : _sending_msgs) { sim_network_provider* rnet = nullptr; if (!s_switch[task_spec::get(msg->local_rpc_code)->rpc_call_channel][msg->hdr_format].get(remote_address(), rnet)) { derror("cannot find destination node %s in simulator", remote_address().to_string() ); //on_disconnected(); // disable this to avoid endless resending } else { auto server_session = rnet->get_server_session(_net.address()); if (nullptr == server_session) { rpc_session_ptr cptr = this; message_parser_ptr parser(_net.new_message_parser(msg->hdr_format)); server_session = new sim_server_session(*rnet, _net.address(), cptr, parser); rnet->on_server_session_accepted(server_session); } message_ex* recv_msg = virtual_send_message(msg); { node_scoper ns(rnet->node()); bool ret = server_session->on_recv_message(recv_msg, recv_msg->to_address == recv_msg->header->from_address ? 0 : rnet->net_delay_milliseconds() ); dassert(ret, ""); } } } on_send_completed(sig); }
int main() { init(); _delay_ms(100); debug("uart port test\r\n"); //GLCD.SetColor(0, 0); GLCD.ClearScreen(); draw_logo(); GLCD.DrawString(30, 65, "System Booting..."); /*if (!ep) { GLCD.DrawString(30, 65, "read eeprom error"); } else { char str[64]; sprintf(str, "%d bright %d ", sizeof(setting), setting.brightness); GLCD.DrawString(30, 65, str); } */ reset_2560(); //draw_image(0, 0, IMG_ //GLCD.DrawString(9, 40, "Mavlink Antenna Tracker"); //GLCD.DrawString(18, 50, "System Initiating..."); //link.send_message(DEV_READY, NULL, 0); back_light_timeout = setting.el_timeout * 50; while (1) { wdt_reset(); while (uart_available()) { uint8_t c = uart_getc(); if (link.parse_message(c, &msg)) { // got_msg = true; on_recv_message(); } wdt_reset(); } if (tick) { tick = false; //uart_putc('t'); debug("t"); link.timeout_tick(); Keyboard.Update(); uint8_t press = Keyboard.GetPressKey(); if (press) { debug("key pressed\r\n"); link.send_message(KEY_PRESS, &press, 1); if (back_light_timeout == 0) GLCD.TurnOnBackLight(); back_light_timeout = setting.el_timeout * 50; } if (setting.el_timeout > 0 && back_light_timeout > 0 && --back_light_timeout == 0) GLCD.TurnOffBackLight(); } } return 0; }