예제 #1
0
void HeartbeatAgent::readBack(InReq &req)
{
    MsgHeader header = req.m_msgHeader;
    uint32_t cmd = header.cmd;

    int ret = -1;
    switch(cmd)
    {
        case MSG_MU_CS_HEARTBEAT_HANDSHAKE :
        {
            ret = do_heartbeat_handshake(MU_HEARTBEAT , req);
            if(ret < 0)
            {
                LOG_ERROR("HeartbeatAgent::do mu heartbeat handshake error !");
            }
            break ;
        }
        case MSG_SU_CS_HEARTBEAT_HANDSHAKE :
        {
            ret = do_heartbeat_handshake(SU_HEARTBEAT , req);
            if(ret < 0)
            {
                LOG_ERROR("HeartbeatAgent::do su heartbeat handshake error !");
            }
            break ;
        }
        case MSG_MU_CS_HEARTBEAT :
        {
            ret = do_heartbeat(MU_HEARTBEAT , req);
            if(ret < 0)
            {
                LOG_ERROR("HeartbeatAgent::do mu heartbeat error !");
            }
            break ;
        }
        case MSG_SU_CS_HEARTBEAT :
        {
            ret = do_heartbeat(SU_HEARTBEAT , req);
            if(ret < 0)
            {
                LOG_ERROR("HeartbeatAgent::do su heartbeat error !");
            }
            break ;
        }
        case MSG_RS_CS_HEARTBEAT :
        {
            ret = do_heartbeat(RS_HEARTBEAT , req);
            if(ret < 0)
            {
                LOG_ERROR("HeartbeatAgent::do rs heartbeat error !");
            }
            break ;
        }

        default :
            LOG_ERROR("HeartbeatAgent::Undefined cmd type : " + int_to_str(cmd));
            break ;
    }
}
예제 #2
0
void on_20ms_event()
{
    pf_on_20_ms_event();
    telemetry::filter_pos();
    do_heartbeat();
    update_leds();
}