245 if(new_val != undefined && old_val != new_val) |
245 if(new_val != undefined && old_val != new_val) |
246 send_hmi_value(index, new_val); |
246 send_hmi_value(index, new_val); |
247 return new_val; |
247 return new_val; |
248 } |
248 } |
249 |
249 |
|
250 quotes = {"'":null, '"':null}; |
|
251 |
250 function change_hmi_value(index, opstr) { |
252 function change_hmi_value(index, opstr) { |
251 let op = opstr[0]; |
253 let op = opstr[0]; |
252 let given_val = opstr.slice(1); |
254 let given_val; |
253 let old_val = cache[index] |
255 if(opstr.length < 2) |
|
256 return undefined; // TODO raise |
|
257 if(opstr[1] in quotes){ |
|
258 if(opstr.length < 3) |
|
259 return undefined; // TODO raise |
|
260 if(opstr[opstr.length-1] == opstr[1]){ |
|
261 given_val = opstr.slice(2,opstr.length-1); |
|
262 } |
|
263 } else { |
|
264 given_val = Number(opstr.slice(1)); |
|
265 } |
|
266 let old_val = cache[index]; |
254 let new_val; |
267 let new_val; |
255 switch(op){ |
268 switch(op){ |
256 case "=": |
269 case "=": |
257 eval("new_val"+opstr); |
270 new_val = given_val; |
258 break; |
271 break; |
259 case "+": |
272 case "+": |
|
273 new_val = old_val + given_val; |
|
274 break; |
260 case "-": |
275 case "-": |
|
276 new_val = old_val - given_val; |
|
277 break; |
261 case "*": |
278 case "*": |
|
279 new_val = old_val * given_val; |
|
280 break; |
262 case "/": |
281 case "/": |
263 if(old_val != undefined) |
282 new_val = old_val / given_val; |
264 new_val = eval("old_val"+opstr); |
|
265 break; |
283 break; |
266 } |
284 } |
267 if(new_val != undefined && old_val != new_val) |
285 if(new_val != undefined && old_val != new_val) |
268 send_hmi_value(index, new_val); |
286 send_hmi_value(index, new_val); |
|
287 // TODO else raise |
269 return new_val; |
288 return new_val; |
270 } |
289 } |
271 |
290 |
272 var current_visible_page; |
291 var current_visible_page; |
273 var current_subscribed_page; |
292 var current_subscribed_page; |