コード例 #1
0
ファイル: network.sim.cpp プロジェクト: lshmouse/rDSN
    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);
    }
コード例 #2
0
ファイル: main.cpp プロジェクト: cuav/MAAT
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;
}