Rev 738 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 738 | Rev 739 | ||
---|---|---|---|
Line 848... | Line 848... | ||
848 | else i += sprintf(&array[i],"W,"); |
848 | else i += sprintf(&array[i],"W,"); |
849 | i += sprintf(&array[i],"%d,",GPSData.SatFix); |
849 | i += sprintf(&array[i],"%d,",GPSData.SatFix); |
850 | i += sprintf(&array[i],"%d,",GPSData.NumOfSats); |
850 | i += sprintf(&array[i],"%d,",GPSData.NumOfSats); |
851 | i += sprintf(&array[i],"%d.%d,",(s16)(GPSData.Position_Accuracy/100),abs(GPSData.Position_Accuracy%100)); |
851 | i += sprintf(&array[i],"%d.%d,",(s16)(GPSData.Position_Accuracy/100),abs(GPSData.Position_Accuracy%100)); |
852 | // i += sprintf(&array[i],"%d.%d,M,",GPSData.Position.Altitude/1000,abs(GPSData.Position.Altitude%1000)/100); |
852 | // i += sprintf(&array[i],"%d.%d,M,",GPSData.Position.Altitude/1000,abs(GPSData.Position.Altitude%1000)/100); |
853 | tmp1 = NaviData.Altimeter_20cm / 2; // in dm |
853 | tmp1 = NaviData.Altimeter_5cm / 2; // in dm |
854 | i += sprintf(&array[i],"%d.%d,M,",(s16)tmp1 / 10,abs((s16)tmp1 % 10)); |
854 | i += sprintf(&array[i],"%d.%d,M,",(s16)tmp1 / 10,abs((s16)tmp1 % 10)); |
855 | i += sprintf(&array[i],",,,*"); |
855 | i += sprintf(&array[i],",,,*"); |
856 | } |
856 | } |
857 | else |
857 | else |
858 | { |
858 | { |
Line 1057... | Line 1057... | ||
1057 | case 5: |
1057 | case 5: |
1058 | // belegt 35 ASCII-Zeichen |
1058 | // belegt 35 ASCII-Zeichen |
1059 | NaviData_Flags.Index = 11; |
1059 | NaviData_Flags.Index = 11; |
1060 | NaviData_Flags.ActualLongitude = NaviData.CurrentPosition.Longitude; |
1060 | NaviData_Flags.ActualLongitude = NaviData.CurrentPosition.Longitude; |
1061 | NaviData_Flags.ActualLatitude = NaviData.CurrentPosition.Latitude; |
1061 | NaviData_Flags.ActualLatitude = NaviData.CurrentPosition.Latitude; |
1062 | NaviData_Flags.Altimeter_20cm = NaviData.Altimeter_20cm; |
1062 | NaviData_Flags.Altimeter_5cm = NaviData.Altimeter_5cm; |
1063 | NaviData_Flags.GroundSpeed = NaviData.GroundSpeed / 10; |
1063 | NaviData_Flags.GroundSpeed = NaviData.GroundSpeed / 10; |
1064 | NaviData_Flags.OSDStatusFlags = (FC.StatusFlags & OSD_FLAG_MASK1) | (FC.StatusFlags2 & OSD_FLAG_MASK2); |
1064 | NaviData_Flags.OSDStatusFlags = (FC.StatusFlags & OSD_FLAG_MASK1) | (FC.StatusFlags2 & OSD_FLAG_MASK2); |
1065 | NaviData_Flags.OSDStatusFlags2 = (FC.StatusFlags & ~OSD_FLAG_MASK1) | (FC.StatusFlags2 & ~OSD_FLAG_MASK2); |
1065 | NaviData_Flags.OSDStatusFlags2 = (FC.StatusFlags & ~OSD_FLAG_MASK1) | (FC.StatusFlags2 & ~OSD_FLAG_MASK2); |
1066 | NaviData_Flags.NCFlags = NaviData.NCFlags; |
1066 | NaviData_Flags.NCFlags = NaviData.NCFlags; |
1067 | NaviData_Flags.Errorcode = ErrorCode; |
1067 | NaviData_Flags.Errorcode = ErrorCode; |
Line 1083... | Line 1083... | ||
1083 | case 7: |
1083 | case 7: |
1084 | // belegt 43 ASCII-Zeichen |
1084 | // belegt 43 ASCII-Zeichen |
1085 | NaviData_Target.Index = 12; |
1085 | NaviData_Target.Index = 12; |
1086 | NaviData_Target.ActualLongitude = NaviData.CurrentPosition.Longitude; |
1086 | NaviData_Target.ActualLongitude = NaviData.CurrentPosition.Longitude; |
1087 | NaviData_Target.ActualLatitude = NaviData.CurrentPosition.Latitude; |
1087 | NaviData_Target.ActualLatitude = NaviData.CurrentPosition.Latitude; |
1088 | NaviData_Target.Altimeter_20cm = NaviData.Altimeter_20cm; |
1088 | NaviData_Target.Altimeter_5cm = NaviData.Altimeter_5cm; |
1089 | NaviData_Target.GroundSpeed = NaviData.GroundSpeed / 10; |
1089 | NaviData_Target.GroundSpeed = NaviData.GroundSpeed / 10; |
1090 | NaviData_Target.OSDStatusFlags = (FC.StatusFlags & OSD_FLAG_MASK1) | (FC.StatusFlags2 & OSD_FLAG_MASK2); |
1090 | NaviData_Target.OSDStatusFlags = (FC.StatusFlags & OSD_FLAG_MASK1) | (FC.StatusFlags2 & OSD_FLAG_MASK2); |
1091 | NaviData_Target.TargetLongitude = NaviData.TargetPosition.Longitude; |
1091 | NaviData_Target.TargetLongitude = NaviData.TargetPosition.Longitude; |
1092 | NaviData_Target.TargetLatitude = NaviData.TargetPosition.Latitude; |
1092 | NaviData_Target.TargetLatitude = NaviData.TargetPosition.Latitude; |
1093 | NaviData_Target.TargetAltitude = NaviData.TargetPosition.Altitude; |
1093 | NaviData_Target.TargetAltitude = NaviData.TargetPosition.Altitude; |
Line 1104... | Line 1104... | ||
1104 | case 8: |
1104 | case 8: |
1105 | // belegt 31 ASCII-Zeichen |
1105 | // belegt 31 ASCII-Zeichen |
1106 | NaviData_WP.Index = 15; |
1106 | NaviData_WP.Index = 15; |
1107 | NaviData_WP.ActualLongitude = NaviData.CurrentPosition.Longitude; |
1107 | NaviData_WP.ActualLongitude = NaviData.CurrentPosition.Longitude; |
1108 | NaviData_WP.ActualLatitude = NaviData.CurrentPosition.Latitude; |
1108 | NaviData_WP.ActualLatitude = NaviData.CurrentPosition.Latitude; |
1109 | NaviData_WP.Altimeter_20cm = NaviData.Altimeter_20cm; |
1109 | NaviData_WP.Altimeter_5cm = NaviData.Altimeter_5cm; |
1110 | NaviData_WP.GroundSpeed = NaviData.GroundSpeed / 10; |
1110 | NaviData_WP.GroundSpeed = NaviData.GroundSpeed / 10; |
1111 | NaviData_WP.OSDStatusFlags = (FC.StatusFlags & OSD_FLAG_MASK1) | (FC.StatusFlags2 & OSD_FLAG_MASK2); |
1111 | NaviData_WP.OSDStatusFlags = (FC.StatusFlags & OSD_FLAG_MASK1) | (FC.StatusFlags2 & OSD_FLAG_MASK2); |
1112 | NaviData_WP.WaypointIndex = NaviData.WaypointIndex; |
1112 | NaviData_WP.WaypointIndex = NaviData.WaypointIndex; |
1113 | NaviData_WP.WaypointNumber = NaviData.WaypointNumber; |
1113 | NaviData_WP.WaypointNumber = NaviData.WaypointNumber; |
1114 | NaviData_WP.TargetHoldTime = NaviData.TargetHoldTime; |
1114 | NaviData_WP.TargetHoldTime = NaviData.TargetHoldTime; |
Line 1125... | Line 1125... | ||
1125 | case 9: |
1125 | case 9: |
1126 | // 35 ASCII-Zeichen |
1126 | // 35 ASCII-Zeichen |
1127 | NaviData_Failsafe.Index = 17; |
1127 | NaviData_Failsafe.Index = 17; |
1128 | NaviData_Failsafe.ActualLongitude = NaviData.CurrentPosition.Longitude; |
1128 | NaviData_Failsafe.ActualLongitude = NaviData.CurrentPosition.Longitude; |
1129 | NaviData_Failsafe.ActualLatitude = NaviData.CurrentPosition.Latitude; |
1129 | NaviData_Failsafe.ActualLatitude = NaviData.CurrentPosition.Latitude; |
1130 | NaviData_Failsafe.Altimeter_20cm = NaviData.Altimeter_20cm; |
1130 | NaviData_Failsafe.Altimeter_5cm = NaviData.Altimeter_5cm; |
1131 | NaviData_Failsafe.GroundSpeed = NaviData.GroundSpeed / 10; |
1131 | NaviData_Failsafe.GroundSpeed = NaviData.GroundSpeed / 10; |
1132 | NaviData_Failsafe.OSDStatusFlags = (FC.StatusFlags & OSD_FLAG_MASK1) | (FC.StatusFlags2 & OSD_FLAG_MASK2); |
1132 | NaviData_Failsafe.OSDStatusFlags = (FC.StatusFlags & OSD_FLAG_MASK1) | (FC.StatusFlags2 & OSD_FLAG_MASK2); |
1133 | NaviData_Failsafe.Longitude = GPS_FailsafePosition.Longitude; |
1133 | NaviData_Failsafe.Longitude = GPS_FailsafePosition.Longitude; |
1134 | NaviData_Failsafe.Latitude = GPS_FailsafePosition.Latitude; |
1134 | NaviData_Failsafe.Latitude = GPS_FailsafePosition.Latitude; |
1135 | crc_fs = CRC16((unsigned char*)(&NaviData_Failsafe.Longitude), sizeof(NaviData_Pos_t) - START_PAYLOAD_DATA); // update crc for the license structure |
1135 | crc_fs = CRC16((unsigned char*)(&NaviData_Failsafe.Longitude), sizeof(NaviData_Pos_t) - START_PAYLOAD_DATA); // update crc for the license structure |
Line 1144... | Line 1144... | ||
1144 | case 10: |
1144 | case 10: |
1145 | // belegt 43 ASCII-Zeichen |
1145 | // belegt 43 ASCII-Zeichen |
1146 | NaviData_Home.Index = 13; |
1146 | NaviData_Home.Index = 13; |
1147 | NaviData_Home.ActualLongitude = NaviData.CurrentPosition.Longitude; |
1147 | NaviData_Home.ActualLongitude = NaviData.CurrentPosition.Longitude; |
1148 | NaviData_Home.ActualLatitude = NaviData.CurrentPosition.Latitude; |
1148 | NaviData_Home.ActualLatitude = NaviData.CurrentPosition.Latitude; |
1149 | NaviData_Home.Altimeter_20cm = NaviData.Altimeter_20cm; |
1149 | NaviData_Home.Altimeter_5cm = NaviData.Altimeter_5cm; |
1150 | NaviData_Home.GroundSpeed = NaviData.GroundSpeed / 10; |
1150 | NaviData_Home.GroundSpeed = NaviData.GroundSpeed / 10; |
1151 | NaviData_Home.OSDStatusFlags = (FC.StatusFlags & OSD_FLAG_MASK1) | (FC.StatusFlags2 & OSD_FLAG_MASK2); |
1151 | NaviData_Home.OSDStatusFlags = (FC.StatusFlags & OSD_FLAG_MASK1) | (FC.StatusFlags2 & OSD_FLAG_MASK2); |
1152 | NaviData_Home.HomeLongitude = NaviData.HomePosition.Longitude; |
1152 | NaviData_Home.HomeLongitude = NaviData.HomePosition.Longitude; |
1153 | NaviData_Home.HomeLatitude = NaviData.HomePosition.Latitude; |
1153 | NaviData_Home.HomeLatitude = NaviData.HomePosition.Latitude; |
1154 | NaviData_Home.HomeAltitude = NaviData.HomePosition.Altitude; |
1154 | NaviData_Home.HomeAltitude = NaviData.HomePosition.Altitude; |
Line 1164... | Line 1164... | ||
1164 | case 11: |
1164 | case 11: |
1165 | // belegt 39 ASCII-Zeichen |
1165 | // belegt 39 ASCII-Zeichen |
1166 | NaviData_Deviation.Index = 14; |
1166 | NaviData_Deviation.Index = 14; |
1167 | NaviData_Deviation.ActualLongitude = NaviData.CurrentPosition.Longitude; |
1167 | NaviData_Deviation.ActualLongitude = NaviData.CurrentPosition.Longitude; |
1168 | NaviData_Deviation.ActualLatitude = NaviData.CurrentPosition.Latitude; |
1168 | NaviData_Deviation.ActualLatitude = NaviData.CurrentPosition.Latitude; |
1169 | NaviData_Deviation.Altimeter_20cm = NaviData.Altimeter_20cm; |
1169 | NaviData_Deviation.Altimeter_5cm = NaviData.Altimeter_5cm; |
1170 | NaviData_Deviation.GroundSpeed = NaviData.GroundSpeed / 10; |
1170 | NaviData_Deviation.GroundSpeed = NaviData.GroundSpeed / 10; |
1171 | NaviData_Deviation.OSDStatusFlags = (FC.StatusFlags & OSD_FLAG_MASK1) | (FC.StatusFlags2 & OSD_FLAG_MASK2); |
1171 | NaviData_Deviation.OSDStatusFlags = (FC.StatusFlags & OSD_FLAG_MASK1) | (FC.StatusFlags2 & OSD_FLAG_MASK2); |
1172 | NaviData_Deviation.FlyingTime = NaviData.FlyingTime; |
1172 | NaviData_Deviation.FlyingTime = NaviData.FlyingTime; |
1173 | NaviData_Deviation.DistanceToHome = NaviData.HomePositionDeviation.Distance_dm; |
1173 | NaviData_Deviation.DistanceToHome = NaviData.HomePositionDeviation.Distance_dm; |
1174 | NaviData_Deviation.HeadingToHome = NaviData.HomePositionDeviation.Bearing/2; |
1174 | NaviData_Deviation.HeadingToHome = NaviData.HomePositionDeviation.Bearing/2; |
Line 1182... | Line 1182... | ||
1182 | case 12: |
1182 | case 12: |
1183 | // belegt 43 ASCII-Zeichen |
1183 | // belegt 43 ASCII-Zeichen |
1184 | NaviData_Volatile.Index = 16; |
1184 | NaviData_Volatile.Index = 16; |
1185 | NaviData_Volatile.ActualLongitude = NaviData.CurrentPosition.Longitude; |
1185 | NaviData_Volatile.ActualLongitude = NaviData.CurrentPosition.Longitude; |
1186 | NaviData_Volatile.ActualLatitude = NaviData.CurrentPosition.Latitude; |
1186 | NaviData_Volatile.ActualLatitude = NaviData.CurrentPosition.Latitude; |
1187 | NaviData_Volatile.Altimeter_20cm = NaviData.Altimeter_20cm; |
1187 | NaviData_Volatile.Altimeter_5cm = NaviData.Altimeter_5cm; |
1188 | NaviData_Volatile.GroundSpeed = NaviData.GroundSpeed / 10; |
1188 | NaviData_Volatile.GroundSpeed = NaviData.GroundSpeed / 10; |
1189 | NaviData_Volatile.OSDStatusFlags = (FC.StatusFlags & OSD_FLAG_MASK1) | (FC.StatusFlags2 & OSD_FLAG_MASK2); |
1189 | NaviData_Volatile.OSDStatusFlags = (FC.StatusFlags & OSD_FLAG_MASK1) | (FC.StatusFlags2 & OSD_FLAG_MASK2); |
1190 | NaviData_Volatile.UBat = FC.BAT_Voltage; |
1190 | NaviData_Volatile.UBat = FC.BAT_Voltage; |
1191 | NaviData_Volatile.Current = NaviData.Current; |
1191 | NaviData_Volatile.Current = NaviData.Current; |
1192 | NaviData_Volatile.UsedCapacity = NaviData.UsedCapacity; |
1192 | NaviData_Volatile.UsedCapacity = NaviData.UsedCapacity; |
Line 1200... | Line 1200... | ||
1200 | case 13: |
1200 | case 13: |
1201 | // belegt 27 ASCII-Zeichen |
1201 | // belegt 27 ASCII-Zeichen |
1202 | NaviData_Tiny.Index = 10; |
1202 | NaviData_Tiny.Index = 10; |
1203 | NaviData_Tiny.ActualLongitude = NaviData.CurrentPosition.Longitude; |
1203 | NaviData_Tiny.ActualLongitude = NaviData.CurrentPosition.Longitude; |
1204 | NaviData_Tiny.ActualLatitude = NaviData.CurrentPosition.Latitude; |
1204 | NaviData_Tiny.ActualLatitude = NaviData.CurrentPosition.Latitude; |
1205 | NaviData_Tiny.Altimeter_20cm = NaviData.Altimeter_20cm; |
1205 | NaviData_Tiny.Altimeter_5cm = NaviData.Altimeter_5cm; |
1206 | NaviData_Tiny.GroundSpeed = NaviData.GroundSpeed / 10; |
1206 | NaviData_Tiny.GroundSpeed = NaviData.GroundSpeed / 10; |
1207 | NaviData_Tiny.OSDStatusFlags = (FC.StatusFlags & OSD_FLAG_MASK1) | (FC.StatusFlags2 & OSD_FLAG_MASK2); |
1207 | NaviData_Tiny.OSDStatusFlags = (FC.StatusFlags & OSD_FLAG_MASK1) | (FC.StatusFlags2 & OSD_FLAG_MASK2); |
1208 | NaviData_Tiny.CamCtrlChar = CamCtrlCharacter; |
1208 | NaviData_Tiny.CamCtrlChar = CamCtrlCharacter; |
1209 | if((crc_Tiny != NaviData_Tiny.CamCtrlChar) || (--count_tiny == 0)) |
1209 | if((crc_Tiny != NaviData_Tiny.CamCtrlChar) || (--count_tiny == 0)) |
1210 | { |
1210 | { |
Line 1361... | Line 1361... | ||
1361 | Data3D.StickYaw = FC.StickYaw; |
1361 | Data3D.StickYaw = FC.StickYaw; |
1362 | Data3D.StickGas = FC.StickGas; |
1362 | Data3D.StickGas = FC.StickGas; |
1363 | Data3D.AngleNick = FromFlightCtrl.AngleNick; // in 0.1 deg |
1363 | Data3D.AngleNick = FromFlightCtrl.AngleNick; // in 0.1 deg |
1364 | Data3D.AngleRoll = FromFlightCtrl.AngleRoll; // in 0.1 deg |
1364 | Data3D.AngleRoll = FromFlightCtrl.AngleRoll; // in 0.1 deg |
1365 | Data3D.Heading = FromFlightCtrl.GyroHeading; // in 0.1 deg |
1365 | Data3D.Heading = FromFlightCtrl.GyroHeading; // in 0.1 deg |
1366 | Data3D.Altimeter = FC.Altimeter; // in 5cm -> 20 = 1m |
1366 | Data3D.Altimeter_5cm = FC.Altimeter_5cm; // in 5cm -> 20 = 1m |
1367 | MKProtocol_CreateSerialFrame(&UART1_tx_buffer, 'C', NC_ADDRESS, 1,(u8 *)&Data3D, sizeof(Data3D)); |
1367 | MKProtocol_CreateSerialFrame(&UART1_tx_buffer, 'C', NC_ADDRESS, 1,(u8 *)&Data3D, sizeof(Data3D)); |
1368 | UART1_Data3D_Timer = SetDelay(UART1_Data3D_Interval); |
1368 | UART1_Data3D_Timer = SetDelay(UART1_Data3D_Interval); |
1369 | UART1_Request_Data3D = FALSE; |
1369 | UART1_Request_Data3D = FALSE; |
1370 | } |
1370 | } |
1371 | else if((((UART1_MotorData_Interval > 0) && CheckDelay(UART1_MotorData_Timer) ) || UART1_Request_MotorData) && (UART1_tx_buffer.Locked == FALSE)) |
1371 | else if((((UART1_MotorData_Interval > 0) && CheckDelay(UART1_MotorData_Timer) ) || UART1_Request_MotorData) && (UART1_tx_buffer.Locked == FALSE)) |