mirror of https://github.com/ArduPilot/ardupilot
193 lines
4.3 KiB
Plaintext
193 lines
4.3 KiB
Plaintext
// -*- tab-width: 4; Mode: C++; c-basic-offset: 4; indent-tabs-mode: nil -*-
|
|
|
|
#if GCS_PROTOCOL == GCS_PROTOCOL_IMU
|
|
|
|
// This is the standard GCS output file for ArduPilot
|
|
|
|
/*
|
|
Message Prefixes
|
|
!!! Position Low rate telemetry
|
|
+++ Attitude High rate telemetry
|
|
### Mode Change in control mode
|
|
%%% Waypoint Current and previous waypoints
|
|
XXX Alert Text alert - NOTE: Alert message generation is not localized to a function
|
|
PPP IMU Performance Sent every 20 seconds for performance monitoring
|
|
|
|
Message Suffix
|
|
*** All messages use this suffix
|
|
*/
|
|
|
|
/*
|
|
void acknowledge(byte id, byte check1, byte check2) {}
|
|
void send_message(byte id) {}
|
|
void send_message(byte id, long param) {}
|
|
void send_message(byte severity, const char *str) {}
|
|
*/
|
|
|
|
void acknowledge(byte id, byte check1, byte check2)
|
|
{
|
|
}
|
|
|
|
void send_message(byte id)
|
|
{
|
|
send_message(id,0l);
|
|
}
|
|
|
|
void send_message(byte id, long param)
|
|
{
|
|
switch(id) {
|
|
case MSG_ATTITUDE:
|
|
print_attitude();
|
|
break;
|
|
|
|
case MSG_LOCATION: // ** Location/GPS message
|
|
print_location();
|
|
break;
|
|
}
|
|
}
|
|
|
|
void send_message(byte severity, const char *str)
|
|
{
|
|
if(severity >= DEBUG_LEVEL){
|
|
Serial.print("MSG: ");
|
|
Serial.println(str);
|
|
}
|
|
}
|
|
|
|
void print_current_waypoints()
|
|
{
|
|
}
|
|
|
|
void print_control_mode(void)
|
|
{
|
|
}
|
|
|
|
void print_attitude(void)
|
|
{
|
|
//Serial.print("!!VER:");
|
|
//Serial.print(SOFTWARE_VER); //output the software version
|
|
//Serial.print(",");
|
|
|
|
// Analogs
|
|
Serial.print("AN0:");
|
|
Serial.print(read_adc(0)); //Reversing the sign.
|
|
Serial.print(",AN1:");
|
|
Serial.print(read_adc(1));
|
|
Serial.print(",AN2:");
|
|
Serial.print(read_adc(2));
|
|
Serial.print(",AN3:");
|
|
Serial.print(read_adc(3));
|
|
Serial.print (",AN4:");
|
|
Serial.print(read_adc(4));
|
|
Serial.print (",AN5:");
|
|
Serial.print(read_adc(5));
|
|
Serial.print (",");
|
|
|
|
// DCM
|
|
Serial.print ("EX0:");
|
|
Serial.print(convert_to_dec(DCM_Matrix[0][0]));
|
|
Serial.print (",EX1:");
|
|
Serial.print(convert_to_dec(DCM_Matrix[0][1]));
|
|
Serial.print (",EX2:");
|
|
Serial.print(convert_to_dec(DCM_Matrix[0][2]));
|
|
Serial.print (",EX3:");
|
|
Serial.print(convert_to_dec(DCM_Matrix[1][0]));
|
|
Serial.print (",EX4:");
|
|
Serial.print(convert_to_dec(DCM_Matrix[1][1]));
|
|
Serial.print (",EX5:");
|
|
Serial.print(convert_to_dec(DCM_Matrix[1][2]));
|
|
Serial.print (",EX6:");
|
|
Serial.print(convert_to_dec(DCM_Matrix[2][0]));
|
|
Serial.print (",EX7:");
|
|
Serial.print(convert_to_dec(DCM_Matrix[2][1]));
|
|
Serial.print (",EX8:");
|
|
Serial.print(convert_to_dec(DCM_Matrix[2][2]));
|
|
Serial.print (",");
|
|
|
|
// Euler
|
|
Serial.print("RLL:");
|
|
Serial.print(ToDeg(roll));
|
|
Serial.print(",PCH:");
|
|
Serial.print(ToDeg(pitch));
|
|
Serial.print(",YAW:");
|
|
Serial.print(ToDeg(yaw));
|
|
Serial.print(",IMUH:");
|
|
Serial.print(((int)imu_health>>8)&0xff);
|
|
Serial.print (",");
|
|
|
|
|
|
/*
|
|
#if USE_MAGNETOMETER == 1
|
|
Serial.print("MGX:");
|
|
Serial.print(magnetom_x);
|
|
Serial.print (",MGY:");
|
|
Serial.print(magnetom_y);
|
|
Serial.print (",MGZ:");
|
|
Serial.print(magnetom_z);
|
|
Serial.print (",MGH:");
|
|
Serial.print(MAG_Heading);
|
|
Serial.print (",");
|
|
#endif
|
|
*/
|
|
|
|
//Serial.print("Temp:");
|
|
//Serial.print(temp_unfilt/20.0); // Convert into degrees C
|
|
//alti();
|
|
//Serial.print(",Pressure: ");
|
|
//Serial.print(press);
|
|
//Serial.print(",Alt: ");
|
|
//Serial.print(pressure_altitude/1000); // Original floating point full solution in meters
|
|
//Serial.print (",");
|
|
Serial.println("***");
|
|
}
|
|
|
|
void print_location(void)
|
|
{
|
|
Serial.print("LAT:");
|
|
Serial.print(current_loc.lat);
|
|
Serial.print(",LON:");
|
|
Serial.print(current_loc.lng);
|
|
Serial.print(",ALT:");
|
|
Serial.print(current_loc.alt/100); // meters
|
|
Serial.print(",COG:");
|
|
Serial.print(g_gps->ground_course);
|
|
Serial.print(",SOG:");
|
|
Serial.print(g_gps->ground_speed);
|
|
Serial.print(",FIX:");
|
|
Serial.print((int)g_gps->fix);
|
|
Serial.print(",SAT:");
|
|
Serial.print((int)g_gps->num_sats);
|
|
Serial.print (",");
|
|
Serial.print("TOW:");
|
|
Serial.print(g_gps->time);
|
|
Serial.println("***");
|
|
}
|
|
|
|
void print_waypoints()
|
|
{
|
|
}
|
|
|
|
void print_waypoint(struct Location *cmd,byte index)
|
|
{
|
|
Serial.print("command #: ");
|
|
Serial.print(index, DEC);
|
|
Serial.print(" id: ");
|
|
Serial.print(cmd->id,DEC);
|
|
Serial.print(" p1: ");
|
|
Serial.print(cmd->p1,DEC);
|
|
Serial.print(" p2: ");
|
|
Serial.print(cmd->alt,DEC);
|
|
Serial.print(" p3: ");
|
|
Serial.print(cmd->lat,DEC);
|
|
Serial.print(" p4: ");
|
|
Serial.println(cmd->lng,DEC);
|
|
|
|
}
|
|
|
|
long convert_to_dec(float x)
|
|
{
|
|
return x*10000000;
|
|
}
|
|
|
|
#endif
|