Rev 266 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 266 | Rev 381 | ||
---|---|---|---|
Line 222... | Line 222... | ||
222 | /* public void next_gps_format() |
222 | /* public void next_gps_format() |
223 | { |
223 | { |
224 | act_gps_format=(byte)((act_gps_format+1)%GPS_FORMAT_COUNT); |
224 | act_gps_format=(byte)((act_gps_format+1)%GPS_FORMAT_COUNT); |
225 | }*/ |
225 | }*/ |
226 | 226 | ||
- | 227 | ||
- | 228 | ||
227 | public String act_gps_format_str(int val) |
229 | public String gps_format_str(int val,int format) |
228 | { |
230 | { |
229 | switch(act_gps_format) |
231 | switch(format) |
230 | { |
232 | { |
231 | case GPS_FORMAT_DECIMAL: |
233 | case GPS_FORMAT_DECIMAL: |
232 | return "" + val/10000000 + "." +val%10000000 ; |
234 | return "" + val/10000000 + "." +val%10000000 ; |
233 | case GPS_FORMAT_MINSEC: |
235 | case GPS_FORMAT_MINSEC: |
234 | return "" + val/10000000 + "^" + ((val%10000000)*60)/10000000 + "'" + ((((val%10000000)*60)%10000000)*60)/10000000 + "." + ((((val%10000000)*60)%10000000)*60)%10000000; |
236 | return "" + val/10000000 + "^" + ((val%10000000)*60)/10000000 + "'" + ((((val%10000000)*60)%10000000)*60)/10000000 + "." + ((((val%10000000)*60)%10000000)*60)%10000000; |
235 | default: |
237 | default: |
236 | return "invalid format" + act_gps_format; |
238 | return "invalid format" + act_gps_format; |
237 | } |
239 | } |
238 | } |
240 | } |
- | 241 | public String act_gps_format_str(int val) |
|
- | 242 | { |
|
- | 243 | return gps_format_str(val,act_gps_format); |
|
- | 244 | ||
- | 245 | } |
|
239 | 246 | ||
240 | 247 | ||
241 | 248 | ||
242 | public String act_speed_format_str(int val) |
249 | public String act_speed_format_str(int val) |
243 | { |
250 | { |
Line 350... | Line 357... | ||
350 | 357 | ||
351 | 358 | ||
352 | 359 | ||
353 | public void set_by_mk_data(int[] in_arr,MKVersion version) |
360 | public void set_by_mk_data(int[] in_arr,MKVersion version) |
354 | { |
361 | { |
- | 362 | int off=0; |
|
- | 363 | if (version.proto_minor>0) // fixme |
|
- | 364 | off++; |
|
355 | Longitude=parse_arr_4(0,in_arr); |
365 | Longitude=parse_arr_4(off+0,in_arr); |
356 | Latitude=parse_arr_4(4,in_arr); |
366 | Latitude=parse_arr_4(off+4,in_arr); |
357 | Altitude=parse_arr_4(8,in_arr); |
367 | Altitude=parse_arr_4(off+8,in_arr); |
358 | //status=in_arr[12]; |
368 | //status=in_arr[12]; |
359 | 369 | ||
360 | TargetLongitude=parse_arr_4(13,in_arr); |
370 | TargetLongitude=parse_arr_4(off+13,in_arr); |
361 | TargetLatitude=parse_arr_4(17,in_arr); |
371 | TargetLatitude=parse_arr_4(off+17,in_arr); |
362 | TargetAltitude=parse_arr_4(21,in_arr); |
372 | TargetAltitude=parse_arr_4(off+21,in_arr); |
363 | //Targetstatus=in_arr[25]; |
373 | //Targetstatus=in_arr[25]; |
364 | 374 | ||
365 | Distance2Target=parse_arr_2(26,in_arr); |
375 | Distance2Target=parse_arr_2(off+26,in_arr); |
366 | Angle2Target=parse_arr_2(28,in_arr); |
376 | Angle2Target=parse_arr_2(off+28,in_arr); |
367 | 377 | ||
368 | HomeLongitude=parse_arr_4(30,in_arr); |
378 | HomeLongitude=parse_arr_4(off+30,in_arr); |
369 | HomeLatitude=parse_arr_4(34,in_arr); |
379 | HomeLatitude=parse_arr_4(off+34,in_arr); |
370 | HomeAltitude=parse_arr_4(38,in_arr); |
380 | HomeAltitude=parse_arr_4(off+38,in_arr); |
371 | //Targetstatus=in_arr[42]; |
381 | //Targetstatus=in_arr[42]; |
372 | 382 | ||
373 | Distance2Home=parse_arr_2(43,in_arr); |
383 | Distance2Home=parse_arr_2(off+43,in_arr); |
374 | Angle2Home=parse_arr_2(45,in_arr); |
384 | Angle2Home=parse_arr_2(off+45,in_arr); |
375 | 385 | ||
376 | WayPointIndex=(byte)in_arr[47]; |
386 | WayPointIndex=(byte)in_arr[off+47]; |
377 | WayPointNumber=(byte)in_arr[48]; |
387 | WayPointNumber=(byte)in_arr[off+48]; |
378 | 388 | ||
379 | SatsInUse=(byte)in_arr[49]; |
389 | SatsInUse=(byte)in_arr[off+49]; |
380 | 390 | ||
381 | 391 | ||
382 | Altimeter=parse_arr_2(50,in_arr); // hight according to air pressure |
392 | Altimeter=parse_arr_2(off+50,in_arr); // hight according to air pressure |
383 | Variometer=parse_arr_2(52,in_arr);; // climb(+) and sink(-) rate |
393 | Variometer=parse_arr_2(off+52,in_arr);; // climb(+) and sink(-) rate |
384 | FlyingTime=parse_arr_2(54,in_arr);; |
394 | FlyingTime=parse_arr_2(off+54,in_arr);; |
385 | 395 | ||
386 | UBatt= in_arr[56]; |
396 | UBatt= in_arr[off+56]; |
387 | 397 | ||
388 | 398 | ||
389 | GroundSpeed= parse_arr_2(57,in_arr); |
399 | GroundSpeed= parse_arr_2(off+57,in_arr); |
390 | Heading= parse_arr_2(59,in_arr); |
400 | Heading= parse_arr_2(off+59,in_arr); |
391 | CompasHeading= parse_arr_2(61,in_arr); |
401 | CompasHeading= parse_arr_2(off+61,in_arr); |
392 | 402 | ||
393 | AngleNick = in_arr[63]; |
403 | AngleNick = in_arr[off+63]; |
394 | AngleRoll = in_arr[64]; |
404 | AngleRoll = in_arr[off+64]; |
395 | SenderOkay = in_arr[65]; |
405 | SenderOkay = in_arr[off+65]; |
396 | 406 | ||
397 | MKFlags=in_arr[66]; |
407 | MKFlags=in_arr[off+66]; |
398 | NCFlags=in_arr[67]; |
408 | NCFlags=in_arr[off+67]; |
399 | 409 | ||
400 | ErrorCode=in_arr[68]; |
410 | ErrorCode=in_arr[off+68]; |
401 | 411 | ||
402 | 412 | ||
403 | } |
413 | } |
404 | 414 | ||
405 | 415 |