@@ -11,8 +11,6 @@ class ForumsladerView extends WatchUi.SimpleDataField {
11
11
12
12
private var
13
13
_data as DataManager ,
14
- _showList as Array < Number > = [10 , 3 , 6 , 7 ] as Array < Number > , // max 4 fields to show
15
- _coloumbCalc as Boolean = true ,
16
14
_speed as Float = 0.0 , // calculated field from dynamo pulses, poles and wheelsize
17
15
_battVoltage as Float = 0.0 , // calculated field from cell voltages
18
16
_connecting as String ,
@@ -23,20 +21,20 @@ class ForumsladerView extends WatchUi.SimpleDataField {
23
21
// ! @param dataManager The DataManager
24
22
public function initialize (dataManager as DataManager ) {
25
23
SimpleDataField .initialize ();
24
+ getUserSettings ();
26
25
label = " Forumslader" ;
27
26
_data = dataManager ;
28
27
_connecting = WatchUi .loadResource ($ .Rez .Strings .connecting ) as String ;
29
28
_initializing = WatchUi .loadResource ($ .Rez .Strings .initializing ) as String ;
30
29
_loadingdata = WatchUi .loadResource ($ .Rez .Strings .loadingdata ) as String ;
31
30
_displayString = _initializing ;
32
- getUserSettings ();
33
31
}
34
32
35
33
// ! process the $FLx data, calculate and show values every one second
36
34
// ! @param info The updated Activity.Info object
37
35
// ! @return String value to display in the simpledatafield
38
36
public function compute (info as Info ) as Numeric or Duration or String or Null {
39
-
37
+
40
38
_data .tick ++ ; // increase data age seconds counter
41
39
42
40
if (! isConnected ){
@@ -48,12 +46,13 @@ class ForumsladerView extends WatchUi.SimpleDataField {
48
46
if (_data .tick <= _data .MAX_AGE_SEC ) {
49
47
50
48
_displayString = " " ;
49
+ var freq = isV6 ? _data .FLdata [FL_frequency ] / 10 : _data .FLdata [FL_frequency ];
51
50
52
- for (var i = 0 ; i < _showList .size (); i ++ )
51
+ for (var i = 0 ; i < userSettings .size () - 1 ; i ++ )
53
52
{
54
53
_displayString += (_displayString .length () > 0 ) ? " " : " " ;
55
54
56
- switch (_showList [i ])
55
+ switch (userSettings [i ] as Number )
57
56
{
58
57
case 1 : // trip energy
59
58
_displayString += (_data .FLdata [FL_tripEnergy ] >= 0 ) ? _data .FLdata [FL_tripEnergy ] : " --" ;
@@ -76,7 +75,7 @@ class ForumsladerView extends WatchUi.SimpleDataField {
76
75
break ;
77
76
78
77
case 5 : // dynamo impulse frequency
79
- _displayString += ( _data . FLdata [ FL_frequency ] >= 0 ) ? _data . FLdata [ FL_frequency ] : " --" ;
78
+ _displayString += freq >= 0 ? freq . toNumber () : " --" ;
80
79
_displayString += " Hz" ;
81
80
break ;
82
81
@@ -98,7 +97,7 @@ class ForumsladerView extends WatchUi.SimpleDataField {
98
97
99
98
case 9 : // speed
100
99
if (_data .FLdata [FL_poles ] > 0 ) {
101
- _speed = _data . FLdata [ FL_frequency ] / _data .FLdata [FL_poles ] * _data .FLdata [FL_wheelsize ] / 277.777 ;
100
+ _speed = freq / _data .FLdata [FL_poles ] * _data .FLdata [FL_wheelsize ] / 277.777 ;
102
101
_displayString += _speed .toNumber ();
103
102
} else {
104
103
_displayString += " --" ;
@@ -108,11 +107,11 @@ class ForumsladerView extends WatchUi.SimpleDataField {
108
107
109
108
case 10 : // remaining battery capacity
110
109
var _capacity = 0 ;
111
- if (_coloumbCalc ) {
110
+ if (userSettings [ 4 ] == true ) { // use coloumb calculation method
112
111
var x1 = (_data .FLdata [FL_ccadcValue ].toLong () * _data .FLdata [FL_acc2mah ].toLong () / 167772.16 ).toFloat ();
113
112
var x2 = _data .FLdata [FL_fullChargeCapacity ];
114
113
_capacity = (x1 / x2 ).toNumber ();
115
- } else {
114
+ } else { // use voltage calculation method
116
115
_capacity = _data .FLdata [FL_socState ];
117
116
}
118
117
_displayString += (_capacity > 0 ) ? _capacity : " --" ;
@@ -135,48 +134,4 @@ class ForumsladerView extends WatchUi.SimpleDataField {
135
134
136
135
return _displayString ;
137
136
}
138
-
139
- // ! Called by app when user made changes to settings in GCM while App is running
140
- public function onSettingsChanged () as Void {
141
- getUserSettings ();
142
- }
143
-
144
- // Safely read a number value from user settings
145
- private function propertiesGetNumber (p as String ) as Number {
146
- var v = Application .Properties .getValue (p );
147
- if ((v == null ) || (v instanceof Boolean ))
148
- {
149
- v = 0 ;
150
- }
151
- else if (! (v instanceof Number ))
152
- {
153
- v = v as Number ;
154
- if (v == null )
155
- {
156
- v = 0 ;
157
- }
158
- }
159
- return v as Number ;
160
- }
161
-
162
- // Safely read a boolean value from user settings
163
- public function propertiesGetBoolean (p as String ) as Boolean {
164
- var v = Application .Properties .getValue (p );
165
- if ((v == null ) || ! (v instanceof Boolean ))
166
- {
167
- v = false ;
168
- }
169
- return v as Boolean ;
170
- }
171
-
172
- // read the user settings and store locally
173
- public function getUserSettings () as Void {
174
- _showList [0 ] = propertiesGetNumber (" Item1" );
175
- _showList [1 ] = propertiesGetNumber (" Item2" );
176
- _showList [2 ] = propertiesGetNumber (" Item3" );
177
- _showList [3 ] = propertiesGetNumber (" Item4" );
178
- debug (" Selected items: " + _showList .toString ());
179
- _coloumbCalc = propertiesGetBoolean (" BatteryCalcMethod" );
180
- }
181
-
182
137
}
0 commit comments