Exemple #1
0
void mavlink_init(void)
{
    unsigned char i;

    /* register serial port clients */
    for (i = 0; i < MAVLINK_COMM_NUM_BUFFERS; i++) {
        memset(&mavlink_uart_clients[i], 0, sizeof(struct uart_client));
        mavlink_uart_clients[i].id = UART_CLIENT_MAVLINK;
        mavlink_uart_clients[i].ch = i;
        mavlink_uart_clients[i].init = mavlink_set_active_channels;
        mavlink_uart_clients[i].close = mavlink_unset_active_channels;
        mavlink_uart_clients[i].read = mavlink_receive;
        uart_add_client(&mavlink_uart_clients[i]);
    }
    
    /* register module parameters */
    params_add(params_mavlink);

    /* heartbeat timer */
    add_timer(TIMER_ALWAYS, 10, mav_heartbeat, NULL);

    /* parameter request handlers */
    add_mavlink_callback_sysid(MAV_SYS_ID_ANY, MAVLINK_MSG_ID_PARAM_REQUEST_LIST, mav_param_request_list, CALLBACK_PERSISTENT, NULL);
    add_mavlink_callback_sysid(MAV_SYS_ID_ANY, MAVLINK_MSG_ID_PARAM_REQUEST_READ, mav_param_request_read, CALLBACK_PERSISTENT, NULL);
    add_mavlink_callback_sysid(MAV_SYS_ID_ANY, MAVLINK_MSG_ID_PARAM_SET, mav_param_set, CALLBACK_PERSISTENT, NULL);

    //add_mavlink_callback(MAVLINK_MSG_ID_HEARTBEAT, mav_heartbeat_cbk, CALLBACK_PERSISTENT, NULL);
    //add_mavlink_callback(MAVLINK_MSG_ID_COMMAND_ACK, mav_cmd_ack, CALLBACK_PERSISTENT, NULL);
}
Exemple #2
0
inline struct mavlink_callback* add_mavlink_callback(unsigned char msgid,
            void *cbk, unsigned char ctype, void *data)
{
    return add_mavlink_callback_sysid(config.mav.uav_sysid, msgid, cbk, ctype, data);
}