easycoder 250503.1__tar.gz → 250504.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of easycoder might be problematic. Click here for more details.

Files changed (184) hide show
  1. {easycoder-250503.1 → easycoder-250504.1}/PKG-INFO +3 -2
  2. {easycoder-250503.1 → easycoder-250504.1}/config.ecs +81 -55
  3. {easycoder-250503.1 → easycoder-250504.1}/easycoder/__init__.py +1 -1
  4. {easycoder-250503.1 → easycoder-250504.1}/easycoder/ec_core.py +13 -12
  5. {easycoder-250503.1 → easycoder-250504.1}/test.ecs +2 -0
  6. {easycoder-250503.1 → easycoder-250504.1}/.gitignore +0 -0
  7. {easycoder-250503.1 → easycoder-250504.1}/LICENSE +0 -0
  8. {easycoder-250503.1 → easycoder-250504.1}/README.md +0 -0
  9. {easycoder-250503.1 → easycoder-250504.1}/config.py +0 -0
  10. {easycoder-250503.1 → easycoder-250504.1}/demo.ecs +0 -0
  11. {easycoder-250503.1 → easycoder-250504.1}/doc/README.md +0 -0
  12. {easycoder-250503.1 → easycoder-250504.1}/doc/core/README.md +0 -0
  13. {easycoder-250503.1 → easycoder-250504.1}/doc/core/conditions/boolean.md +0 -0
  14. {easycoder-250503.1 → easycoder-250504.1}/doc/core/conditions/empty.md +0 -0
  15. {easycoder-250503.1 → easycoder-250504.1}/doc/core/conditions/ends.md +0 -0
  16. {easycoder-250503.1 → easycoder-250504.1}/doc/core/conditions/even.md +0 -0
  17. {easycoder-250503.1 → easycoder-250504.1}/doc/core/conditions/exists.md +0 -0
  18. {easycoder-250503.1 → easycoder-250504.1}/doc/core/conditions/greater.md +0 -0
  19. {easycoder-250503.1 → easycoder-250504.1}/doc/core/conditions/hasProperty.md +0 -0
  20. {easycoder-250503.1 → easycoder-250504.1}/doc/core/conditions/includes.md +0 -0
  21. {easycoder-250503.1 → easycoder-250504.1}/doc/core/conditions/is.md +0 -0
  22. {easycoder-250503.1 → easycoder-250504.1}/doc/core/conditions/less.md +0 -0
  23. {easycoder-250503.1 → easycoder-250504.1}/doc/core/conditions/list.md +0 -0
  24. {easycoder-250503.1 → easycoder-250504.1}/doc/core/conditions/none.md +0 -0
  25. {easycoder-250503.1 → easycoder-250504.1}/doc/core/conditions/not.md +0 -0
  26. {easycoder-250503.1 → easycoder-250504.1}/doc/core/conditions/numeric.md +0 -0
  27. {easycoder-250503.1 → easycoder-250504.1}/doc/core/conditions/object.md +0 -0
  28. {easycoder-250503.1 → easycoder-250504.1}/doc/core/conditions/odd.md +0 -0
  29. {easycoder-250503.1 → easycoder-250504.1}/doc/core/conditions/starts.md +0 -0
  30. {easycoder-250503.1 → easycoder-250504.1}/doc/core/conditions/string.md +0 -0
  31. {easycoder-250503.1 → easycoder-250504.1}/doc/core/keywords/add.md +0 -0
  32. {easycoder-250503.1 → easycoder-250504.1}/doc/core/keywords/append.md +0 -0
  33. {easycoder-250503.1 → easycoder-250504.1}/doc/core/keywords/assert.md +0 -0
  34. {easycoder-250503.1 → easycoder-250504.1}/doc/core/keywords/begin.md +0 -0
  35. {easycoder-250503.1 → easycoder-250504.1}/doc/core/keywords/clear.md +0 -0
  36. {easycoder-250503.1 → easycoder-250504.1}/doc/core/keywords/close.md +0 -0
  37. {easycoder-250503.1 → easycoder-250504.1}/doc/core/keywords/create.md +0 -0
  38. {easycoder-250503.1 → easycoder-250504.1}/doc/core/keywords/debug.md +0 -0
  39. {easycoder-250503.1 → easycoder-250504.1}/doc/core/keywords/decrement.md +0 -0
  40. {easycoder-250503.1 → easycoder-250504.1}/doc/core/keywords/delete.md +0 -0
  41. {easycoder-250503.1 → easycoder-250504.1}/doc/core/keywords/divide.md +0 -0
  42. {easycoder-250503.1 → easycoder-250504.1}/doc/core/keywords/exit.md +0 -0
  43. {easycoder-250503.1 → easycoder-250504.1}/doc/core/keywords/file.md +0 -0
  44. {easycoder-250503.1 → easycoder-250504.1}/doc/core/keywords/fork.md +0 -0
  45. {easycoder-250503.1 → easycoder-250504.1}/doc/core/keywords/get.md +0 -0
  46. {easycoder-250503.1 → easycoder-250504.1}/doc/core/keywords/go.md +0 -0
  47. {easycoder-250503.1 → easycoder-250504.1}/doc/core/keywords/gosub.md +0 -0
  48. {easycoder-250503.1 → easycoder-250504.1}/doc/core/keywords/if.md +0 -0
  49. {easycoder-250503.1 → easycoder-250504.1}/doc/core/keywords/import.md +0 -0
  50. {easycoder-250503.1 → easycoder-250504.1}/doc/core/keywords/increment.md +0 -0
  51. {easycoder-250503.1 → easycoder-250504.1}/doc/core/keywords/index.md +0 -0
  52. {easycoder-250503.1 → easycoder-250504.1}/doc/core/keywords/init.md +0 -0
  53. {easycoder-250503.1 → easycoder-250504.1}/doc/core/keywords/input.md +0 -0
  54. {easycoder-250503.1 → easycoder-250504.1}/doc/core/keywords/load.md +0 -0
  55. {easycoder-250503.1 → easycoder-250504.1}/doc/core/keywords/lock.md +0 -0
  56. {easycoder-250503.1 → easycoder-250504.1}/doc/core/keywords/log.md +0 -0
  57. {easycoder-250503.1 → easycoder-250504.1}/doc/core/keywords/module.md +0 -0
  58. {easycoder-250503.1 → easycoder-250504.1}/doc/core/keywords/multiply.md +0 -0
  59. {easycoder-250503.1 → easycoder-250504.1}/doc/core/keywords/negate.md +0 -0
  60. {easycoder-250503.1 → easycoder-250504.1}/doc/core/keywords/open.md +0 -0
  61. {easycoder-250503.1 → easycoder-250504.1}/doc/core/keywords/pop.md +0 -0
  62. {easycoder-250503.1 → easycoder-250504.1}/doc/core/keywords/post.md +0 -0
  63. {easycoder-250503.1 → easycoder-250504.1}/doc/core/keywords/print.md +0 -0
  64. {easycoder-250503.1 → easycoder-250504.1}/doc/core/keywords/push.md +0 -0
  65. {easycoder-250503.1 → easycoder-250504.1}/doc/core/keywords/put.md +0 -0
  66. {easycoder-250503.1 → easycoder-250504.1}/doc/core/keywords/read.md +0 -0
  67. {easycoder-250503.1 → easycoder-250504.1}/doc/core/keywords/release.md +0 -0
  68. {easycoder-250503.1 → easycoder-250504.1}/doc/core/keywords/replace.md +0 -0
  69. {easycoder-250503.1 → easycoder-250504.1}/doc/core/keywords/return.md +0 -0
  70. {easycoder-250503.1 → easycoder-250504.1}/doc/core/keywords/run.md +0 -0
  71. {easycoder-250503.1 → easycoder-250504.1}/doc/core/keywords/save.md +0 -0
  72. {easycoder-250503.1 → easycoder-250504.1}/doc/core/keywords/script.md +0 -0
  73. {easycoder-250503.1 → easycoder-250504.1}/doc/core/keywords/set.md +0 -0
  74. {easycoder-250503.1 → easycoder-250504.1}/doc/core/keywords/split.md +0 -0
  75. {easycoder-250503.1 → easycoder-250504.1}/doc/core/keywords/stack.md +0 -0
  76. {easycoder-250503.1 → easycoder-250504.1}/doc/core/keywords/stop.md +0 -0
  77. {easycoder-250503.1 → easycoder-250504.1}/doc/core/keywords/system.md +0 -0
  78. {easycoder-250503.1 → easycoder-250504.1}/doc/core/keywords/take.md +0 -0
  79. {easycoder-250503.1 → easycoder-250504.1}/doc/core/keywords/toggle.md +0 -0
  80. {easycoder-250503.1 → easycoder-250504.1}/doc/core/keywords/truncate.md +0 -0
  81. {easycoder-250503.1 → easycoder-250504.1}/doc/core/keywords/unlock.md +0 -0
  82. {easycoder-250503.1 → easycoder-250504.1}/doc/core/keywords/variable.md +0 -0
  83. {easycoder-250503.1 → easycoder-250504.1}/doc/core/keywords/wait.md +0 -0
  84. {easycoder-250503.1 → easycoder-250504.1}/doc/core/keywords/while.md +0 -0
  85. {easycoder-250503.1 → easycoder-250504.1}/doc/core/keywords/write.md +0 -0
  86. {easycoder-250503.1 → easycoder-250504.1}/doc/core/values/arg.md +0 -0
  87. {easycoder-250503.1 → easycoder-250504.1}/doc/core/values/args.md +0 -0
  88. {easycoder-250503.1 → easycoder-250504.1}/doc/core/values/cos.md +0 -0
  89. {easycoder-250503.1 → easycoder-250504.1}/doc/core/values/datime.md +0 -0
  90. {easycoder-250503.1 → easycoder-250504.1}/doc/core/values/decode.md +0 -0
  91. {easycoder-250503.1 → easycoder-250504.1}/doc/core/values/element.md +0 -0
  92. {easycoder-250503.1 → easycoder-250504.1}/doc/core/values/elements.md +0 -0
  93. {easycoder-250503.1 → easycoder-250504.1}/doc/core/values/empty.md +0 -0
  94. {easycoder-250503.1 → easycoder-250504.1}/doc/core/values/encode.md +0 -0
  95. {easycoder-250503.1 → easycoder-250504.1}/doc/core/values/error.md +0 -0
  96. {easycoder-250503.1 → easycoder-250504.1}/doc/core/values/files.md +0 -0
  97. {easycoder-250503.1 → easycoder-250504.1}/doc/core/values/float.md +0 -0
  98. {easycoder-250503.1 → easycoder-250504.1}/doc/core/values/from.md +0 -0
  99. {easycoder-250503.1 → easycoder-250504.1}/doc/core/values/hash.md +0 -0
  100. {easycoder-250503.1 → easycoder-250504.1}/doc/core/values/index.md +0 -0
  101. {easycoder-250503.1 → easycoder-250504.1}/doc/core/values/integer.md +0 -0
  102. {easycoder-250503.1 → easycoder-250504.1}/doc/core/values/json.md +0 -0
  103. {easycoder-250503.1 → easycoder-250504.1}/doc/core/values/keys.md +0 -0
  104. {easycoder-250503.1 → easycoder-250504.1}/doc/core/values/left.md +0 -0
  105. {easycoder-250503.1 → easycoder-250504.1}/doc/core/values/length.md +0 -0
  106. {easycoder-250503.1 → easycoder-250504.1}/doc/core/values/lowercase.md +0 -0
  107. {easycoder-250503.1 → easycoder-250504.1}/doc/core/values/memory.md +0 -0
  108. {easycoder-250503.1 → easycoder-250504.1}/doc/core/values/modification.md +0 -0
  109. {easycoder-250503.1 → easycoder-250504.1}/doc/core/values/modulo.md +0 -0
  110. {easycoder-250503.1 → easycoder-250504.1}/doc/core/values/newline.md +0 -0
  111. {easycoder-250503.1 → easycoder-250504.1}/doc/core/values/now.md +0 -0
  112. {easycoder-250503.1 → easycoder-250504.1}/doc/core/values/position.md +0 -0
  113. {easycoder-250503.1 → easycoder-250504.1}/doc/core/values/property.md +0 -0
  114. {easycoder-250503.1 → easycoder-250504.1}/doc/core/values/random.md +0 -0
  115. {easycoder-250503.1 → easycoder-250504.1}/doc/core/values/right.md +0 -0
  116. {easycoder-250503.1 → easycoder-250504.1}/doc/core/values/sin.md +0 -0
  117. {easycoder-250503.1 → easycoder-250504.1}/doc/core/values/stringify.md +0 -0
  118. {easycoder-250503.1 → easycoder-250504.1}/doc/core/values/tab.md +0 -0
  119. {easycoder-250503.1 → easycoder-250504.1}/doc/core/values/tan.md +0 -0
  120. {easycoder-250503.1 → easycoder-250504.1}/doc/core/values/timestamp.md +0 -0
  121. {easycoder-250503.1 → easycoder-250504.1}/doc/core/values/today.md +0 -0
  122. {easycoder-250503.1 → easycoder-250504.1}/doc/core/values/trim.md +0 -0
  123. {easycoder-250503.1 → easycoder-250504.1}/doc/core/values/type.md +0 -0
  124. {easycoder-250503.1 → easycoder-250504.1}/doc/core/values/uppercase.md +0 -0
  125. {easycoder-250503.1 → easycoder-250504.1}/doc/core/values/value.md +0 -0
  126. {easycoder-250503.1 → easycoder-250504.1}/doc/core/values/weekday.md +0 -0
  127. {easycoder-250503.1 → easycoder-250504.1}/doc/graphics/README.md +0 -0
  128. {easycoder-250503.1 → easycoder-250504.1}/doc/graphics/keywords/attach.md +0 -0
  129. {easycoder-250503.1 → easycoder-250504.1}/doc/graphics/keywords/close.md +0 -0
  130. {easycoder-250503.1 → easycoder-250504.1}/doc/graphics/keywords/create.md +0 -0
  131. {easycoder-250503.1 → easycoder-250504.1}/doc/graphics/keywords/ellipse.md +0 -0
  132. {easycoder-250503.1 → easycoder-250504.1}/doc/graphics/keywords/image.md +0 -0
  133. {easycoder-250503.1 → easycoder-250504.1}/doc/graphics/keywords/move.md +0 -0
  134. {easycoder-250503.1 → easycoder-250504.1}/doc/graphics/keywords/on.md +0 -0
  135. {easycoder-250503.1 → easycoder-250504.1}/doc/graphics/keywords/rectangle.md +0 -0
  136. {easycoder-250503.1 → easycoder-250504.1}/doc/graphics/keywords/render.md +0 -0
  137. {easycoder-250503.1 → easycoder-250504.1}/doc/graphics/keywords/run.md +0 -0
  138. {easycoder-250503.1 → easycoder-250504.1}/doc/graphics/keywords/set.md +0 -0
  139. {easycoder-250503.1 → easycoder-250504.1}/doc/graphics/keywords/text.md +0 -0
  140. {easycoder-250503.1 → easycoder-250504.1}/doc/graphics/values/attribute.md +0 -0
  141. {easycoder-250503.1 → easycoder-250504.1}/doc/graphics/values/window.md +0 -0
  142. {easycoder-250503.1 → easycoder-250504.1}/easycoder/README.md +0 -0
  143. {easycoder-250503.1 → easycoder-250504.1}/easycoder/ec_classes.py +0 -0
  144. {easycoder-250503.1 → easycoder-250504.1}/easycoder/ec_compiler.py +0 -0
  145. {easycoder-250503.1 → easycoder-250504.1}/easycoder/ec_condition.py +0 -0
  146. {easycoder-250503.1 → easycoder-250504.1}/easycoder/ec_graphics.py +0 -0
  147. {easycoder-250503.1 → easycoder-250504.1}/easycoder/ec_gutils.py +0 -0
  148. {easycoder-250503.1 → easycoder-250504.1}/easycoder/ec_handler.py +0 -0
  149. {easycoder-250503.1 → easycoder-250504.1}/easycoder/ec_program.py +0 -0
  150. {easycoder-250503.1 → easycoder-250504.1}/easycoder/ec_pyside.py +0 -0
  151. {easycoder-250503.1 → easycoder-250504.1}/easycoder/ec_timestamp.py +0 -0
  152. {easycoder-250503.1 → easycoder-250504.1}/easycoder/ec_value.py +0 -0
  153. {easycoder-250503.1 → easycoder-250504.1}/group.py +0 -0
  154. {easycoder-250503.1 → easycoder-250504.1}/images/Semoigo Dawn.jpg +0 -0
  155. {easycoder-250503.1 → easycoder-250504.1}/json/graphics-demo.json +0 -0
  156. {easycoder-250503.1 → easycoder-250504.1}/plugins/ec_keyboard.py +0 -0
  157. {easycoder-250503.1 → easycoder-250504.1}/plugins/ec_p100.py +0 -0
  158. {easycoder-250503.1 → easycoder-250504.1}/plugins/ec_pyside6.py +0 -0
  159. {easycoder-250503.1 → easycoder-250504.1}/plugins/keyboards/4-function.json +0 -0
  160. {easycoder-250503.1 → easycoder-250504.1}/plugins/keyboards/4-function.png +0 -0
  161. {easycoder-250503.1 → easycoder-250504.1}/plugins/keyboards/qwerty-0.json +0 -0
  162. {easycoder-250503.1 → easycoder-250504.1}/plugins/keyboards/qwerty-0.png +0 -0
  163. {easycoder-250503.1 → easycoder-250504.1}/plugins/keyboards/qwerty-1.json +0 -0
  164. {easycoder-250503.1 → easycoder-250504.1}/plugins/keyboards/qwerty-1.png +0 -0
  165. {easycoder-250503.1 → easycoder-250504.1}/plugins/keyboards/qwerty-2.json +0 -0
  166. {easycoder-250503.1 → easycoder-250504.1}/plugins/keyboards/qwerty-2.png +0 -0
  167. {easycoder-250503.1 → easycoder-250504.1}/plugins/keyboards/qwerty-3.json +0 -0
  168. {easycoder-250503.1 → easycoder-250504.1}/plugins/keyboards/qwerty-3.png +0 -0
  169. {easycoder-250503.1 → easycoder-250504.1}/plugins/points.py +0 -0
  170. {easycoder-250503.1 → easycoder-250504.1}/pyproject.toml +0 -0
  171. {easycoder-250503.1 → easycoder-250504.1}/scripts/README.md +0 -0
  172. {easycoder-250503.1 → easycoder-250504.1}/scripts/benchmark.ecs +0 -0
  173. {easycoder-250503.1 → easycoder-250504.1}/scripts/config.ecg +0 -0
  174. {easycoder-250503.1 → easycoder-250504.1}/scripts/connect.ecg +0 -0
  175. {easycoder-250503.1 → easycoder-250504.1}/scripts/ec_keyboard.py +0 -0
  176. {easycoder-250503.1 → easycoder-250504.1}/scripts/findxr.ecs +0 -0
  177. {easycoder-250503.1 → easycoder-250504.1}/scripts/fizzbuzz.ecs +0 -0
  178. {easycoder-250503.1 → easycoder-250504.1}/scripts/hello.ecs +0 -0
  179. {easycoder-250503.1 → easycoder-250504.1}/scripts/points.ecs +0 -0
  180. {easycoder-250503.1 → easycoder-250504.1}/scripts/test.ecs +0 -0
  181. {easycoder-250503.1 → easycoder-250504.1}/scripts/testg.ecg +0 -0
  182. {easycoder-250503.1 → easycoder-250504.1}/scripts/tests.ecs +0 -0
  183. {easycoder-250503.1 → easycoder-250504.1}/temp.ecs +0 -0
  184. {easycoder-250503.1 → easycoder-250504.1}/test.py +0 -0
@@ -1,11 +1,12 @@
1
- Metadata-Version: 2.3
1
+ Metadata-Version: 2.4
2
2
  Name: easycoder
3
- Version: 250503.1
3
+ Version: 250504.1
4
4
  Summary: Rapid scripting in English
5
5
  Keywords: compiler,scripting,prototyping,programming,coding,python,low code,hypertalk,computer language,learn to code
6
6
  Author-email: Graham Trott <gtanyware@gmail.com>
7
7
  Description-Content-Type: text/markdown
8
8
  Classifier: License :: OSI Approved :: MIT License
9
+ License-File: LICENSE
9
10
  Requires-Dist: pytz
10
11
  Requires-Dist: pyside6
11
12
  Project-URL: Home, https://github.com/easycoder/easycoder-py
@@ -23,7 +23,7 @@
23
23
  pushbutton ScanDevicesButton
24
24
  pushbutton ClearSystemButton
25
25
  pushbutton RemoveSlaveButton
26
- pushbutton UpdateDeviceButton
26
+ pushbutton UpdateFilesButton
27
27
  pushbutton DeleteFileButton
28
28
  pushbutton ExitButton
29
29
  pushbutton ScanSystemsButton
@@ -74,9 +74,9 @@
74
74
  on click ScanDevicesButton go to ScanForDevicesClick
75
75
  add ScanDevicesButton to LeftPanel
76
76
 
77
- create UpdateDeviceButton text `Update device`
78
- on click UpdateDeviceButton go to UpdateDeviceClick
79
- add UpdateDeviceButton to LeftPanel
77
+ create UpdateFilesButton text `Update files`
78
+ on click UpdateFilesButton go to UpdateFilesClick
79
+ add UpdateFilesButton to LeftPanel
80
80
 
81
81
  create DeleteFileButton text `Delete file`
82
82
  add DeleteFileButton to LeftPanel
@@ -259,6 +259,7 @@
259
259
  variable MasterDeviceName
260
260
  variable SlaveDevices
261
261
  variable CurrentSSID
262
+ variable Previous
262
263
  variable IsMaster
263
264
  variable FileName
264
265
  variable FileSize
@@ -270,6 +271,7 @@
270
271
  variable Segment
271
272
  variable Length
272
273
  variable Path
274
+ variable Count
273
275
  variable Content
274
276
  variable APInfo
275
277
  variable Info
@@ -358,6 +360,7 @@ ResetConfigFileClick:
358
360
  delete file ConfigFile
359
361
  disable RemoveSystemButton
360
362
  set the text of MasterDeviceButton to empty
363
+ put empty into SystemMAC
361
364
  clear SlaveList
362
365
  go to Start
363
366
  end
@@ -369,7 +372,13 @@ ScanSystemsClick:
369
372
  gosub to SetBusy
370
373
  log `Scan for system controllers`
371
374
  disable ScanSystemsButton
375
+ put 0 into Count
372
376
  gosub to ScanSystems
377
+ if Count is 0
378
+ begin
379
+ put `No new systems were found` into StatusMessage
380
+ gosub to Error
381
+ end
373
382
  gosub to RefreshSystemsCombo
374
383
  gosub to PostConfigData
375
384
  gosub to ManageButtonStates
@@ -391,6 +400,7 @@ ScanSystems:
391
400
  put `Scanning ` cat IPAddr into StatusMessage
392
401
  gosub to Working
393
402
  get Result from url `http://` cat IPAddr cat `:17348/cgi-bin/mac.py` timeout 1 or go to SS2
403
+ increment Count
394
404
  put trim Result into Result
395
405
  log Result
396
406
  log IPAddr cat `: ` cat Result
@@ -700,6 +710,8 @@ SetupDevice:
700
710
  put MAC into MasterMAC
701
711
  put IPAddr into MasterIPAddr
702
712
  if ErrorFlag return
713
+
714
+ ! Reboot the device
703
715
  gosub to RequestReset
704
716
  if ErrorFlag return
705
717
  put `Give the device a few seconds to reboot` into StatusMessage
@@ -720,15 +732,15 @@ SetupDevice:
720
732
  put `Failed to get Master ip address of ` cat MasterSSID into StatusMessage
721
733
  go to Error
722
734
  end
723
- log Response
724
735
  if left 2 of Response is `OK`
725
736
  begin
726
737
  put from 3 of Response into MasterIPAddr
727
738
  put `Master ip address is ` cat MasterIPAddr into StatusMessage
728
739
  gosub to Working
729
- set the text of MasterDeviceButton to MasterSSID cat ` ` cat MasterName cat ` ` cat MasterIPAddr cat ` ` cat Name
740
+ gosub to SetMasterDeviceButtonText
730
741
  set property `ipaddr` of MasterDevice to MasterIPAddr
731
- set property MasterName of Devices to MasterDevice
742
+ set property MasterDeviceName of Devices to MasterDevice
743
+ gosub to UpdateSystemConfig
732
744
  end
733
745
  else
734
746
  begin
@@ -759,8 +771,7 @@ CreateDevice:
759
771
  put json `{}` into Device
760
772
  if IsMaster
761
773
  begin
762
- put `Master` into Name
763
- log `Create master device ` cat Name
774
+ log `Create master device ` cat MastertDeviceName
764
775
  set property `hostssid` of Device to HostSSID
765
776
  set property `hostpass` of Device to HostPassword
766
777
  set property `ipaddr` of Device to empty
@@ -835,7 +846,7 @@ PopulateSystemInfo:
835
846
  put property `name` of MasterDevice into MasterDeviceName
836
847
  put property `ssid` of MasterDevice into MasterSSID
837
848
  put property `ipaddr` of MasterDevice into MasterIPAddr
838
- set the text of MasterDeviceButton to MasterSSID cat ` ` cat MasterIPAddr cat ` ` cat MasterDeviceName
849
+ gosub to SetMasterDeviceButtonText
839
850
  end
840
851
  else
841
852
  begin
@@ -847,16 +858,9 @@ PopulateSystemInfo:
847
858
  return
848
859
 
849
860
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
850
- ! Populate the device information fields
851
- PopulateDeviceInfo:
852
- if Device has property `name`
853
- begin
854
- log `Populate device ` cat property `name` of Device
855
- set the text of DeviceNameInput to property `name` of Device
856
- set the text of SSIDLabel to property `ssid` of Device
857
- enable UpdateDeviceButton
858
- enable DeleteFileButton
859
- end
861
+ ! Update text on MasterDeviceButton
862
+ SetMasterDeviceButtonText:
863
+ set the text of MasterDeviceButton to MasterSSID cat ` ` cat MasterIPAddr cat ` ` cat MasterDeviceName
860
864
  return
861
865
 
862
866
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
@@ -865,26 +869,41 @@ MasterDeviceClick:
865
869
  if MasterDeviceButton is not empty
866
870
  begin
867
871
  log `Select the master device`
872
+ set IsMaster
868
873
  put MasterDevice into Device
869
874
  gosub to PopulateDeviceInfo
870
875
  end
871
876
  gosub to ManageButtonStates
872
877
  stop
873
878
 
879
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
880
+ ! Populate the device information fields
881
+ PopulateDeviceInfo:
882
+ if Device has property `name`
883
+ begin
884
+ log `Populate device ` cat property `name` of Device
885
+ set the text of DeviceNameInput to property `name` of Device
886
+ set the text of SSIDLabel to property `ssid` of Device
887
+ enable UpdateFilesButton
888
+ enable DeleteFileButton
889
+ end
890
+ return
891
+
874
892
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
875
893
  ! Show information about a slave device
876
894
  SelectSlaveClick:
877
895
  log `Select ` cat SlaveList
896
+ clear IsMaster
878
897
  put property SlaveList of Devices into Device
879
898
  gosub to PopulateDeviceInfo
880
- enable UpdateDeviceButton
899
+ enable UpdateFilesButton
881
900
  enable DeleteFileButton
882
901
  stop
883
902
 
884
903
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
885
904
  ! Update the files on the selected device
886
- UpdateDeviceClick:
887
- log `Update the files om the selected device`
905
+ UpdateFilesClick:
906
+ log `Update the files on the selected device`
888
907
  stop
889
908
 
890
909
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
@@ -919,38 +938,15 @@ RemoveSlaveClick:
919
938
  end
920
939
  stop
921
940
 
922
- UpdateWidgetDataClick:
923
- gosub to SetBusy
924
- put DeviceName into Name
925
- set property `name` of Device to DeviceNameInput
926
- log prettify Device
927
- put property `ssid` of Device into SSID
928
- put from 8 of SSID into MAC
929
- gosub to SendDeviceConfigFile
930
- if not ErrorFlag
931
- begin
932
- set property DeviceNameInput of Devices to property Name of Devices
933
- delete property Name of Devices
934
- gosub to UpdateSystemConfig
935
- end
936
- gosub to ManageButtonStates
937
- stop
938
-
939
- RelayOffClick:
940
- log `Turn the relay OFF`
941
- stop
942
-
943
- RelayOnClick:
944
- log `Turn the relay ON`
945
- stop
946
-
941
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
942
+ ! Close the application and exit
947
943
  ExitClick:
948
944
  log `Exit the configurator`
949
945
  close Window
950
946
  exit
951
947
 
952
948
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
953
- ! Subroutines
949
+ ! Get the host password
954
950
  GetHostPassword:
955
951
  log `Get the host password`
956
952
  put `Type the host password:` into Prompt
@@ -1078,10 +1074,36 @@ ConnectToDevice:
1078
1074
  return
1079
1075
 
1080
1076
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1081
- ! Send the config file to a device
1082
- SendDeviceConfigFile:
1077
+ ! Update the widget data for the selected device
1078
+ UpdateWidgetDataClick:
1079
+ gosub to SetBusy
1080
+ put property `name` of Device into Previous
1081
+ set property `name` of Device to DeviceNameInput
1083
1082
  put `config.json` into FileName
1084
1083
  put stringify Device into Content
1084
+ gosub to SendFileToDevice
1085
+ if not ErrorFlag
1086
+ begin
1087
+ set property DeviceNameInput of Devices to Device
1088
+ if IsMaster
1089
+ begin
1090
+ put DeviceNameInput into MasterDeviceName
1091
+ gosub to SetMasterDeviceButtonText
1092
+ end
1093
+ delete property Previous of Devices
1094
+ gosub to UpdateSystemConfig
1095
+ gosub to PostConfigData
1096
+ end
1097
+ gosub to ManageButtonStates
1098
+ stop
1099
+
1100
+ RelayOffClick:
1101
+ log `Turn the relay OFF`
1102
+ stop
1103
+
1104
+ RelayOnClick:
1105
+ log `Turn the relay ON`
1106
+ stop
1085
1107
 
1086
1108
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1087
1109
  ! Send a file to a device
@@ -1185,7 +1207,10 @@ SendRBRMessage:
1185
1207
  ! Send a message to a RBR-Now device
1186
1208
  SendMessageToDevice:
1187
1209
  gosub to GetDeviceData
1210
+ put property `ssid` of Device into SSID
1211
+ put from 8 of SSID into MAC
1188
1212
  put left 30 of Message into Message2
1213
+ if the length of Message is greater than 30 put Message2 cat `...` into Message2
1189
1214
  log `Send '` cat Message2 cat `' to ` cat Name
1190
1215
  put Message into Message2
1191
1216
  if Path is not empty
@@ -1205,7 +1230,7 @@ SendMessageToDevice:
1205
1230
  end
1206
1231
  end
1207
1232
  put `http://` cat MasterIPAddr cat `/?mac=` cat MAC cat `&msg=` cat Message2 into URL
1208
- log URL
1233
+ ! log URL
1209
1234
  get Response from url URL
1210
1235
  or begin
1211
1236
  put `Could not message ` cat Name into StatusMessage
@@ -1235,6 +1260,7 @@ GetDeviceData:
1235
1260
  ! Post the config data
1236
1261
  PostConfigData:
1237
1262
  if CurrentSSID is not HostSSID gosub to ConnectToHost
1263
+ if SystemMAC is empty return
1238
1264
  save prettify Config to ConfigFile
1239
1265
  ! log `Config: ` cat prettify Config
1240
1266
  put `https://rbrheating.com/ui/resources/php/rest.php/config/` cat SystemMAC cat `/` cat SystemPassword into URL
@@ -1295,8 +1321,8 @@ ManageButtonStates:
1295
1321
  if the count of SystemsCombo is 0 disable ClearSystemButton else enable ClearSystemButton
1296
1322
  ! RemoveSlaveButton
1297
1323
  if the count of SlaveList is 0 disable RemoveSlaveButton else enable RemoveSlaveButton
1298
- ! UpdateDeviceButton
1299
- if DeviceNameInput is empty disable UpdateDeviceButton else enable UpdateDeviceButton
1324
+ ! UpdateFilesButton
1325
+ if DeviceNameInput is empty disable UpdateFilesButton else enable UpdateFilesButton
1300
1326
  ! DeleteFileButton
1301
1327
  if DeviceNameInput is empty disable DeleteFileButton else enable DeleteFileButton
1302
1328
  ! ScanSystemsButton
@@ -1319,7 +1345,7 @@ SetBusy:
1319
1345
  disable ScanDevicesButton
1320
1346
  disable ClearSystemButton
1321
1347
  disable RemoveSlaveButton
1322
- disable UpdateDeviceButton
1348
+ disable UpdateFilesButton
1323
1349
  disable DeleteFileButton
1324
1350
  disable ScanSystemsButton
1325
1351
  disable RemoveSystemButton
@@ -9,4 +9,4 @@ from .ec_program import *
9
9
  from .ec_timestamp import *
10
10
  from .ec_value import *
11
11
 
12
- __version__ = "250503.1"
12
+ __version__ = "250504.1"
@@ -1056,21 +1056,22 @@ class Core(Handler):
1056
1056
  self.putSymbolValue(stackRecord, stack)
1057
1057
  return self.nextPC()
1058
1058
 
1059
- # Put a value into a variable
1060
1059
  # put {value} into {variable}
1061
1060
  def k_put(self, command):
1062
- command['value'] = self.nextValue()
1063
- if self.nextIs('into'):
1064
- if self.nextIsSymbol():
1065
- symbolRecord = self.getSymbolRecord()
1066
- command['target'] = symbolRecord['name']
1067
- if 'hasValue' in symbolRecord and symbolRecord['hasValue'] == False:
1068
- FatalError(self.compiler, f'Symbol {symbolRecord["name"]} is not a value holder')
1061
+ value = self.nextValue()
1062
+ if value != None:
1063
+ command['value'] = value
1064
+ if self.nextIs('into'):
1065
+ if self.nextIsSymbol():
1066
+ symbolRecord = self.getSymbolRecord()
1067
+ command['target'] = symbolRecord['name']
1068
+ if 'hasValue' in symbolRecord and symbolRecord['hasValue'] == False:
1069
+ FatalError(self.compiler, f'Symbol {symbolRecord["name"]} is not a value holder')
1070
+ else:
1071
+ self.add(command)
1072
+ return True
1069
1073
  else:
1070
- self.add(command)
1071
- return True
1072
- else:
1073
- FatalError(self.compiler, f'Symbol {self.getToken()} is not a variable')
1074
+ FatalError(self.compiler, f'Symbol {self.getToken()} is not a variable')
1074
1075
  return False
1075
1076
 
1076
1077
  def r_put(self, command):
@@ -2,6 +2,8 @@
2
2
 
3
3
  script RBRConfig
4
4
 
5
+ use graphics
6
+
5
7
  variable Script
6
8
  module RBRConfig
7
9
 
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes