easycoder 250404.1__tar.gz → 250422.2__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 (185) hide show
  1. easycoder-250422.2/.gitignore +1 -0
  2. {easycoder-250404.1 → easycoder-250422.2}/PKG-INFO +3 -15
  3. {easycoder-250404.1 → easycoder-250422.2}/README.md +1 -12
  4. easycoder-250422.2/config.ecs +275 -0
  5. easycoder-250422.2/config.py +3 -0
  6. {easycoder-250404.1 → easycoder-250422.2}/easycoder/__init__.py +1 -1
  7. {easycoder-250404.1 → easycoder-250422.2}/easycoder/ec_core.py +8 -0
  8. easycoder-250422.2/easycoder/ec_pyside6.py +517 -0
  9. easycoder-250422.2/group.py +36 -0
  10. easycoder-250422.2/plugins/ec_pyside6.py +295 -0
  11. easycoder-250422.2/test.ecs +119 -0
  12. easycoder-250422.2/test.json +1 -0
  13. easycoder-250422.2/test.py +52 -0
  14. easycoder-250404.1/test.ecs +0 -15
  15. {easycoder-250404.1 → easycoder-250422.2}/LICENSE +0 -0
  16. {easycoder-250404.1 → easycoder-250422.2}/doc/README.md +0 -0
  17. {easycoder-250404.1 → easycoder-250422.2}/doc/core/README.md +0 -0
  18. {easycoder-250404.1 → easycoder-250422.2}/doc/core/conditions/boolean.md +0 -0
  19. {easycoder-250404.1 → easycoder-250422.2}/doc/core/conditions/empty.md +0 -0
  20. {easycoder-250404.1 → easycoder-250422.2}/doc/core/conditions/ends.md +0 -0
  21. {easycoder-250404.1 → easycoder-250422.2}/doc/core/conditions/even.md +0 -0
  22. {easycoder-250404.1 → easycoder-250422.2}/doc/core/conditions/exists.md +0 -0
  23. {easycoder-250404.1 → easycoder-250422.2}/doc/core/conditions/greater.md +0 -0
  24. {easycoder-250404.1 → easycoder-250422.2}/doc/core/conditions/hasProperty.md +0 -0
  25. {easycoder-250404.1 → easycoder-250422.2}/doc/core/conditions/includes.md +0 -0
  26. {easycoder-250404.1 → easycoder-250422.2}/doc/core/conditions/is.md +0 -0
  27. {easycoder-250404.1 → easycoder-250422.2}/doc/core/conditions/less.md +0 -0
  28. {easycoder-250404.1 → easycoder-250422.2}/doc/core/conditions/list.md +0 -0
  29. {easycoder-250404.1 → easycoder-250422.2}/doc/core/conditions/none.md +0 -0
  30. {easycoder-250404.1 → easycoder-250422.2}/doc/core/conditions/not.md +0 -0
  31. {easycoder-250404.1 → easycoder-250422.2}/doc/core/conditions/numeric.md +0 -0
  32. {easycoder-250404.1 → easycoder-250422.2}/doc/core/conditions/object.md +0 -0
  33. {easycoder-250404.1 → easycoder-250422.2}/doc/core/conditions/odd.md +0 -0
  34. {easycoder-250404.1 → easycoder-250422.2}/doc/core/conditions/starts.md +0 -0
  35. {easycoder-250404.1 → easycoder-250422.2}/doc/core/conditions/string.md +0 -0
  36. {easycoder-250404.1 → easycoder-250422.2}/doc/core/keywords/add.md +0 -0
  37. {easycoder-250404.1 → easycoder-250422.2}/doc/core/keywords/append.md +0 -0
  38. {easycoder-250404.1 → easycoder-250422.2}/doc/core/keywords/assert.md +0 -0
  39. {easycoder-250404.1 → easycoder-250422.2}/doc/core/keywords/begin.md +0 -0
  40. {easycoder-250404.1 → easycoder-250422.2}/doc/core/keywords/clear.md +0 -0
  41. {easycoder-250404.1 → easycoder-250422.2}/doc/core/keywords/close.md +0 -0
  42. {easycoder-250404.1 → easycoder-250422.2}/doc/core/keywords/create.md +0 -0
  43. {easycoder-250404.1 → easycoder-250422.2}/doc/core/keywords/debug.md +0 -0
  44. {easycoder-250404.1 → easycoder-250422.2}/doc/core/keywords/decrement.md +0 -0
  45. {easycoder-250404.1 → easycoder-250422.2}/doc/core/keywords/delete.md +0 -0
  46. {easycoder-250404.1 → easycoder-250422.2}/doc/core/keywords/divide.md +0 -0
  47. {easycoder-250404.1 → easycoder-250422.2}/doc/core/keywords/exit.md +0 -0
  48. {easycoder-250404.1 → easycoder-250422.2}/doc/core/keywords/file.md +0 -0
  49. {easycoder-250404.1 → easycoder-250422.2}/doc/core/keywords/fork.md +0 -0
  50. {easycoder-250404.1 → easycoder-250422.2}/doc/core/keywords/get.md +0 -0
  51. {easycoder-250404.1 → easycoder-250422.2}/doc/core/keywords/go.md +0 -0
  52. {easycoder-250404.1 → easycoder-250422.2}/doc/core/keywords/gosub.md +0 -0
  53. {easycoder-250404.1 → easycoder-250422.2}/doc/core/keywords/if.md +0 -0
  54. {easycoder-250404.1 → easycoder-250422.2}/doc/core/keywords/import.md +0 -0
  55. {easycoder-250404.1 → easycoder-250422.2}/doc/core/keywords/increment.md +0 -0
  56. {easycoder-250404.1 → easycoder-250422.2}/doc/core/keywords/index.md +0 -0
  57. {easycoder-250404.1 → easycoder-250422.2}/doc/core/keywords/init.md +0 -0
  58. {easycoder-250404.1 → easycoder-250422.2}/doc/core/keywords/input.md +0 -0
  59. {easycoder-250404.1 → easycoder-250422.2}/doc/core/keywords/load.md +0 -0
  60. {easycoder-250404.1 → easycoder-250422.2}/doc/core/keywords/lock.md +0 -0
  61. {easycoder-250404.1 → easycoder-250422.2}/doc/core/keywords/log.md +0 -0
  62. {easycoder-250404.1 → easycoder-250422.2}/doc/core/keywords/module.md +0 -0
  63. {easycoder-250404.1 → easycoder-250422.2}/doc/core/keywords/multiply.md +0 -0
  64. {easycoder-250404.1 → easycoder-250422.2}/doc/core/keywords/negate.md +0 -0
  65. {easycoder-250404.1 → easycoder-250422.2}/doc/core/keywords/open.md +0 -0
  66. {easycoder-250404.1 → easycoder-250422.2}/doc/core/keywords/pop.md +0 -0
  67. {easycoder-250404.1 → easycoder-250422.2}/doc/core/keywords/post.md +0 -0
  68. {easycoder-250404.1 → easycoder-250422.2}/doc/core/keywords/print.md +0 -0
  69. {easycoder-250404.1 → easycoder-250422.2}/doc/core/keywords/push.md +0 -0
  70. {easycoder-250404.1 → easycoder-250422.2}/doc/core/keywords/put.md +0 -0
  71. {easycoder-250404.1 → easycoder-250422.2}/doc/core/keywords/read.md +0 -0
  72. {easycoder-250404.1 → easycoder-250422.2}/doc/core/keywords/release.md +0 -0
  73. {easycoder-250404.1 → easycoder-250422.2}/doc/core/keywords/replace.md +0 -0
  74. {easycoder-250404.1 → easycoder-250422.2}/doc/core/keywords/return.md +0 -0
  75. {easycoder-250404.1 → easycoder-250422.2}/doc/core/keywords/run.md +0 -0
  76. {easycoder-250404.1 → easycoder-250422.2}/doc/core/keywords/save.md +0 -0
  77. {easycoder-250404.1 → easycoder-250422.2}/doc/core/keywords/script.md +0 -0
  78. {easycoder-250404.1 → easycoder-250422.2}/doc/core/keywords/set.md +0 -0
  79. {easycoder-250404.1 → easycoder-250422.2}/doc/core/keywords/split.md +0 -0
  80. {easycoder-250404.1 → easycoder-250422.2}/doc/core/keywords/stack.md +0 -0
  81. {easycoder-250404.1 → easycoder-250422.2}/doc/core/keywords/stop.md +0 -0
  82. {easycoder-250404.1 → easycoder-250422.2}/doc/core/keywords/system.md +0 -0
  83. {easycoder-250404.1 → easycoder-250422.2}/doc/core/keywords/take.md +0 -0
  84. {easycoder-250404.1 → easycoder-250422.2}/doc/core/keywords/toggle.md +0 -0
  85. {easycoder-250404.1 → easycoder-250422.2}/doc/core/keywords/truncate.md +0 -0
  86. {easycoder-250404.1 → easycoder-250422.2}/doc/core/keywords/unlock.md +0 -0
  87. {easycoder-250404.1 → easycoder-250422.2}/doc/core/keywords/variable.md +0 -0
  88. {easycoder-250404.1 → easycoder-250422.2}/doc/core/keywords/wait.md +0 -0
  89. {easycoder-250404.1 → easycoder-250422.2}/doc/core/keywords/while.md +0 -0
  90. {easycoder-250404.1 → easycoder-250422.2}/doc/core/keywords/write.md +0 -0
  91. {easycoder-250404.1 → easycoder-250422.2}/doc/core/values/arg.md +0 -0
  92. {easycoder-250404.1 → easycoder-250422.2}/doc/core/values/args.md +0 -0
  93. {easycoder-250404.1 → easycoder-250422.2}/doc/core/values/cos.md +0 -0
  94. {easycoder-250404.1 → easycoder-250422.2}/doc/core/values/datime.md +0 -0
  95. {easycoder-250404.1 → easycoder-250422.2}/doc/core/values/decode.md +0 -0
  96. {easycoder-250404.1 → easycoder-250422.2}/doc/core/values/element.md +0 -0
  97. {easycoder-250404.1 → easycoder-250422.2}/doc/core/values/elements.md +0 -0
  98. {easycoder-250404.1 → easycoder-250422.2}/doc/core/values/empty.md +0 -0
  99. {easycoder-250404.1 → easycoder-250422.2}/doc/core/values/encode.md +0 -0
  100. {easycoder-250404.1 → easycoder-250422.2}/doc/core/values/error.md +0 -0
  101. {easycoder-250404.1 → easycoder-250422.2}/doc/core/values/files.md +0 -0
  102. {easycoder-250404.1 → easycoder-250422.2}/doc/core/values/float.md +0 -0
  103. {easycoder-250404.1 → easycoder-250422.2}/doc/core/values/from.md +0 -0
  104. {easycoder-250404.1 → easycoder-250422.2}/doc/core/values/hash.md +0 -0
  105. {easycoder-250404.1 → easycoder-250422.2}/doc/core/values/index.md +0 -0
  106. {easycoder-250404.1 → easycoder-250422.2}/doc/core/values/integer.md +0 -0
  107. {easycoder-250404.1 → easycoder-250422.2}/doc/core/values/json.md +0 -0
  108. {easycoder-250404.1 → easycoder-250422.2}/doc/core/values/keys.md +0 -0
  109. {easycoder-250404.1 → easycoder-250422.2}/doc/core/values/left.md +0 -0
  110. {easycoder-250404.1 → easycoder-250422.2}/doc/core/values/length.md +0 -0
  111. {easycoder-250404.1 → easycoder-250422.2}/doc/core/values/lowercase.md +0 -0
  112. {easycoder-250404.1 → easycoder-250422.2}/doc/core/values/memory.md +0 -0
  113. {easycoder-250404.1 → easycoder-250422.2}/doc/core/values/modification.md +0 -0
  114. {easycoder-250404.1 → easycoder-250422.2}/doc/core/values/modulo.md +0 -0
  115. {easycoder-250404.1 → easycoder-250422.2}/doc/core/values/newline.md +0 -0
  116. {easycoder-250404.1 → easycoder-250422.2}/doc/core/values/now.md +0 -0
  117. {easycoder-250404.1 → easycoder-250422.2}/doc/core/values/position.md +0 -0
  118. {easycoder-250404.1 → easycoder-250422.2}/doc/core/values/property.md +0 -0
  119. {easycoder-250404.1 → easycoder-250422.2}/doc/core/values/random.md +0 -0
  120. {easycoder-250404.1 → easycoder-250422.2}/doc/core/values/right.md +0 -0
  121. {easycoder-250404.1 → easycoder-250422.2}/doc/core/values/sin.md +0 -0
  122. {easycoder-250404.1 → easycoder-250422.2}/doc/core/values/stringify.md +0 -0
  123. {easycoder-250404.1 → easycoder-250422.2}/doc/core/values/tab.md +0 -0
  124. {easycoder-250404.1 → easycoder-250422.2}/doc/core/values/tan.md +0 -0
  125. {easycoder-250404.1 → easycoder-250422.2}/doc/core/values/timestamp.md +0 -0
  126. {easycoder-250404.1 → easycoder-250422.2}/doc/core/values/today.md +0 -0
  127. {easycoder-250404.1 → easycoder-250422.2}/doc/core/values/trim.md +0 -0
  128. {easycoder-250404.1 → easycoder-250422.2}/doc/core/values/type.md +0 -0
  129. {easycoder-250404.1 → easycoder-250422.2}/doc/core/values/uppercase.md +0 -0
  130. {easycoder-250404.1 → easycoder-250422.2}/doc/core/values/value.md +0 -0
  131. {easycoder-250404.1 → easycoder-250422.2}/doc/core/values/weekday.md +0 -0
  132. {easycoder-250404.1 → easycoder-250422.2}/doc/graphics/README.md +0 -0
  133. {easycoder-250404.1 → easycoder-250422.2}/doc/graphics/keywords/attach.md +0 -0
  134. {easycoder-250404.1 → easycoder-250422.2}/doc/graphics/keywords/close.md +0 -0
  135. {easycoder-250404.1 → easycoder-250422.2}/doc/graphics/keywords/create.md +0 -0
  136. {easycoder-250404.1 → easycoder-250422.2}/doc/graphics/keywords/ellipse.md +0 -0
  137. {easycoder-250404.1 → easycoder-250422.2}/doc/graphics/keywords/image.md +0 -0
  138. {easycoder-250404.1 → easycoder-250422.2}/doc/graphics/keywords/move.md +0 -0
  139. {easycoder-250404.1 → easycoder-250422.2}/doc/graphics/keywords/on.md +0 -0
  140. {easycoder-250404.1 → easycoder-250422.2}/doc/graphics/keywords/rectangle.md +0 -0
  141. {easycoder-250404.1 → easycoder-250422.2}/doc/graphics/keywords/render.md +0 -0
  142. {easycoder-250404.1 → easycoder-250422.2}/doc/graphics/keywords/run.md +0 -0
  143. {easycoder-250404.1 → easycoder-250422.2}/doc/graphics/keywords/set.md +0 -0
  144. {easycoder-250404.1 → easycoder-250422.2}/doc/graphics/keywords/text.md +0 -0
  145. {easycoder-250404.1 → easycoder-250422.2}/doc/graphics/values/attribute.md +0 -0
  146. {easycoder-250404.1 → easycoder-250422.2}/doc/graphics/values/window.md +0 -0
  147. {easycoder-250404.1 → easycoder-250422.2}/easycoder/README.md +0 -0
  148. {easycoder-250404.1 → easycoder-250422.2}/easycoder/ec_classes.py +0 -0
  149. {easycoder-250404.1 → easycoder-250422.2}/easycoder/ec_compiler.py +0 -0
  150. {easycoder-250404.1 → easycoder-250422.2}/easycoder/ec_condition.py +0 -0
  151. {easycoder-250404.1 → easycoder-250422.2}/easycoder/ec_graphics.py +0 -0
  152. {easycoder-250404.1 → easycoder-250422.2}/easycoder/ec_gutils.py +0 -0
  153. {easycoder-250404.1 → easycoder-250422.2}/easycoder/ec_handler.py +0 -0
  154. {easycoder-250404.1 → easycoder-250422.2}/easycoder/ec_program.py +0 -0
  155. {easycoder-250404.1 → easycoder-250422.2}/easycoder/ec_timestamp.py +0 -0
  156. {easycoder-250404.1 → easycoder-250422.2}/easycoder/ec_value.py +0 -0
  157. {easycoder-250404.1 → easycoder-250422.2}/images/Semoigo Dawn.jpg +0 -0
  158. {easycoder-250404.1 → easycoder-250422.2}/json/graphics-demo.json +0 -0
  159. {easycoder-250404.1 → easycoder-250422.2}/plugins/ec_keyboard.py +0 -0
  160. {easycoder-250404.1 → easycoder-250422.2}/plugins/ec_p100.py +0 -0
  161. {easycoder-250404.1 → easycoder-250422.2}/plugins/keyboards/4-function.json +0 -0
  162. {easycoder-250404.1 → easycoder-250422.2}/plugins/keyboards/4-function.png +0 -0
  163. {easycoder-250404.1 → easycoder-250422.2}/plugins/keyboards/qwerty-0.json +0 -0
  164. {easycoder-250404.1 → easycoder-250422.2}/plugins/keyboards/qwerty-0.png +0 -0
  165. {easycoder-250404.1 → easycoder-250422.2}/plugins/keyboards/qwerty-1.json +0 -0
  166. {easycoder-250404.1 → easycoder-250422.2}/plugins/keyboards/qwerty-1.png +0 -0
  167. {easycoder-250404.1 → easycoder-250422.2}/plugins/keyboards/qwerty-2.json +0 -0
  168. {easycoder-250404.1 → easycoder-250422.2}/plugins/keyboards/qwerty-2.png +0 -0
  169. {easycoder-250404.1 → easycoder-250422.2}/plugins/keyboards/qwerty-3.json +0 -0
  170. {easycoder-250404.1 → easycoder-250422.2}/plugins/keyboards/qwerty-3.png +0 -0
  171. {easycoder-250404.1 → easycoder-250422.2}/plugins/points.py +0 -0
  172. {easycoder-250404.1 → easycoder-250422.2}/pyproject.toml +0 -0
  173. {easycoder-250404.1 → easycoder-250422.2}/scripts/README.md +0 -0
  174. {easycoder-250404.1 → easycoder-250422.2}/scripts/benchmark.ecs +0 -0
  175. {easycoder-250404.1 → easycoder-250422.2}/scripts/config.ecg +0 -0
  176. {easycoder-250404.1 → easycoder-250422.2}/scripts/connect.ecg +0 -0
  177. {easycoder-250404.1 → easycoder-250422.2}/scripts/ec_keyboard.py +0 -0
  178. {easycoder-250404.1 → easycoder-250422.2}/scripts/findxr.ecs +0 -0
  179. {easycoder-250404.1 → easycoder-250422.2}/scripts/fizzbuzz.ecs +0 -0
  180. {easycoder-250404.1 → easycoder-250422.2}/scripts/hello.ecs +0 -0
  181. {easycoder-250404.1 → easycoder-250422.2}/scripts/points.ecs +0 -0
  182. {easycoder-250404.1 → easycoder-250422.2}/scripts/test.ecs +0 -0
  183. {easycoder-250404.1 → easycoder-250422.2}/scripts/testg.ecg +0 -0
  184. {easycoder-250404.1 → easycoder-250422.2}/scripts/tests.ecs +0 -0
  185. {easycoder-250404.1 → easycoder-250422.2}/test.ecg +0 -0
@@ -0,0 +1 @@
1
+ */__pycache__/*
@@ -1,12 +1,11 @@
1
- Metadata-Version: 2.4
1
+ Metadata-Version: 2.3
2
2
  Name: easycoder
3
- Version: 250404.1
3
+ Version: 250422.2
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
10
9
  Requires-Dist: pytz
11
10
  Project-URL: Home, https://github.com/easycoder/easycoder-py
12
11
 
@@ -84,18 +83,7 @@ Here in the repository is a folder called `scripts` containing some sample scrip
84
83
  `benchmark.ecs` allows the performance of **_EasyCoder_** to be compared to other languages if a similar script is written for each one.
85
84
 
86
85
  ## Graphical programming
87
- **_EasyCoder_** includes a graphical programming environment that is in the early stages of development. Some demo scripts will be included in the `scripts` directory; these can be recognised by the extension`.ecg`. To run them, first install `tkinter`. On Linux this is done with
88
- ```
89
- sudo apt install python3-tk
90
- ```
91
-
92
- Next, install the Python `pySimpleGUI` graphics library; this is done with `pip install pysimplegui`. Then run your **_EasyCoder_** script using `easycoder {scriptname}.ecg`.
93
-
94
- Graphical scripts look much like any other script but their file names must use the extension `.ecg` to signal to **_EasyCoder_** that it needs to load the graphics module. Non-graphical applications can use any extension but `.ecs` is recommended. This allows the **_EasyCoder_** application to be used wherever Python is installed, in either a command-line or a graphical environment, but graphics will of course not be available in the former.
95
-
96
- Some demo graphical scripts will included in the `scripts` directory as development proceeds.
97
-
98
- `gtest.ecg` contains sample code to demonstrate and test basic features.
86
+ **_EasyCoder_** includes a graphical programming environment based on PySide6, that is in the early stages of development. Some demo scripts will be included in the `scripts` directory as development proceeds.
99
87
 
100
88
  ## Significant features
101
89
 
@@ -72,18 +72,7 @@ Here in the repository is a folder called `scripts` containing some sample scrip
72
72
  `benchmark.ecs` allows the performance of **_EasyCoder_** to be compared to other languages if a similar script is written for each one.
73
73
 
74
74
  ## Graphical programming
75
- **_EasyCoder_** includes a graphical programming environment that is in the early stages of development. Some demo scripts will be included in the `scripts` directory; these can be recognised by the extension`.ecg`. To run them, first install `tkinter`. On Linux this is done with
76
- ```
77
- sudo apt install python3-tk
78
- ```
79
-
80
- Next, install the Python `pySimpleGUI` graphics library; this is done with `pip install pysimplegui`. Then run your **_EasyCoder_** script using `easycoder {scriptname}.ecg`.
81
-
82
- Graphical scripts look much like any other script but their file names must use the extension `.ecg` to signal to **_EasyCoder_** that it needs to load the graphics module. Non-graphical applications can use any extension but `.ecs` is recommended. This allows the **_EasyCoder_** application to be used wherever Python is installed, in either a command-line or a graphical environment, but graphics will of course not be available in the former.
83
-
84
- Some demo graphical scripts will included in the `scripts` directory as development proceeds.
85
-
86
- `gtest.ecg` contains sample code to demonstrate and test basic features.
75
+ **_EasyCoder_** includes a graphical programming environment based on PySide6, that is in the early stages of development. Some demo scripts will be included in the `scripts` directory as development proceeds.
87
76
 
88
77
  ## Significant features
89
78
 
@@ -0,0 +1,275 @@
1
+ ! config.ecs
2
+
3
+ script Configurator
4
+
5
+ use graphics
6
+
7
+ window Window
8
+ layout MainPanel
9
+ layout LeftPanel
10
+ layout RightPanel
11
+ layout DeviceHPanel
12
+ layout OuterLayout
13
+ layout Layout
14
+ groupbox Group
15
+ label Label
16
+ label MasterDeviceLabel
17
+ label RelayStateLabel
18
+ label StatusLabel
19
+ pushbutton ResetConfigButton
20
+ pushbutton ScanNetworkButton
21
+ pushbutton SelectMasterButton
22
+ pushbutton SelectSlaveButton
23
+ pushbutton DeleteSlaveButton
24
+ pushbutton UpdateSlaveButton
25
+ pushbutton DeleteFileButton
26
+ pushbutton ExitButton
27
+ pushbutton SelectSystemButton
28
+ pushbutton SaveHostButton
29
+ pushbutton RelayOffButton
30
+ pushbutton RelayOnButton
31
+ pushbutton SaveWidgetDataButton
32
+ lineinput SSIDInput
33
+ lineinput PasswordInput
34
+ lineinput DeviceNameInput
35
+ lineinput ChannelInput
36
+ lineinput LEDPinInput
37
+ lineinput RelayPinInput
38
+ lineinput DHT22PinInput
39
+ lineinput PathInput
40
+ listbox SlaveList
41
+ checkbox LEDInvertCheckbox
42
+ checkbox RelayInvertCheckbox
43
+
44
+ ! debug step
45
+
46
+ log `Starting`
47
+ init graphics
48
+ create Window title `RBR-Now configurator` size 700 500
49
+ create MainPanel type QHBoxLayout
50
+
51
+ create LeftPanel type QVBoxLayout
52
+ add LeftPanel to MainPanel
53
+ create ResetConfigButton text `Reset config`
54
+ on click ResetConfigButton go to ResetConfigFile
55
+ add ResetConfigButton to LeftPanel
56
+
57
+ create ScanNetworkButton text `Scan network`
58
+ on click ScanNetworkButton go to ScanNetwork
59
+ add ScanNetworkButton to LeftPanel
60
+
61
+ create SelectMasterButton text `Select master`
62
+ on click SelectMasterButton go to SelectMaster
63
+ add SelectMasterButton to LeftPanel
64
+
65
+ create SelectSlaveButton text `Select slave`
66
+ on click SelectSlaveButton go to SelectSlave
67
+ add SelectSlaveButton to LeftPanel
68
+
69
+ create UpdateSlaveButton text `Update slave`
70
+ on click UpdateSlaveButton go to UpdateSlave
71
+ add UpdateSlaveButton to LeftPanel
72
+
73
+ create DeleteFileButton text `Delete file`
74
+ add DeleteFileButton to LeftPanel
75
+ on click DeleteFileButton go to DeleteFile
76
+
77
+ create DeleteSlaveButton text `Delete slave`
78
+ add DeleteSlaveButton to LeftPanel
79
+ on click DeleteSlaveButton go to DeleteSlave
80
+
81
+ add stretch to LeftPanel
82
+
83
+ create ExitButton text `Exit`
84
+ add ExitButton to LeftPanel
85
+ on click ExitButton go to Exit
86
+
87
+ create RightPanel type QVBoxLayout
88
+ add stretch RightPanel to MainPanel
89
+
90
+ ! Create the system name group
91
+ create Group title `System name`
92
+ set the height of Group to 50
93
+ add Group to RightPanel
94
+ create Layout type QHBoxLayout
95
+ add Layout to Group
96
+ create Label text `(none)`
97
+ add stretch Label to Layout
98
+ create SelectSystemButton text `Select system`
99
+ on click SelectSystemButton go to SelectSystem
100
+ add SelectSystemButton to Layout
101
+
102
+ ! Create the host access group
103
+ create Group title `Host`
104
+ set the height of Group to 50
105
+ add Group to RightPanel
106
+ create Layout type QHBoxLayout
107
+ add Layout to Group
108
+ create Label text `SSID:`
109
+ add Label to Layout
110
+ create SSIDInput size 40
111
+ add SSIDInput to Layout
112
+ create Label text `Password:`
113
+ add Label to Layout
114
+ create PasswordInput size 40
115
+ add PasswordInput to Layout
116
+ create SaveHostButton text `Save`
117
+ on click SaveHostButton go to SaveHostInfo
118
+ add SaveHostButton to Layout
119
+
120
+ ! Create the Master Device group
121
+ create Group title `Master device`
122
+ set the height of Group to 50
123
+ add Group to RightPanel
124
+ create Layout type QHBoxLayout
125
+ add Layout to Group
126
+ create MasterDeviceLabel text `(none)`
127
+ add MasterDeviceLabel to Layout
128
+
129
+ ! Create the Slave Devices group
130
+ create Group title `Slave devices`
131
+ set the height of Group to 150
132
+ add Group to RightPanel
133
+ create Layout type QHBoxLayout
134
+ add Layout to Group
135
+ create SlaveList
136
+ add SlaveList to Layout
137
+
138
+ ! Create the Selected Devices group
139
+ create Group title `Selected device`
140
+ set the height of Group to 150
141
+ add Group to RightPanel
142
+
143
+ create DeviceHPanel type QHBoxLayout
144
+ add DeviceHPanel to Group
145
+
146
+ create OuterLayout type QVBoxLayout
147
+ add OuterLayout to DeviceHPanel
148
+
149
+ create Layout type QHBoxLayout
150
+ add Layout to OuterLayout
151
+ create Label text `Name:`
152
+ add Label to Layout
153
+ create DeviceNameInput size 40
154
+ add DeviceNameInput to Layout
155
+ create Label text `Channel:`
156
+ add Label to Layout
157
+ create ChannelInput size 5
158
+ add ChannelInput to Layout
159
+ add stretch to Layout
160
+
161
+ create Layout type QHBoxLayout
162
+ add Layout to OuterLayout
163
+ create Label text `LED Pin:`
164
+ add Label to Layout
165
+ create LEDPinInput size 5
166
+ add LEDPinInput to Layout
167
+ create LEDInvertCheckbox text `Inverted`
168
+ add LEDInvertCheckbox to Layout
169
+ add stretch to Layout
170
+
171
+ create Layout type QHBoxLayout
172
+ add Layout to OuterLayout
173
+ create Label text `Relay Pin:`
174
+ add Label to Layout
175
+ create RelayPinInput size 5
176
+ add RelayPinInput to Layout
177
+ create RelayInvertCheckbox text `Inverted`
178
+ add RelayInvertCheckbox to Layout
179
+ create RelayOffButton size 5 text `-`
180
+ on click RelayOffButton go to RelayOff
181
+ add RelayOffButton to Layout
182
+ create RelayOnButton size 5 text `+`
183
+ on click RelayOnButton go to RelayOn
184
+ add RelayOnButton to Layout
185
+ create RelayStateLabel size 5 text `???`
186
+ add RelayStateLabel to Layout
187
+ add stretch to Layout
188
+
189
+ create Layout type QHBoxLayout
190
+ add Layout to OuterLayout
191
+ create Label text `DHT22 Pin:`
192
+ add Label to Layout
193
+ create DHT22PinInput size 5
194
+ add DHT22PinInput to Layout
195
+ add stretch to Layout
196
+
197
+ create Layout type QHBoxLayout
198
+ add Layout to OuterLayout
199
+ create Label text `Path:`
200
+ add Label to Layout
201
+ create PathInput size 60
202
+ add PathInput to Layout
203
+ add stretch to Layout
204
+
205
+ ! The 'Save' button
206
+ create Layout type QVBoxLayout
207
+ add Layout to DeviceHPanel
208
+ create SaveWidgetDataButton text `Save`
209
+ on click SaveWidgetDataButton go to SaveWidgetData
210
+ add SaveWidgetDataButton to Layout
211
+
212
+ create StatusLabel text `<font color="#00ff00">OK</font>`
213
+ add StatusLabel to RightPanel
214
+
215
+ add stretch to RightPanel
216
+
217
+ show MainPanel in Window
218
+
219
+ start graphics
220
+ log `Graphics running`
221
+ stop
222
+
223
+ ResetConfigFile:
224
+ log `Reset the configuration file`
225
+ stop
226
+
227
+ ScanNetwork:
228
+ log `Scan the network`
229
+ stop
230
+
231
+ SelectMaster:
232
+ log `Select the master device`
233
+ stop
234
+
235
+ SelectSlave:
236
+ log `Select a slave device`
237
+ stop
238
+
239
+ UpdateSlave:
240
+ log `Update the files om the selected device`
241
+ stop
242
+
243
+ DeleteFile:
244
+ log `Delete a file on the selected device`
245
+ stop
246
+
247
+ DeleteSlave:
248
+ log `Delete the selected slave device`
249
+ stop
250
+
251
+ Exit:
252
+ log `Exit the configuator`
253
+ close Window
254
+ exit
255
+
256
+ SelectSystem:
257
+ log `Select the system`
258
+ stop
259
+
260
+ SaveHostInfo:
261
+ log `Save the host information`
262
+ stop
263
+
264
+ SaveWidgetData:
265
+ log `Save the widget data`
266
+ stop
267
+
268
+ RelayOff:
269
+ log `Turn the relay OFF`
270
+ stop
271
+
272
+ RelayOn:
273
+ log `Turn the relay ON`
274
+ stop
275
+
@@ -0,0 +1,3 @@
1
+ from easycoder import Program
2
+
3
+ Program('config.ecs').start()
@@ -9,4 +9,4 @@ from .ec_program import *
9
9
  from .ec_timestamp import *
10
10
  from .ec_value import *
11
11
 
12
- __version__ = "250404.1"
12
+ __version__ = "250422.2"
@@ -1337,6 +1337,7 @@ class Core(Handler):
1337
1337
  newValue[index] = value
1338
1338
  symbolRecord['elements'] = elements
1339
1339
  symbolRecord['value'] = newValue
1340
+ symbolRecord['index'] = 0
1340
1341
  return self.nextPC()
1341
1342
 
1342
1343
  elif cmdType == 'element':
@@ -1596,6 +1597,13 @@ class Core(Handler):
1596
1597
  target['locked'] = False
1597
1598
  return self.nextPC()
1598
1599
 
1600
+ def k_use(self, command):
1601
+ if self.nextIs('graphics'):
1602
+ from .ec_pyside6 import Graphics
1603
+ self.program.classes.append(Graphics)
1604
+ self.program.processClasses()
1605
+ return True
1606
+
1599
1607
  # Declare a general-purpose variable
1600
1608
  def k_variable(self, command):
1601
1609
  return self.compileVariable(command, True)