Subversion Repositories FlightCtrl

Rev

Rev 1939 | Rev 1941 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1939 Rev 1940
Line 61... Line 61...
61
  if(MotorenEin && NC_ErrorCode)                return(VOICE_BEEP);
61
  if(MotorenEin && NC_ErrorCode)                return(VOICE_BEEP);
62
  return(0);
62
  return(0);
63
}
63
}
Line 64... Line 64...
64
 
64
 
-
 
65
//---------------------------------------------------------------
-
 
66
unsigned char NC_Fills_HoTT_Telemety()
-
 
67
{
-
 
68
 unsigned char *ptr;
-
 
69
 unsigned char max = 0,i,z;
-
 
70
 switch(FromNaviCtrl.Param.Byte[11])
-
 
71
  {
-
 
72
   case HOTT_VARIO_PACKET_ID:
-
 
73
                ptr = (unsigned char *) &VarioPacket;
-
 
74
                max = sizeof(VarioPacket);
-
 
75
                break;
-
 
76
   case HOTT_GPS_PACKET_ID:
-
 
77
                ptr = (unsigned char *) &GPSPacket;
-
 
78
                max = sizeof(GPSPacket);
-
 
79
                break;
-
 
80
   case HOTT_ELECTRIC_AIR_PACKET_ID:
-
 
81
                ptr = (unsigned char *) &ElectricAirPacket;
-
 
82
                max = sizeof(ElectricAirPacket);
-
 
83
                break;
-
 
84
  }
-
 
85
 z = FromNaviCtrl.Param.Byte[0]; // Data allocation
-
 
86
 
-
 
87
 for(i=0; i < FromNaviCtrl.Param.Byte[1]; i++)
-
 
88
  {
-
 
89
   if(z >= max) break;
-
 
90
   ptr[z] = FromNaviCtrl.Param.Byte[2+i];
-
 
91
   z++;
-
 
92
  }
-
 
93
}
-
 
94
 
-
 
95
//---------------------------------------------------------------
65
//---------------------------------------------------------------
96
 
66
unsigned char HoTT_Telemety(unsigned char packet_request)
97
unsigned char HoTT_Telemety(unsigned char packet_request)
67
{
98
{
68
 switch(packet_request)
99
 switch(packet_request)
69
 {
100
 {
70
  case HOTT_VARIO_PACKET_ID:
101
  case HOTT_VARIO_PACKET_ID:
-
 
102
                VarioPacket.Altitude = HoehenWert/100 + 500;  
-
 
103
                VarioPacket.m_sec = GPSInfo.Speed+120;
-
 
104
                GPSPacket.m_3sec = 120;
71
                VarioPacket.Altitude = HoehenWert/100 + 500;  
105
                GPSPacket.m_10sec = 120;
72
                if (VarioPacket.Altitude < VarioPacket.MinAltitude) VarioPacket.MinAltitude = VarioPacket.Altitude;
106
                if (VarioPacket.Altitude < VarioPacket.MinAltitude) VarioPacket.MinAltitude = VarioPacket.Altitude;
73
                if (VarioPacket.Altitude > VarioPacket.MaxAltitude) VarioPacket.MaxAltitude = VarioPacket.Altitude;            
107
                if (VarioPacket.Altitude > VarioPacket.MaxAltitude) VarioPacket.MaxAltitude = VarioPacket.Altitude;            
74
                VarioPacket.WarnBeep = HoTT_Waring();
108
                VarioPacket.WarnBeep = HoTT_Waring();
75
                HoTT_DataPointer = (unsigned char *) &VarioPacket;
109
                HoTT_DataPointer = (unsigned char *) &VarioPacket;
76
                return(sizeof(VarioPacket));
110
                return(sizeof(VarioPacket));
Line 77... Line 111...
77
                break;
111
                break;
78
 
112
 
79
  case HOTT_GPS_PACKET_ID:
113
  case HOTT_GPS_PACKET_ID:
80
                GPSPacket.Altitude = HoehenWert/100 + 500;  
114
                GPSPacket.Altitude = HoehenWert/100 + 500;  
81
                GPSPacket.Distance = GPSInfo.HomeDistance/10;
115
//              GPSPacket.Distance = GPSInfo.HomeDistance/10;
82
                GPSPacket.Heading = KompassValue/2;
116
//              GPSPacket.Heading = GPSInfo.HomeBearing/2;//KompassValue/2;
83
                GPSPacket.Speed = (GPSInfo.Speed * 36) / 10;
117
//              GPSPacket.Speed = (GPSInfo.Speed * 36) / 10;
84
                GPSPacket.m_sec = GPSInfo.Speed+120;
118
                GPSPacket.m_sec = GPSInfo.Speed+120;
85
                GPSPacket.m_3sec = 120;
119
                GPSPacket.m_3sec = 120;
86
                GPSPacket.m_10sec = 0;
120
                GPSPacket.m_10sec = 0;
87
                GPSPacket.WarnBeep = HoTT_Waring();
121
                GPSPacket.WarnBeep = HoTT_Waring();
88
                HoTT_DataPointer = (unsigned char *) &GPSPacket;
122
                HoTT_DataPointer = (unsigned char *) &GPSPacket;
89
                return(sizeof(GPSPacket));  
123
                return(sizeof(GPSPacket));  
90
                break;
124
                break;
91
  case HOTT_ELECTRIC_AIR_PACKET_ID:
125
  case HOTT_ELECTRIC_AIR_PACKET_ID:
-
 
126
                ElectricAirPacket.Altitude = HoehenWert/100 + 500;
-
 
127
                ElectricAirPacket.Battery1 = UBat;
-
 
128
                ElectricAirPacket.Battery2 = UBat;
-
 
129
                ElectricAirPacket.m_sec = GPSInfo.Speed+120;
-
 
130
                ElectricAirPacket.m_3sec = 120;
-
 
131
                ElectricAirPacket.InputVoltage = UBat;
92
                ElectricAirPacket.Altitude = HoehenWert/1000 + 500;  ;
132
                ElectricAirPacket.Temperature1 = Motor[0].Temperature + 20;
93
                ElectricAirPacket.Battery1 = UBat;
133
                ElectricAirPacket.Temperature2 = Motor[1].Temperature + 20;
-
 
134
                ElectricAirPacket.Capacity = Capacity.UsedCapacity/10;
94
                ElectricAirPacket.Capacity = Capacity.UsedCapacity;
135
                ElectricAirPacket.WarnBeep = HoTT_Waring();
95
                ElectricAirPacket.WarnBeep = HoTT_Waring();
136
                ElectricAirPacket.Current = Capacity.ActualCurrent;
96
                HoTT_DataPointer = (unsigned char *) &ElectricAirPacket;
137
                HoTT_DataPointer = (unsigned char *) &ElectricAirPacket;
97
                return(sizeof(ElectricAirPacket));
138
                return(sizeof(ElectricAirPacket));
98
                break;
139
                break;
Line 130... Line 171...
130
            break;
171
            break;
131
        case 2:
172
        case 2:
132
                if(FC_StatusFlags & FC_STATUS_LOWBAT)
173
                if(FC_StatusFlags & FC_STATUS_LOWBAT)
133
                         HoTT_printfxy_BLINK(0,2,"  %5i  ",Capacity.UsedCapacity)
174
                         HoTT_printfxy_BLINK(0,2,"  %5i  ",Capacity.UsedCapacity)
134
            else   HoTT_printfxy(0,2,"  %5i  ",Capacity.UsedCapacity);                     
175
            else   HoTT_printfxy(0,2,"  %5i  ",Capacity.UsedCapacity);                     
135
                        HoTT_printfxy(12,2,"I:%2i.%1iA",Capacity.ActualCurrent/10, Capacity.ActualCurrent%10);
176
                        HoTT_printfxy(12,2,"I:%2i.%1iA ",Capacity.ActualCurrent/10, Capacity.ActualCurrent%10);
136
                        break;
177
                        break;
137
        case 3:
178
        case 3:
138
                        HoTT_printfxy(9,0,"I");
179
                        HoTT_printfxy(9,0,"I");
139
                        HoTT_printfxy(9,1,"I");
180
                        HoTT_printfxy(9,1,"I");
140
                        HoTT_printfxy(9,2,"I");
181
                        HoTT_printfxy(9,2,"I");
141
                        HoTT_printfxy(0,3,"---------+-----------");
182
                        HoTT_printfxy(0,3,"---------+-----------");
142
                        HoTT_printfxy(9,4,"I");
-
 
143
                        HoTT_printfxy(9,5,"I");
-
 
144
                        HoTT_printfxy(0,6,"---------------------");
183
                        HoTT_printfxy(0,6,"---------------------");
145
                        break;
184
                        break;
146
        case 4:  
185
        case 4:  
147
                        if(NaviDataOkay)
186
                        if(NaviDataOkay)
148
                        {
187
                        {
-
 
188
                        HoTT_printfxy(9,4,"I");
149
                                HoTT_printfxy(0,4,"SAT:%2d ",GPSInfo.NumOfSats);
189
                                HoTT_printfxy(0,4,"SAT:%2d ",GPSInfo.NumOfSats);
150
                            HoTT_printfxy(10,4,"DIST:%3dm",GPSInfo.HomeDistance/10);
190
                            HoTT_printfxy(10,4,"DIST:%3dm",GPSInfo.HomeDistance/10);
151
                                switch (GPSInfo.SatFix)
191
                                switch (GPSInfo.SatFix)
152
                                {
192
                                {
153
                                        case SATFIX_3D:
193
                                        case SATFIX_3D:
Line 159... Line 199...
159
                                                break;
199
                                                break;
160
                                }      
200
                                }      
161
                        }
201
                        }
162
                        else
202
                        else
163
                        {                    //012345678901234567890
203
                        {                    //012345678901234567890
164
                                HoTT_printfxy(0,4,"No Navi ");
204
                                Hott_ClearLine(4);
165
                        }
205
                        }
166
                        break;
206
                        break;
167
        case 5:
207
        case 5:
168
                        if(NaviDataOkay)
208
                        if(NaviDataOkay)
169
                        {
209
                        {
-
 
210
                        HoTT_printfxy(9,5,"I");
170
                                HoTT_printfxy(4,5,"%2um/s",GPSInfo.Speed,GPSInfo.NumOfSats);
211
                                HoTT_printfxy(4,5,"%2um/s",GPSInfo.Speed,GPSInfo.NumOfSats);
171
                            HoTT_printfxy(12,5,"HM:%3d%c %c", GPSInfo.HomeBearing, HoTT_GRAD, NC_GPS_ModeCharacter);
212
                            HoTT_printfxy(12,5,"HM:%3d%c %c", GPSInfo.HomeBearing, HoTT_GRAD, NC_GPS_ModeCharacter);
172
            }
213
            }
173
                        else HoTT_printfxy(0,5,"        |          ");
214
                        else Hott_ClearLine(5);
174
                        break;
215
                        break;
175
        case 6:
216
        case 6:
176
/*
217
/*
177
                    if(RequiredMotors == 4) Hott_ClearLine(6);
218
                    if(RequiredMotors == 4) Hott_ClearLine(6);
178
                                else
219
                                else