@@ -7,6 +7,7 @@ var R = Bangle.appRect;
77var y = R . y + R . h / 2 ;
88var MEDIANLENGTH = 20 ;
99var avr = [ ] ;
10+ var updateDisplay = true ;
1011
1112function fmt ( t ) {
1213 if ( ( t > - 100 ) && ( t < 1000 ) )
@@ -19,48 +20,57 @@ function fmt(t) {
1920Bangle . on ( 'pressure' , function ( e ) {
2021 while ( avr . length > MEDIANLENGTH ) avr . pop ( ) ;
2122 avr . unshift ( e . altitude ) ;
22- let median = avr . slice ( ) . sort ( ) ;
23+ if ( ! updateDisplay ) return ;
24+ let median = avr . slice ( ) . sort ( ) , value ;
2325 g . reset ( ) . clearRect ( 0 , y - 30 , g . getWidth ( ) - 10 , R . h ) ;
2426 if ( median . length > 10 ) {
2527 var mid = median . length >> 1 ;
26- var value = E . sum ( median . slice ( mid - 4 , mid + 5 ) ) / 9 ;
28+ value = E . sum ( median . slice ( mid - 4 , mid + 5 ) ) / 9 ;
2729 } else {
28- var value = median [ median . length >> 1 ] ;
30+ value = median [ median . length >> 1 ] ;
2931 }
30- t = fmt ( value ) ;
32+ var t = fmt ( value ) ;
3133
3234 g . setFont ( "Vector" , 50 ) . setFontAlign ( 0 , 0 ) . drawString ( t , g . getWidth ( ) / 2 , y ) ;
3335
3436 let o = Bangle . getOptions ( ) ;
3537 let sea = o . seaLevelPressure ;
3638 t = sea . toFixed ( 1 ) + " " + e . temperature . toFixed ( 1 ) ;
37- if ( 0 ) {
39+ /* if (0) {
3840 print("alt raw:", value.toFixed(1));
3941 print("temperature:", e.temperature);
4042 print("pressure:", e.pressure);
4143 print("sea pressure:", sea);
42- }
44+ }*/
4345 g . setFont ( "Vector" , 25 ) . setFontAlign ( - 1 , 0 ) . drawString ( t , 10 , R . y + R . h - 35 ) ;
4446} ) ;
4547
4648function setPressure ( m , a ) {
47- o = Bangle . getOptions ( ) ;
48- print ( o ) ;
49+ var o = Bangle . getOptions ( ) ;
50+ // print(o);
4951 o . seaLevelPressure = o . seaLevelPressure * m + a ;
5052 Bangle . setOptions ( o ) ;
5153 avr = [ ] ;
5254}
5355
54- print ( g . getFonts ( ) ) ;
55- g . reset ( ) ;
56- g . setFont ( "Vector:15" ) ;
57- g . setFontAlign ( 0 , 0 ) ;
58- g . drawString ( /*LANG*/ "ALTITUDE (m)" , g . getWidth ( ) / 2 , y - 40 ) ;
59- g . drawString ( /*LANG*/ "SEA L (hPa) TEMP (C)" , g . getWidth ( ) / 2 , y + 62 ) ;
60- g . flip ( ) ;
61- g . setFont ( "6x8" ) . setFontAlign ( 0 , 0 , 3 ) . drawString ( /*LANG*/ "STD" , g . getWidth ( ) - 5 , g . getHeight ( ) / 2 ) ;
62- Bangle . setUI ( "updown" , btn => {
63- if ( ! btn ) setPressure ( 0 , 1013.25 ) ;
64- if ( btn < 0 ) setPressure ( 1 , 1 ) ;
65- if ( btn > 0 ) setPressure ( 1 , - 1 ) ;
66- } ) ;
56+ function start ( ) {
57+ g . reset ( ) ;
58+ g . setFont ( "Vector:15" ) ;
59+ g . setFontAlign ( 0 , 0 ) ;
60+ g . drawString ( /*LANG*/ "ALTITUDE (m)" , g . getWidth ( ) / 2 , y - 40 ) ;
61+ g . drawString ( /*LANG*/ "SEA L (hPa) TEMP (C)" , g . getWidth ( ) / 2 , y + 62 ) ;
62+ g . setFont ( "6x8" ) . setFontAlign ( 0 , 0 , 3 ) . drawString ( /*LANG*/ "STD" , g . getWidth ( ) - 5 , g . getHeight ( ) / 2 ) ;
63+ updateDisplay = true ;
64+ Bangle . setUI ( "updown" , btn => {
65+ if ( ! btn ) {
66+ updateDisplay = false ;
67+ E . showPrompt ( /*LANG*/ "Set calibration to default?" , { title :/*LANG*/ "Altitude" } ) . then ( function ( reset ) {
68+ start ( ) ;
69+ if ( reset ) setPressure ( 0 , 1013.25 ) ;
70+ } ) ;
71+ }
72+ if ( btn < 0 ) setPressure ( 1 , 1 ) ;
73+ if ( btn > 0 ) setPressure ( 1 , - 1 ) ;
74+ } ) ;
75+ }
76+ start ( ) ;
0 commit comments