This commit is contained in:
Dooho Yi 2022-07-14 21:08:46 +09:00
parent 068322a17e
commit 67a6e3983a
5 changed files with 535 additions and 434 deletions

1
iamyou-en.mmp Normal file

File diff suppressed because one or more lines are too long

1
iamyou-kr.mmp Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

View file

@ -1,12 +1,9 @@
#N canvas 1 91 1246 672 10;
#N canvas 662 91 411 672 10;
#X obj 14 14 receive fromSystem;
#X obj 14 60 route /location /compass;
#X obj 14 37 list trim;
#X obj 14 113 unpack f f f f f f f f f;
#X obj 63 192 pack f f f f, f 19;
#X obj 593 352 geocoord_dist;
#X obj 683 352 geocoord_bearing;
#X obj 593 292 pack f f f f;
#X obj 84 83 s \$0-compass;
#X obj 83 225 s latlon;
#X obj 28 492 wav2~;
@ -15,6 +12,397 @@
#X msg 310 582 \; pd dsp 1;
#X obj 41 362 loadbang;
#X obj 163 385 r \$0-dist;
#X obj 45 258 print locations:;
#N canvas 1 91 604 394 notes 0;
#X text 18 15 when location data is enabled \, it is sent via a message
"/location" with 9 numbers. Location coordinate data in iOS is a 64-bit
floating point number (double);
#X text 18 65 PureData is only 32-bit float \, so sending that number
into a patch loses resolution. However \, a tweaky workaround (via
64-bit math in the iOS layer) is provided by the last 4 numbers in
the message.;
#X text 18 125 arg #1: latitude coordinate (as 32-bit float);
#X text 18 145 arg #2: longitude coordinate (as 32-bit float);
#X text 18 165 arg #3: altitude (meters);
#X text 18 185 arg #4: horizontal accuracy (meters radius);
#X text 18 205 arg #5: vertical (altitude) accuracy (meters radius)
;
#X text 18 235 arg #6: latitude "rough";
#X text 18 275 arg #8: latitude "fine";
#X text 18 255 arg #7: longitude "rough";
#X text 18 295 arg #9: longitude "fine";
#X text 208 235 latitude/longitude "rough" = 64-bit value multiplied
by 1000 and truncated to an integer before being sent into Pd;
#X text 208 285 latitude/longitude "fine" = 64-bit value modded by
0.001 \, multiplied by 1e+06 \, and truncated to an integer \, before
being sent into Pd So the "rough" contains the significant digits up
to the thousandths place \, and the "fine" contains the next three
significant digits. An original coordinate value of 123.457 would be
turned into rough=123456 fine=789.;
#X restore 223 113 pd notes;
#X text 202 188 arg #6: latitude "rough";
#X text 202 228 arg #8: latitude "fine";
#X text 202 208 arg #7: longitude "rough";
#X text 202 248 arg #9: longitude "fine";
#X text 170 113 <======;
#N canvas 295 91 1064 672 gui 0;
#X obj 16 196 send toGUI;
#X obj 526 72 list trim;
#X obj 526 49 receive fromGUI;
#X msg 526 118 list /enableLocation \$1;
#X obj 526 141 send toSystem;
#X obj 356 49 loadbang;
#X obj 356 95 send toGUI;
#N canvas 590 91 614 581 draw_arrow 0;
#X obj 89 257 rot2d;
#X msg 89 149 0.5 0.6;
#X obj 70 327 list store;
#X msg 106 172 0.4 0.7;
#X msg 140 218 0.6 0.7;
#X obj 89 280 list prepend append;
#X obj 89 303 list trim;
#X obj 70 103 t b b b;
#X obj 89 126 t b b b b;
#X obj 70 81 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#X obj 70 19 inlet;
#X obj 70 42 t b a;
#X obj 209 219 t a;
#X obj 242 199 t a;
#X msg 123 195 0.5 0;
#X obj 70 350 list prepend /lcd.Pointer paintpoly;
#X obj 70 373 t b a b;
#X msg 70 419 list /lcd.Pointer paintoval 0.45 0.45 0.55 0.55 1 1 1
1;
#X obj 89 442 send toGUI;
#X msg 244 311 list /lcd.Pointer paintoval 0 0 1 1 0.6 1 0.6 1;
#X msg 244 288 list /lcd.Pointer paintoval 0 0 1 1 0 0.8 0.6 1;
#X msg 109 396 list /lcd.Pointer paintoval 0 0 1 1 0.6 1 0.6 1;
#X connect 0 0 5 0;
#X connect 1 0 0 0;
#X connect 2 0 15 0;
#X connect 3 0 0 0;
#X connect 4 0 0 0;
#X connect 5 0 6 0;
#X connect 6 0 2 0;
#X connect 7 0 2 0;
#X connect 7 1 8 0;
#X connect 7 2 12 0;
#X connect 8 0 1 0;
#X connect 8 1 3 0;
#X connect 8 2 14 0;
#X connect 8 3 4 0;
#X connect 9 0 7 0;
#X connect 10 0 11 0;
#X connect 11 0 9 0;
#X connect 11 1 13 0;
#X connect 12 0 2 1;
#X connect 13 0 0 2;
#X connect 14 0 0 0;
#X connect 15 0 16 0;
#X connect 16 0 17 0;
#X connect 16 1 18 0;
#X connect 16 2 21 0;
#X connect 17 0 18 0;
#X connect 21 0 18 0;
#X restore 406 597 pd draw_arrow;
#X floatatom 406 403 5 0 0 1 angle_(deg) - -;
#X obj 795 474 send toGUI;
#X floatatom 406 335 5 0 0 1 angle_(deg) - -;
#X obj 406 380 +;
#X obj 406 357 * -1;
#X obj 406 312 r \$0-compass;
#X obj 586 417 r \$0-brng;
#X obj 795 428 r \$0-dist;
#X obj 154 372 loadbang;
#X obj 154 395 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#N canvas 592 91 458 517 draw_arrow 0;
#X obj 89 257 rot2d;
#X msg 89 149 0.5 0.6;
#X obj 70 327 list store;
#X msg 106 172 0.4 0.7;
#X msg 140 218 0.6 0.7;
#X obj 89 280 list prepend append;
#X obj 89 303 list trim;
#X obj 70 103 t b b b;
#X obj 89 126 t b b b b;
#X obj 70 81 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#X obj 70 19 inlet;
#X obj 70 42 t b a;
#X obj 209 219 t a;
#X obj 242 199 t a;
#X obj 87 465 send toGUI;
#X obj 70 350 list prepend /lcd.Compass paintpoly;
#X msg 70 442 list /lcd.Compass paintoval 0.45 0.45 0.55 0.55 1 1 1
1;
#X obj 70 373 t b a b b;
#X msg 123 195 0.5 0.1;
#X msg 104 418 list /lcd.Compass frameoval 0.1 0.1 0.9 0.9 0 1 1 1
;
#X msg 121 395 list /lcd.Compass paintoval 0 0 1 1 1 1 0 1;
#X connect 0 0 5 0;
#X connect 1 0 0 0;
#X connect 2 0 15 0;
#X connect 3 0 0 0;
#X connect 4 0 0 0;
#X connect 5 0 6 0;
#X connect 6 0 2 0;
#X connect 7 0 2 0;
#X connect 7 1 8 0;
#X connect 7 2 12 0;
#X connect 8 0 1 0;
#X connect 8 1 3 0;
#X connect 8 2 18 0;
#X connect 8 3 4 0;
#X connect 9 0 7 0;
#X connect 10 0 11 0;
#X connect 11 0 9 0;
#X connect 11 1 13 0;
#X connect 12 0 2 1;
#X connect 13 0 0 2;
#X connect 15 0 17 0;
#X connect 16 0 14 0;
#X connect 17 0 16 0;
#X connect 17 1 14 0;
#X connect 17 3 20 0;
#X connect 18 0 0 0;
#X connect 19 0 14 0;
#X connect 20 0 14 0;
#X restore 16 425 pd draw_arrow;
#X floatatom 16 335 5 0 0 1 angle_(deg) - -;
#X obj 16 312 r \$0-compass;
#X text 11 16 disp. lat/long in text;
#X text 354 18 toggle gps reception + automatically enable at start-up
;
#X obj 16 46 r latlon;
#X floatatom 16 403 5 0 0 1 angle_(deg) - -;
#X obj 16 357 * -1;
#X obj 16 380 + 360;
#X text 792 393 disp. distance (km) in text;
#X obj 850 281 s toGUI;
#X obj 807 284 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X obj 757 238 f;
#X obj 807 238 + 1;
#X obj 807 261 % 2;
#X obj 757 134 t a b;
#X msg 784 202 0;
#X obj 757 202 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 850 200 del 1000;
#X msg 850 223 0;
#X obj 757 62 r latlon;
#X obj 757 85 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#X text 756 24 location info arrival indicator;
#X obj 757 163 scan 400;
#X msg 757 111 10;
#X obj 526 95 route /tgl.Location.En;
#X msg 356 72 list /tgl.Location.En 1;
#X msg 850 252 list /tgl.Location.Act set \$1;
#X msg 16 98 list /disp.Loc.Current.Lat.Coarse \$1;
#X msg 43 121 list /disp.Loc.Current.Lon.Coarse \$1;
#X msg 70 144 list /disp.Loc.Current.Lat.Fine \$1;
#X msg 97 167 list /disp.Loc.Current.Lon.Fine \$1;
#X obj 16 69 unpack f f f f;
#X obj 795 451 list prepend /disp.Distance;
#X text 14 281 draw north pointing compass;
#X obj 304 367 loadbang;
#X obj 304 390 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X text 404 282 draw dest. pointing arrow = bearing arrow;
#X obj 586 332 expr fmod(($f1+360) \, 360);
#X obj 586 355 expr fmod(($f1+180) \, 360)-180;
#X obj 586 378 s \$0-brng-error;
#N canvas 1 91 465 242 tester 0;
#X obj 17 67 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1
;
#X obj 17 87 metro 100;
#X obj 87 110 vline~;
#X obj 87 133 snapshot~;
#X floatatom 87 156 5 0 0 0 - - -;
#X msg 87 74 0 0 \, 50 2000 \, 0 2000 2000 \, 360 0 4000 \, 310 2000
4000 \, 360 2000 6000;
#X obj 87 19 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1
;
#X obj 87 45 metro 8000;
#X obj 87 178 outlet;
#X connect 0 0 1 0;
#X connect 1 0 3 0;
#X connect 2 0 3 0;
#X connect 3 0 4 0;
#X connect 4 0 8 0;
#X connect 5 0 2 0;
#X connect 6 0 7 0;
#X connect 6 0 0 0;
#X connect 7 0 5 0;
#X restore 331 312 pd tester;
#X obj 489 487 tgl 15 0 empty \$0-veryclose r:0-veryclose 17 7 0 10
-262144 -1 -1 0 1;
#N canvas 719 91 614 663 draw_veryclose 0;
#X obj 89 257 rot2d;
#X msg 89 149 0.5 0.6;
#X obj 70 327 list store;
#X msg 106 172 0.4 0.7;
#X msg 140 218 0.6 0.7;
#X obj 89 280 list prepend append;
#X obj 89 303 list trim;
#X obj 70 103 t b b b;
#X obj 89 126 t b b b b;
#X obj 70 81 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#X obj 70 19 inlet;
#X obj 70 42 t b a;
#X obj 209 219 t a;
#X obj 242 199 t a;
#X obj 70 350 list prepend /lcd.Pointer paintpoly;
#X obj 161 577 send toGUI;
#X msg 123 195 0.5 0.3;
#X msg 113 465 list /lcd.Pointer frameoval 0.12 0.12 0.88 0.88 1 1
0 0.7;
#X msg 142 419 list /lcd.Pointer frameoval 0 0 1 1 1 1 0 1;
#X obj 70 373 t b a b b b b b;
#X msg 70 511 list /lcd.Pointer paintoval 0.45 0.45 0.55 0.55 0 1 0
1;
#X msg 99 488 list /lcd.Pointer frameoval 0.25 0.25 0.75 0.75 1 1 0
0.5;
#X msg 128 442 list /lcd.Pointer frameoval 0.05 0.05 0.95 0.95 1 1
0 0.9;
#X msg 222 325 list /lcd.Pointer paintoval 0 0 1 1 1 0.4 0.6 1;
#X msg 157 396 list /lcd.Pointer paintoval 0 0 1 1 0 0.4 0.4 1;
#X connect 0 0 5 0;
#X connect 1 0 0 0;
#X connect 2 0 14 0;
#X connect 3 0 0 0;
#X connect 4 0 0 0;
#X connect 5 0 6 0;
#X connect 6 0 2 0;
#X connect 7 0 2 0;
#X connect 7 1 8 0;
#X connect 7 2 12 0;
#X connect 8 0 1 0;
#X connect 8 1 3 0;
#X connect 8 2 16 0;
#X connect 8 3 4 0;
#X connect 9 0 7 0;
#X connect 10 0 11 0;
#X connect 11 0 9 0;
#X connect 11 1 13 0;
#X connect 12 0 2 1;
#X connect 13 0 0 2;
#X connect 14 0 19 0;
#X connect 16 0 0 0;
#X connect 17 0 15 0;
#X connect 18 0 15 0;
#X connect 19 0 20 0;
#X connect 19 1 15 0;
#X connect 19 2 21 0;
#X connect 19 3 17 0;
#X connect 19 5 18 0;
#X connect 19 6 24 0;
#X connect 20 0 15 0;
#X connect 21 0 15 0;
#X connect 24 0 15 0;
#X restore 491 597 pd draw_veryclose;
#X obj 491 574 spigot;
#X obj 445 531 == 0;
#X obj 406 574 spigot;
#X obj 445 508 f;
#X obj 406 485 t a a b;
#X obj 524 534 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X obj 445 554 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1
1;
#X obj 489 440 loadbang;
#X msg 489 463 0;
#X connect 1 0 43 0;
#X connect 2 0 1 0;
#X connect 3 0 4 0;
#X connect 5 0 44 0;
#X connect 8 0 56 0;
#X connect 8 0 66 0;
#X connect 10 0 12 0;
#X connect 11 0 8 0;
#X connect 12 0 11 0;
#X connect 13 0 10 0;
#X connect 14 0 11 1;
#X connect 15 0 51 0;
#X connect 16 0 17 0;
#X connect 17 0 19 0;
#X connect 19 0 25 0;
#X connect 20 0 19 0;
#X connect 23 0 50 0;
#X connect 24 0 18 0;
#X connect 25 0 26 0;
#X connect 26 0 24 0;
#X connect 29 0 45 0;
#X connect 30 0 31 0;
#X connect 31 0 32 0;
#X connect 32 0 30 1;
#X connect 32 0 29 0;
#X connect 33 0 41 0;
#X connect 33 1 34 0;
#X connect 34 0 30 1;
#X connect 35 0 30 0;
#X connect 36 0 37 0;
#X connect 37 0 45 0;
#X connect 38 0 39 0;
#X connect 39 0 42 0;
#X connect 41 0 35 0;
#X connect 41 1 36 0;
#X connect 42 0 33 0;
#X connect 43 0 3 0;
#X connect 44 0 6 0;
#X connect 45 0 28 0;
#X connect 46 0 0 0;
#X connect 47 0 0 0;
#X connect 48 0 0 0;
#X connect 49 0 0 0;
#X connect 50 0 46 0;
#X connect 50 1 47 0;
#X connect 50 2 48 0;
#X connect 50 3 49 0;
#X connect 51 0 9 0;
#X connect 53 0 54 0;
#X connect 54 0 8 0;
#X connect 56 0 57 0;
#X connect 57 0 58 0;
#X connect 59 0 8 0;
#X connect 60 0 65 1;
#X connect 62 0 61 0;
#X connect 63 0 68 0;
#X connect 64 0 7 0;
#X connect 65 0 67 0;
#X connect 65 0 63 0;
#X connect 66 0 64 0;
#X connect 66 1 62 0;
#X connect 66 2 65 0;
#X connect 67 0 62 1;
#X connect 68 0 64 1;
#X connect 69 0 70 0;
#X connect 70 0 65 1;
#X restore 247 35 pd gui guts;
#X obj 63 142 / 1000;
#X obj 100 165 / 1000;
#X obj 163 408 map 0.005 0.05 1 0.1;
#X obj 28 626 dac~;
#X floatatom 218 525 5 0 0 1 - - -;
#X floatatom 163 431 5 0 0 1 vol - -;
#X obj 163 492 line~;
#X msg 163 469 \$1 20;
#X obj 41 385 t b b;
#X obj 310 559 loadbang;
#X obj 28 515 expr~ $v1 * pow($v2 \, 4);
#X obj 218 502 r \$0-brng-error;
#X obj 218 571 line~;
#X msg 218 547 \$1 100;
#X obj 28 588 eqpan2~ 30;
#N canvas 1 91 818 604 location 0;
#X obj 183 351 geocoord_dist;
#X obj 273 351 geocoord_bearing;
#X obj 183 291 pack f f f f;
#N canvas 1 91 594 663 get_point 0;
#X obj 267 17 r fromGUI;
#X obj 267 86 sel 1;
@ -78,442 +466,154 @@
#X connect 26 0 24 0;
#X connect 26 1 18 1;
#X connect 26 1 16 0;
#X restore 904 20 pd get_point;
#X obj 593 43 unpack f f f f;
#X obj 593 20 r latlon;
#X obj 831 352 geocoord_dist;
#X obj 921 352 geocoord_bearing;
#X obj 831 315 t a a;
#X obj 831 292 pack f f f f;
#X obj 593 112 pack f f f f;
#X obj 593 89 f;
#X obj 593 66 t b a;
#X obj 823 135 unpack f f f f;
#X obj 593 135 unpack f f f f;
#X obj 850 184 expr copysign($f1 \, $f2)/1e+06;
#X obj 823 207 expr copysign($f1 \, $f2)/1e+06;
#X obj 620 184 expr copysign($f1 \, $f2)/1e+06;
#X obj 593 207 expr copysign($f1 \, $f2)/1e+06;
#X text 984 274 coarse;
#X text 717 281 fine;
#X obj 593 375 v distF\$0;
#X obj 683 375 v brngF\$0;
#X obj 921 375 v brngC\$0;
#X obj 831 375 v distC\$0;
#X obj 593 315 t b a a;
#X obj 465 373 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 646 429 v x\$0;
#X obj 646 449 v y\$0;
#X obj 591 569 s \$0-dist;
#X obj 676 569 s \$0-brng;
#X obj 45 258 print locations:;
#N canvas 1 91 604 394 notes 0;
#X text 18 15 when location data is enabled \, it is sent via a message
"/location" with 9 numbers. Location coordinate data in iOS is a 64-bit
floating point number (double);
#X text 18 65 PureData is only 32-bit float \, so sending that number
into a patch loses resolution. However \, a tweaky workaround (via
64-bit math in the iOS layer) is provided by the last 4 numbers in
the message.;
#X text 18 125 arg #1: latitude coordinate (as 32-bit float);
#X text 18 145 arg #2: longitude coordinate (as 32-bit float);
#X text 18 165 arg #3: altitude (meters);
#X text 18 185 arg #4: horizontal accuracy (meters radius);
#X text 18 205 arg #5: vertical (altitude) accuracy (meters radius)
;
#X text 18 235 arg #6: latitude "rough";
#X text 18 275 arg #8: latitude "fine";
#X text 18 255 arg #7: longitude "rough";
#X text 18 295 arg #9: longitude "fine";
#X text 208 235 latitude/longitude "rough" = 64-bit value multiplied
by 1000 and truncated to an integer before being sent into Pd;
#X text 208 285 latitude/longitude "fine" = 64-bit value modded by
0.001 \, multiplied by 1e+06 \, and truncated to an integer \, before
being sent into Pd So the "rough" contains the significant digits up
to the thousandths place \, and the "fine" contains the next three
significant digits. An original coordinate value of 123.457 would be
turned into rough=123456 fine=789.;
#X restore 223 113 pd notes;
#X text 202 188 arg #6: latitude "rough";
#X text 202 228 arg #8: latitude "fine";
#X text 202 208 arg #7: longitude "rough";
#X text 202 248 arg #9: longitude "fine";
#X text 170 113 <======;
#N canvas 184 91 1064 607 gui 1;
#X obj 16 196 send toGUI;
#X obj 526 72 list trim;
#X obj 526 49 receive fromGUI;
#X msg 526 118 list /enableLocation \$1;
#X obj 526 141 send toSystem;
#X obj 356 49 loadbang;
#X obj 356 95 send toGUI;
#X obj 425 554 send toGUI;
#N canvas 1 91 504 397 draw_arrow 0;
#X obj 89 257 rot2d;
#X msg 89 149 0.5 0.6;
#X obj 70 327 list store;
#X msg 106 172 0.4 0.7;
#X msg 123 195 0.5 0;
#X msg 140 218 0.6 0.7;
#X obj 89 280 list prepend append;
#X obj 89 303 list trim;
#X obj 70 103 t b b b;
#X obj 89 126 t b b b b;
#X obj 70 81 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
#X restore 494 19 pd get_point;
#X obj 183 42 unpack f f f f;
#X obj 183 19 r latlon;
#X obj 421 351 geocoord_dist;
#X obj 511 351 geocoord_bearing;
#X obj 421 314 t a a;
#X obj 421 291 pack f f f f;
#X obj 183 111 pack f f f f;
#X obj 183 88 f;
#X obj 183 65 t b a;
#X obj 413 134 unpack f f f f;
#X obj 183 134 unpack f f f f;
#X obj 440 183 expr copysign($f1 \, $f2)/1e+06;
#X obj 413 206 expr copysign($f1 \, $f2)/1e+06;
#X obj 210 183 expr copysign($f1 \, $f2)/1e+06;
#X obj 183 206 expr copysign($f1 \, $f2)/1e+06;
#X text 574 273 coarse;
#X text 307 280 fine;
#X obj 183 374 v distF\$0;
#X obj 273 374 v brngF\$0;
#X obj 511 374 v brngC\$0;
#X obj 421 374 v distC\$0;
#X obj 183 314 t b a a;
#X obj 55 372 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#X obj 70 19 inlet;
#X obj 70 42 t b a;
#X obj 209 219 t a;
#X obj 242 199 t a;
#X obj 70 350 outlet;
#X connect 0 0 6 0;
#X connect 1 0 0 0;
#X connect 2 0 15 0;
#X connect 3 0 0 0;
#X connect 4 0 0 0;
#X connect 5 0 0 0;
#X connect 6 0 7 0;
#X connect 7 0 2 0;
#X connect 8 0 2 0;
#X connect 8 1 9 0;
#X connect 8 2 13 0;
#X connect 9 0 1 0;
#X connect 9 1 3 0;
#X connect 9 2 4 0;
#X connect 9 3 5 0;
#X connect 10 0 8 0;
#X connect 11 0 12 0;
#X connect 12 0 10 0;
#X connect 12 1 14 0;
#X connect 13 0 2 1;
#X connect 14 0 0 2;
#X restore 406 425 pd draw_arrow;
#X floatatom 406 403 5 0 0 1 angle_(deg) - -;
#X obj 406 485 t b a b;
#X obj 795 474 send toGUI;
#X floatatom 406 335 5 0 0 1 angle_(deg) - -;
#X obj 406 380 +;
#X obj 406 357 * -1;
#X obj 406 312 r \$0-compass;
#X obj 485 364 r \$0-brng;
#X obj 795 428 r \$0-dist;
#X obj 35 554 send toGUI;
#X obj 154 372 loadbang;
#X obj 154 395 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
#X obj 236 428 v x\$0;
#X obj 236 448 v y\$0;
#X obj 181 568 s \$0-dist;
#X obj 266 568 s \$0-brng;
#X text 325 72 (Lat.fine \, Lon.fine \, Lat.rough \, Lon.rough);
#X msg 18 64 36.123 127.789 456 12;
#X msg 18 113 456 12 36.123 127.789;
#X text 43 89 re-order to be;
#X obj 55 415 sel 1;
#X obj 55 392 v haveSetPoint;
#X obj 554 134 v haveSetPoint;
#X msg 554 111 1;
#X obj 653 224 send toGUI;
#X msg 653 201 list /tgl.Location.En \$1;
#X obj 690 149 del 500;
#X obj 653 106 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#N canvas 1 91 504 397 draw_arrow 0;
#X obj 89 257 rot2d;
#X msg 89 149 0.5 0.6;
#X obj 70 327 list store;
#X msg 106 172 0.4 0.7;
#X msg 123 195 0.5 0;
#X msg 140 218 0.6 0.7;
#X obj 89 280 list prepend append;
#X obj 89 303 list trim;
#X obj 70 103 t b b b;
#X obj 89 126 t b b b b;
#X obj 70 81 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#X obj 70 19 inlet;
#X obj 70 42 t b a;
#X obj 209 219 t a;
#X obj 242 199 t a;
#X obj 70 350 outlet;
#X connect 0 0 6 0;
#X connect 1 0 0 0;
#X connect 2 0 15 0;
#X connect 3 0 0 0;
#X connect 4 0 0 0;
#X connect 5 0 0 0;
#X connect 6 0 7 0;
#X connect 7 0 2 0;
#X connect 8 0 2 0;
#X connect 8 1 9 0;
#X connect 8 2 13 0;
#X connect 9 0 1 0;
#X connect 9 1 3 0;
#X connect 9 2 4 0;
#X connect 9 3 5 0;
#X connect 10 0 8 0;
#X connect 11 0 12 0;
#X connect 12 0 10 0;
#X connect 12 1 14 0;
#X connect 13 0 2 1;
#X connect 14 0 0 2;
#X restore 16 425 pd draw_arrow;
#X obj 16 485 t b a b;
#X floatatom 16 335 5 0 0 1 angle_(deg) - -;
#X obj 16 312 r \$0-compass;
#X text 11 16 disp. lat/long in text;
#X text 354 18 toggle gps reception + automatically enable at start-up
;
#X obj 16 46 r latlon;
#X floatatom 16 403 5 0 0 1 angle_(deg) - -;
#X obj 16 357 * -1;
#X obj 16 380 + 360;
#X text 792 393 disp. distance (km) in text;
#X obj 850 281 s toGUI;
#X obj 807 284 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X obj 757 238 f;
#X obj 807 238 + 1;
#X obj 807 261 % 2;
#X obj 757 134 t a b;
#X msg 784 202 0;
#X obj 757 202 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 850 200 del 1000;
#X msg 850 223 0;
#X obj 757 62 r latlon;
#X obj 757 85 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#X text 756 24 location info arrival indicator;
#X obj 757 163 scan 400;
#X msg 757 111 10;
#X obj 16 462 list prepend /lcd.Compass paintpoly;
#X msg 55 508 list /lcd.Compass paintoval 0 0 1 1 1 1 0 1;
#X msg 16 531 list /lcd.Compass paintoval 0.45 0.45 0.55 0.55 1 1 1
1;
#X obj 526 95 route /tgl.Location.En;
#X msg 356 72 list /tgl.Location.En 1;
#X msg 850 252 list /tgl.Location.Act set \$1;
#X msg 16 98 list /disp.Loc.Current.Lat.Coarse \$1;
#X msg 43 121 list /disp.Loc.Current.Lon.Coarse \$1;
#X msg 70 144 list /disp.Loc.Current.Lat.Fine \$1;
#X msg 97 167 list /disp.Loc.Current.Lon.Fine \$1;
#X obj 16 69 unpack f f f f;
#X obj 406 462 list prepend /lcd.Pointer paintpoly;
#X msg 445 508 list /lcd.Pointer paintoval 0 0 1 1 1 1 0 1;
#X msg 406 531 list /lcd.Pointer paintoval 0.45 0.45 0.55 0.55 1 1
1 1;
#X obj 795 451 list prepend /disp.Distance;
#X text 14 281 draw north pointing compass;
#X obj 304 367 loadbang;
#X obj 304 390 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X text 404 282 draw dest. pointing arrow = bearing arrow;
#X obj 565 368 expr fmod(($f1+360) \, 360);
#X obj 565 391 expr fmod(($f1+180) \, 360)-180;
#X obj 565 414 s \$0-brng-error;
#N canvas 1 91 465 242 tester 0;
#X obj 17 67 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1 1
;
#X obj 17 87 metro 100;
#X obj 87 110 vline~;
#X obj 87 133 snapshot~;
#X floatatom 87 156 5 0 0 0 - - -;
#X msg 87 74 0 0 \, 50 2000 \, 0 2000 2000 \, 360 0 4000 \, 310 2000
4000 \, 360 2000 6000;
#X obj 87 19 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1 1
;
#X obj 87 45 metro 8000;
#X obj 87 178 outlet;
#X connect 0 0 1 0;
#X connect 1 0 3 0;
#X connect 2 0 3 0;
#X connect 3 0 4 0;
#X connect 4 0 8 0;
#X connect 5 0 2 0;
#X connect 6 0 7 0;
#X connect 6 0 0 0;
#X connect 7 0 5 0;
#X restore 328 309 pd tester;
#X connect 1 0 50 0;
#X connect 2 0 1 0;
#X connect 3 0 4 0;
#X connect 5 0 51 0;
#X connect 8 0 58 0;
#X connect 9 0 8 0;
#X connect 9 0 66 0;
#X connect 10 0 60 0;
#X connect 10 1 7 0;
#X connect 10 2 59 0;
#X connect 12 0 14 0;
#X connect 13 0 9 0;
#X connect 14 0 13 0;
#X connect 15 0 12 0;
#X connect 16 0 13 1;
#X connect 17 0 61 0;
#X connect 19 0 20 0;
#X connect 20 0 23 0;
#X connect 21 0 47 0;
#X connect 22 0 49 0;
#X connect 22 1 18 0;
#X connect 22 2 48 0;
#X connect 23 0 29 0;
#X connect 24 0 23 0;
#X connect 27 0 57 0;
#X connect 28 0 21 0;
#X connect 29 0 30 0;
#X connect 30 0 28 0;
#X connect 33 0 52 0;
#X connect 34 0 35 0;
#X connect 35 0 36 0;
#X connect 36 0 34 1;
#X connect 36 0 33 0;
#X connect 37 0 45 0;
#X connect 37 1 38 0;
#X connect 38 0 34 1;
#X connect 39 0 34 0;
#X connect 40 0 41 0;
#X connect 41 0 52 0;
#X connect 42 0 43 0;
#X connect 43 0 46 0;
#X connect 45 0 39 0;
#X connect 45 1 40 0;
#X connect 46 0 37 0;
#X connect 47 0 22 0;
#X connect 48 0 18 0;
#X connect 49 0 18 0;
#X connect 50 0 3 0;
#X connect 51 0 6 0;
#X connect 52 0 32 0;
#X connect 53 0 0 0;
#X connect 54 0 0 0;
#X connect 55 0 0 0;
#X connect 56 0 0 0;
#X connect 57 0 53 0;
#X connect 57 1 54 0;
#X connect 57 2 55 0;
#X connect 57 3 56 0;
#X connect 58 0 10 0;
#X connect 59 0 7 0;
#X connect 60 0 7 0;
#X connect 61 0 11 0;
#X connect 63 0 64 0;
#X connect 64 0 9 0;
#X connect 66 0 67 0;
#X connect 67 0 68 0;
#X connect 69 0 9 0;
#X restore 247 45 pd gui guts;
#X text 735 73 (Lat.fine \, Lon.fine \, Lat.rough \, Lon.rough);
#X msg 428 65 36.123 127.789 456 12;
#X msg 428 114 456 12 36.123 127.789;
#X text 453 90 re-order to be;
#X obj 63 142 / 1000;
#X obj 100 165 / 1000;
#X obj 465 416 sel 1;
#X obj 465 393 v haveSetPoint;
#X obj 964 135 v haveSetPoint;
#X msg 964 112 1;
#X obj 1063 225 send toGUI;
#X msg 1063 202 list /tgl.Location.En \$1;
#X obj 1100 150 del 500;
#X obj 1063 107 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 1063 127 t b b;
#X msg 1063 150 0;
#X msg 1100 173 1;
#X obj 904 43 t b b a;
#X obj 163 408 map 0.005 0.05 1 0.1;
#X obj 928 320 print input(C);
#X obj 688 320 print input(F);
#X obj 465 498 print dist(km);
#X obj 465 475 print brng(deg);
#X obj 28 626 dac~;
#X floatatom 218 525 5 0 0 1 - - -;
#X floatatom 163 431 5 0 0 1 vol - -;
#X obj 163 492 line~;
#X msg 163 469 \$1 20;
#X obj 41 385 t b b;
#X obj 310 559 loadbang;
#X obj 28 515 expr~ $v1 * pow($v2 \, 4);
#X obj 591 475 expr sqrt(x\$0*x\$0+y\$0*y\$0) \; fmod(atan2(x\$0 \,
#X obj 653 126 t b b;
#X msg 653 149 0;
#X msg 690 172 1;
#X obj 494 42 t b b a;
#X obj 518 319 print input(C);
#X obj 278 319 print input(F);
#X obj 55 497 print dist(km);
#X obj 55 474 print brng(deg);
#X obj 181 474 expr sqrt(x\$0*x\$0+y\$0*y\$0) \; fmod(atan2(x\$0 \,
y\$0)*360/6.28319+360 \, 360) \; x\$0=distC\$0*sin(brngC\$0*6.28319/360)+
distF\$0*sin(brngF\$0*6.28319/360) \; y\$0=distC\$0*cos(brngC\$0*6.28319/360)+
distF\$0*cos(brngF\$0*6.28319/360);
#X obj 218 502 r \$0-brng-error;
#X obj 218 571 line~;
#X obj 28 588 eqpan2~ 8;
#X msg 218 547 \$1 100;
#X obj 628 520 tgl 15 0 \$0-veryclose empty s:0-veryclose 17 7 0 10
-262144 -1 -1 0 1;
#X obj 628 497 < 0.03;
#X obj 628 474 r \$0-dist;
#X connect 0 0 21 0;
#X connect 1 0 22 0;
#X connect 2 0 25 0;
#X connect 2 0 48 0;
#X connect 3 0 46 0;
#X connect 4 0 12 0;
#X connect 4 1 10 3;
#X connect 4 2 11 1;
#X connect 4 3 10 1;
#X connect 5 0 4 0;
#X connect 6 0 24 0;
#X connect 7 0 23 0;
#X connect 8 0 6 0;
#X connect 8 1 7 0;
#X connect 9 0 8 0;
#X connect 9 0 47 0;
#X connect 10 0 14 0;
#X connect 11 0 10 0;
#X connect 12 0 11 0;
#X connect 12 1 10 2;
#X connect 13 0 16 0;
#X connect 13 1 15 0;
#X connect 13 2 9 2;
#X connect 13 2 16 1;
#X connect 13 3 9 3;
#X connect 13 3 15 1;
#X connect 14 0 18 0;
#X connect 14 1 17 0;
#X connect 14 2 9 0;
#X connect 14 2 18 1;
#X connect 14 3 9 1;
#X connect 14 3 17 1;
#X connect 15 0 2 3;
#X connect 16 0 2 2;
#X connect 17 0 2 1;
#X connect 18 0 2 0;
#X connect 25 0 26 0;
#X connect 25 1 0 0;
#X connect 25 2 1 0;
#X connect 26 0 36 0;
#X connect 32 0 4 0;
#X connect 33 0 13 0;
#X connect 35 0 51 0;
#X connect 36 0 35 0;
#X connect 38 0 37 0;
#X connect 40 0 39 0;
#X connect 41 0 45 0;
#X connect 42 0 43 0;
#X connect 43 0 44 0;
#X connect 43 1 41 0;
#X connect 44 0 40 0;
#X connect 45 0 40 0;
#X connect 46 0 42 0;
#X connect 46 1 38 0;
#X connect 46 2 13 0;
#X connect 51 0 29 0;
#X connect 51 0 49 0;
#X connect 51 1 30 0;
#X connect 51 1 50 0;
#X connect 53 0 52 0;
#X connect 54 0 53 0;
#X restore 247 58 pd location guts;
#X connect 0 0 2 0;
#X connect 1 0 3 0;
#X connect 1 1 8 0;
#X connect 1 1 5 0;
#X connect 2 0 1 0;
#X connect 3 5 56 0;
#X connect 3 6 57 0;
#X connect 3 5 21 0;
#X connect 3 6 22 0;
#X connect 3 7 4 2;
#X connect 3 8 4 3;
#X connect 4 0 9 0;
#X connect 4 0 44 0;
#X connect 5 0 34 0;
#X connect 6 0 35 0;
#X connect 7 0 38 0;
#X connect 7 0 72 0;
#X connect 10 0 82 0;
#X connect 11 0 10 0;
#X connect 12 0 10 1;
#X connect 14 0 80 0;
#X connect 15 0 70 0;
#X connect 16 0 69 0;
#X connect 17 0 25 0;
#X connect 17 1 23 3;
#X connect 17 2 24 1;
#X connect 17 3 23 1;
#X connect 18 0 17 0;
#X connect 19 0 37 0;
#X connect 20 0 36 0;
#X connect 21 0 19 0;
#X connect 21 1 20 0;
#X connect 22 0 21 0;
#X connect 22 0 71 0;
#X connect 23 0 27 0;
#X connect 24 0 23 0;
#X connect 25 0 24 0;
#X connect 25 1 23 2;
#X connect 26 0 29 0;
#X connect 26 1 28 0;
#X connect 26 2 22 2;
#X connect 26 2 29 1;
#X connect 26 3 22 3;
#X connect 26 3 28 1;
#X connect 27 0 31 0;
#X connect 27 1 30 0;
#X connect 27 2 22 0;
#X connect 27 2 31 1;
#X connect 27 3 22 1;
#X connect 27 3 30 1;
#X connect 28 0 7 3;
#X connect 29 0 7 2;
#X connect 30 0 7 1;
#X connect 31 0 7 0;
#X connect 38 0 39 0;
#X connect 38 1 5 0;
#X connect 38 2 6 0;
#X connect 39 0 59 0;
#X connect 53 0 17 0;
#X connect 54 0 26 0;
#X connect 56 0 4 0;
#X connect 57 0 4 1;
#X connect 58 0 83 0;
#X connect 59 0 58 0;
#X connect 61 0 60 0;
#X connect 63 0 62 0;
#X connect 64 0 68 0;
#X connect 65 0 66 0;
#X connect 66 0 67 0;
#X connect 66 1 64 0;
#X connect 67 0 63 0;
#X connect 68 0 63 0;
#X connect 69 0 65 0;
#X connect 69 1 61 0;
#X connect 69 2 26 0;
#X connect 70 0 77 0;
#X connect 76 0 87 0;
#X connect 77 0 79 0;
#X connect 78 0 82 1;
#X connect 79 0 78 0;
#X connect 80 0 12 0;
#X connect 80 1 11 0;
#X connect 81 0 13 0;
#X connect 82 0 86 0;
#X connect 83 0 42 0;
#X connect 83 0 73 0;
#X connect 83 1 43 0;
#X connect 83 1 74 0;
#X connect 84 0 76 0;
#X connect 85 0 86 1;
#X connect 86 0 75 0;
#X connect 86 1 75 1;
#X connect 87 0 85 0;
#X connect 4 0 6 0;
#X connect 4 0 13 0;
#X connect 7 0 31 0;
#X connect 8 0 7 0;
#X connect 9 0 7 1;
#X connect 11 0 29 0;
#X connect 12 0 23 0;
#X connect 21 0 4 0;
#X connect 22 0 4 1;
#X connect 23 0 26 0;
#X connect 25 0 34 0;
#X connect 26 0 28 0;
#X connect 27 0 31 1;
#X connect 28 0 27 0;
#X connect 29 0 9 0;
#X connect 29 1 8 0;
#X connect 30 0 10 0;
#X connect 31 0 35 0;
#X connect 32 0 25 0;
#X connect 33 0 35 1;
#X connect 34 0 33 0;
#X connect 35 0 24 0;
#X connect 35 1 24 1;