Data Sheet
4/27/2018 OpenCR1.0
http://emanual.robotis.com/docs/en/parts/controller/opencr10/ 7/50
For example, the Mavlink_msg_read_version_decode() function parses the message data into
the data structure of the command. If the field Responsive to parsed mav_data is active, it
sends the boot loader version and revision via the ACK command.
int main(void)
{
tTime = millis();
while(1)
{
msg_process_vcp();
}
}
void msg_process_vcp(void)
{
BOOL ret;
uint8_t ch;
msg_t msg;
while(vcp_is_available())
{
ch = vcp_getch();
ret = msg_recv( 0, ch, &msg );
if( ret == TRUE )
{
switch( msg.p_msg->msgid )
{
case MAVLINK_MSG_ID_READ_VERSION:
cmd_read_version(&msg);
break;
case MAVLINK_MSG_ID_READ_BOARD_NAME:
cmd_read_board_name(&msg);
break;
... omit ...
default:
cmd_send_error(&msg, ERR_INVALID_CMD);
break;
}
}
}
}
void cmd_read_version( msg_t *p_msg )
{
err_code_t err_code = OK;
mavlink_ack_t mav_ack;
mavlink_read_version_t mav_data;
mavlink_msg_read_version_decode(p_msg->p_msg, &mav_data);
if( mav_data.resp == 1 )
{
mav_ack.msg_id = p_msg->p_msg->msgid;
mav_ack.err_code = err_code;
mav_ack.data[0] = boot_version;
mav_ack.data[1] = boot_version>>8;
mav_ack.data[2] = boot_version>>16;
mav_ack.data[3] = boot_version>>24;
OpenCR1.0
Back to Top ▲