示例#1
0
void MAVLinkMKApp::handle_input(const mk_message_t& msg) {
	uint64_t tmp64 = message_time;
	message_time = get_time_us();
	log("MAVLinkMKApp got mk_message", static_cast<int>(msg.type), Logger::LOGLEVEL_DEBUG);

	//send heartbeat approx. after 1s
	delta_time += message_time - tmp64;
	if( delta_time > 1000000 ) {
		send_heartbeat();
		delta_time = 0;
	}

	//TODO: check coded
	//TODO: check size of msg

	switch(msg.type) {
		case MK_MSG_TYPE_DEBUGOUT:
			break;
		case MK_MSG_TYPE_EXT_CTRL: {
			mavlink_manual_control_t manual_control;
			copy(&manual_control, (mk_extern_control_t*)msg.data);
			Lock tx_mav_lock(tx_mav_mutex);
			mavlink_msg_manual_control_encode(system_id(),
				component_id,
				&tx_mav_msg,
				&manual_control);
			AppLayer<mavlink_message_t>::send(tx_mav_msg);
			break;
		}
		case MK_MSG_TYPE_COMPASS:
			break;
		case MK_MSG_TYPE_POLL_DEBUG:
			break;
		case MK_MSG_TYPE_ANGLE_OUT: {
			mavlink_debug_t debug;
			debug.ind = 0;
			mk_angles_t *mk_angles = (mk_angles_t*)msg.data;
			debug.value = ((float)mk_angles->pitch) / 10;
			Lock tx_mav_lock(tx_mav_mutex);
			mavlink_msg_debug_encode(system_id(),
				component_id,
				&tx_mav_msg,
				&debug);
			AppLayer<mavlink_message_t>::send(tx_mav_msg);
			break;
		}
		case MK_MSG_TYPE_MOTORTEST:
			break;
		case MK_MSG_TYPE_SETTING:
			break;
		default:
			break;
	}

}
示例#2
0
void GCS_Mavlink<T>::debug_parameter(float val, uint8_t id)
{
	mavlink_debug_t debug;
	debug.time_boot_ms = millis();
	debug.value = (float) val;
	debug.ind = id;
	id++;

	mavlink_message_t msg;
	mavlink_msg_debug_encode(_systemId, MAV_COMP_ID_ALL, &msg, &debug);
	uint8_t buf[MAVLINK_MAX_PACKET_LEN];
	uint16_t len = mavlink_msg_to_send_buffer(buf, &msg);
	_serial.write(buf, len);
}
示例#3
0
void GCS_Mavlink<T>::debug_parameter(const char* str)
{
	mavlink_debug_t debug;
	debug.time_boot_ms = millis();
	var_type type;
	debug.value = Mav_Param::get_value_id_by_name(debug.ind, type, str);
	_serial.print(debug.value);
	_serial.print(",");
	_serial.println(debug.ind);
	mavlink_message_t msg;
	mavlink_msg_debug_encode(_systemId, MAV_COMP_ID_ALL, &msg, &debug);
	uint8_t buf[MAVLINK_MAX_PACKET_LEN];
	uint16_t len = mavlink_msg_to_send_buffer(buf, &msg);
	_serial.write(buf, len);
}