Subversion Repositories NaviCtrl

Rev

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))