meerk40t 0.9.7050__tar.gz → 0.9.7900__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.
Files changed (488) hide show
  1. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/PKG-INFO +1 -1
  2. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/balormk/controller.py +3 -3
  3. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/balormk/device.py +7 -0
  4. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/balormk/driver.py +23 -14
  5. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/balormk/galvo_commands.py +18 -3
  6. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/balormk/gui/balorconfig.py +6 -0
  7. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/balormk/livelightjob.py +36 -14
  8. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/camera/camera.py +1 -0
  9. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/camera/gui/camerapanel.py +154 -58
  10. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/camera/plugin.py +46 -5
  11. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/core/elements/branches.py +90 -20
  12. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/core/elements/elements.py +59 -37
  13. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/core/elements/trace.py +10 -6
  14. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/core/node/node.py +2 -0
  15. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/core/plotplanner.py +7 -4
  16. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/device/gui/defaultactions.py +78 -14
  17. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/dxf/dxf_io.py +42 -0
  18. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/grbl/controller.py +245 -35
  19. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/grbl/device.py +102 -26
  20. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/grbl/driver.py +8 -2
  21. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/grbl/gui/grblconfiguration.py +6 -0
  22. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/grbl/gui/grblcontroller.py +1 -1
  23. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/about.py +7 -0
  24. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/choicepropertypanel.py +20 -30
  25. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/devicepanel.py +27 -16
  26. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/icons.py +15 -0
  27. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/laserpanel.py +102 -54
  28. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/materialtest.py +12 -2
  29. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/mkdebug.py +268 -9
  30. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/navigationpanels.py +65 -7
  31. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/propertypanels/operationpropertymain.py +185 -91
  32. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/scenewidgets/elementswidget.py +7 -1
  33. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/scenewidgets/selectionwidget.py +24 -9
  34. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/statusbarwidgets/shapepropwidget.py +50 -40
  35. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/statusbarwidgets/statusbar.py +2 -2
  36. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/toolwidgets/toolmeasure.py +1 -1
  37. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/toolwidgets/toolnodeedit.py +4 -1
  38. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/toolwidgets/tooltabedit.py +9 -7
  39. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/wxmeerk40t.py +2 -0
  40. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/wxmmain.py +23 -9
  41. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/wxmribbon.py +36 -0
  42. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/wxutils.py +66 -42
  43. meerk40t-0.9.7900/meerk40t/kernel/inhibitor.py +120 -0
  44. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/kernel/kernel.py +38 -0
  45. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/lihuiyu/controller.py +33 -3
  46. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/lihuiyu/device.py +99 -4
  47. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/lihuiyu/driver.py +62 -5
  48. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/lihuiyu/gui/lhycontrollergui.py +69 -24
  49. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/lihuiyu/gui/lhydrivergui.py +6 -0
  50. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/lihuiyu/laserspeed.py +17 -10
  51. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/lihuiyu/parser.py +23 -0
  52. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/main.py +1 -1
  53. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/moshi/gui/moshidrivergui.py +7 -0
  54. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/newly/controller.py +3 -2
  55. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/newly/device.py +23 -2
  56. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/newly/driver.py +8 -3
  57. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/newly/gui/newlyconfig.py +7 -0
  58. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/ruida/gui/ruidaconfig.py +7 -0
  59. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/tools/geomstr.py +68 -48
  60. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/tools/rasterplotter.py +0 -5
  61. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/tools/ttfparser.py +155 -82
  62. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t.egg-info/PKG-INFO +1 -1
  63. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t.egg-info/SOURCES.txt +2 -0
  64. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/setup.cfg +1 -1
  65. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/test/test_drivers_galvo.py +1 -0
  66. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/test/test_drivers_grbl.py +1 -0
  67. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/test/test_drivers_lihuiyu.py +3 -3
  68. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/test/test_drivers_moshi.py +17 -17
  69. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/test/test_drivers_newly.py +29 -29
  70. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/test/test_elements_classify.py +2 -2
  71. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/test/test_elements_penbox.py +1 -0
  72. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/test/test_geomstr.py +4 -4
  73. meerk40t-0.9.7900/test/test_tools_rasterplotter.py +180 -0
  74. meerk40t-0.9.7050/test/test_tools_rasterplotter.py +0 -29
  75. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/LICENSE +0 -0
  76. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/README.md +0 -0
  77. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/__init__.py +0 -0
  78. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/balormk/__init__.py +0 -0
  79. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/balormk/balor_params.py +0 -0
  80. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/balormk/clone_loader.py +0 -0
  81. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/balormk/cylindermod.py +0 -0
  82. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/balormk/gui/__init__.py +0 -0
  83. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/balormk/gui/balorcontroller.py +0 -0
  84. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/balormk/gui/baloroperationproperties.py +0 -0
  85. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/balormk/gui/corscene.py +0 -0
  86. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/balormk/gui/gui.py +0 -0
  87. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/balormk/mock_connection.py +0 -0
  88. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/balormk/plugin.py +0 -0
  89. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/balormk/usb_connection.py +0 -0
  90. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/camera/__init__.py +0 -0
  91. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/camera/gui/__init__.py +0 -0
  92. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/camera/gui/gui.py +0 -0
  93. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/ch341/__init__.py +0 -0
  94. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/ch341/ch341device.py +0 -0
  95. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/ch341/libusb.py +0 -0
  96. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/ch341/mock.py +0 -0
  97. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/ch341/windriver.py +0 -0
  98. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/constants.py +0 -0
  99. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/core/__init__.py +0 -0
  100. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/core/bindalias.py +0 -0
  101. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/core/core.py +0 -0
  102. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/core/cutcode/__init__.py +0 -0
  103. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/core/cutcode/cubiccut.py +0 -0
  104. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/core/cutcode/cutcode.py +0 -0
  105. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/core/cutcode/cutgroup.py +0 -0
  106. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/core/cutcode/cutobject.py +0 -0
  107. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/core/cutcode/dwellcut.py +0 -0
  108. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/core/cutcode/gotocut.py +0 -0
  109. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/core/cutcode/homecut.py +0 -0
  110. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/core/cutcode/inputcut.py +0 -0
  111. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/core/cutcode/linecut.py +0 -0
  112. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/core/cutcode/outputcut.py +0 -0
  113. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/core/cutcode/plotcut.py +0 -0
  114. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/core/cutcode/quadcut.py +0 -0
  115. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/core/cutcode/rastercut.py +0 -0
  116. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/core/cutcode/waitcut.py +0 -0
  117. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/core/cutplan.py +0 -0
  118. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/core/drivers.py +0 -0
  119. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/core/elements/__init__.py +0 -0
  120. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/core/elements/align.py +0 -0
  121. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/core/elements/clipboard.py +0 -0
  122. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/core/elements/element_treeops.py +0 -0
  123. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/core/elements/element_types.py +0 -0
  124. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/core/elements/files.py +0 -0
  125. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/core/elements/geometry.py +0 -0
  126. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/core/elements/grid.py +0 -0
  127. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/core/elements/materials.py +0 -0
  128. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/core/elements/notes.py +0 -0
  129. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/core/elements/offset_clpr.py +0 -0
  130. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/core/elements/offset_mk.py +0 -0
  131. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/core/elements/penbox.py +0 -0
  132. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/core/elements/placements.py +0 -0
  133. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/core/elements/render.py +0 -0
  134. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/core/elements/shapes.py +0 -0
  135. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/core/elements/testcases.py +0 -0
  136. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/core/elements/tree_commands.py +0 -0
  137. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/core/elements/undo_redo.py +0 -0
  138. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/core/elements/wordlist.py +0 -0
  139. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/core/exceptions.py +0 -0
  140. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/core/laserjob.py +0 -0
  141. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/core/logging.py +0 -0
  142. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/core/node/__init__.py +0 -0
  143. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/core/node/blobnode.py +0 -0
  144. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/core/node/bootstrap.py +0 -0
  145. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/core/node/branch_elems.py +0 -0
  146. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/core/node/branch_ops.py +0 -0
  147. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/core/node/branch_regmark.py +0 -0
  148. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/core/node/cutnode.py +0 -0
  149. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/core/node/effect_hatch.py +0 -0
  150. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/core/node/effect_warp.py +0 -0
  151. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/core/node/effect_wobble.py +0 -0
  152. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/core/node/elem_ellipse.py +0 -0
  153. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/core/node/elem_image.py +0 -0
  154. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/core/node/elem_line.py +0 -0
  155. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/core/node/elem_path.py +0 -0
  156. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/core/node/elem_point.py +0 -0
  157. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/core/node/elem_polyline.py +0 -0
  158. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/core/node/elem_rect.py +0 -0
  159. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/core/node/elem_text.py +0 -0
  160. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/core/node/filenode.py +0 -0
  161. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/core/node/groupnode.py +0 -0
  162. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/core/node/image_processed.py +0 -0
  163. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/core/node/image_raster.py +0 -0
  164. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/core/node/layernode.py +0 -0
  165. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/core/node/mixins.py +0 -0
  166. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/core/node/nutils.py +0 -0
  167. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/core/node/op_cut.py +0 -0
  168. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/core/node/op_dots.py +0 -0
  169. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/core/node/op_engrave.py +0 -0
  170. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/core/node/op_image.py +0 -0
  171. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/core/node/op_raster.py +0 -0
  172. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/core/node/place_current.py +0 -0
  173. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/core/node/place_point.py +0 -0
  174. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/core/node/refnode.py +0 -0
  175. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/core/node/rootnode.py +0 -0
  176. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/core/node/util_console.py +0 -0
  177. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/core/node/util_goto.py +0 -0
  178. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/core/node/util_home.py +0 -0
  179. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/core/node/util_input.py +0 -0
  180. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/core/node/util_output.py +0 -0
  181. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/core/node/util_wait.py +0 -0
  182. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/core/parameters.py +0 -0
  183. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/core/planner.py +0 -0
  184. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/core/space.py +0 -0
  185. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/core/spoolers.py +0 -0
  186. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/core/svg_io.py +0 -0
  187. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/core/treeop.py +0 -0
  188. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/core/undos.py +0 -0
  189. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/core/units.py +0 -0
  190. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/core/view.py +0 -0
  191. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/core/webhelp.py +0 -0
  192. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/core/wordlist.py +0 -0
  193. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/cylinder/__init__.py +0 -0
  194. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/cylinder/cylinder.py +0 -0
  195. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/cylinder/gui/__init__.py +0 -0
  196. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/cylinder/gui/cylindersettings.py +0 -0
  197. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/cylinder/gui/gui.py +0 -0
  198. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/device/__init__.py +0 -0
  199. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/device/basedevice.py +0 -0
  200. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/device/devicechoices.py +0 -0
  201. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/device/dummydevice.py +0 -0
  202. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/device/gui/__init__.py +0 -0
  203. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/device/gui/effectspanel.py +0 -0
  204. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/device/gui/formatterpanel.py +0 -0
  205. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/device/gui/warningpanel.py +0 -0
  206. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/device/mixins.py +0 -0
  207. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/dxf/__init__.py +0 -0
  208. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/dxf/plugin.py +0 -0
  209. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/external_plugins.py +0 -0
  210. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/external_plugins_build.py +0 -0
  211. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/extra/__init__.py +0 -0
  212. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/extra/cag.py +0 -0
  213. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/extra/coolant.py +0 -0
  214. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/extra/encode_detect.py +0 -0
  215. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/extra/ezd.py +0 -0
  216. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/extra/hershey.py +0 -0
  217. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/extra/imageactions.py +0 -0
  218. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/extra/inkscape.py +0 -0
  219. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/extra/lbrn.py +0 -0
  220. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/extra/mk_potrace.py +0 -0
  221. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/extra/outerworld.py +0 -0
  222. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/extra/param_functions.py +0 -0
  223. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/extra/potrace.py +0 -0
  224. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/extra/serial_exchange.py +0 -0
  225. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/extra/updater.py +0 -0
  226. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/extra/vectrace.py +0 -0
  227. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/extra/vtracer.py +0 -0
  228. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/extra/winsleep.py +0 -0
  229. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/extra/xcs_reader.py +0 -0
  230. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/fill/__init__.py +0 -0
  231. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/fill/fills.py +0 -0
  232. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/fill/patternfill.py +0 -0
  233. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/fill/patterns.py +0 -0
  234. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/grbl/__init__.py +0 -0
  235. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/grbl/control.py +0 -0
  236. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/grbl/emulator.py +0 -0
  237. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/grbl/gcodejob.py +0 -0
  238. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/grbl/gui/__init__.py +0 -0
  239. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/grbl/gui/grblhardwareconfig.py +0 -0
  240. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/grbl/gui/grbloperationconfig.py +0 -0
  241. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/grbl/gui/gui.py +0 -0
  242. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/grbl/interpreter.py +0 -0
  243. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/grbl/loader.py +0 -0
  244. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/grbl/mock_connection.py +0 -0
  245. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/grbl/plugin.py +0 -0
  246. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/grbl/serial_connection.py +0 -0
  247. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/grbl/tcp_connection.py +0 -0
  248. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/grbl/ws_connection.py +0 -0
  249. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/__init__.py +0 -0
  250. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/alignment.py +0 -0
  251. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/autoexec.py +0 -0
  252. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/basicops.py +0 -0
  253. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/bufferview.py +0 -0
  254. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/busy.py +0 -0
  255. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/consolepanel.py +0 -0
  256. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/dialogoptions.py +0 -0
  257. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/executejob.py +0 -0
  258. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/fonts.py +0 -0
  259. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/functionwrapper.py +0 -0
  260. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/gui_mixins.py +0 -0
  261. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/guicolors.py +0 -0
  262. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/help_assets/__init__.py +0 -0
  263. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/help_assets/help_assets.py +0 -0
  264. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/helper.py +0 -0
  265. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/hersheymanager.py +0 -0
  266. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/imagesplitter.py +0 -0
  267. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/keymap.py +0 -0
  268. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/laserrender.py +0 -0
  269. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/lasertoolpanel.py +0 -0
  270. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/magnetoptions.py +0 -0
  271. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/materialmanager.py +0 -0
  272. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/mwindow.py +0 -0
  273. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/notes.py +0 -0
  274. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/opassignment.py +0 -0
  275. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/operation_info.py +0 -0
  276. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/plugin.py +0 -0
  277. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/position.py +0 -0
  278. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/preferences.py +0 -0
  279. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/propertypanels/__init__.py +0 -0
  280. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/propertypanels/attributes.py +0 -0
  281. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/propertypanels/blobproperty.py +0 -0
  282. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/propertypanels/consoleproperty.py +0 -0
  283. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/propertypanels/gotoproperty.py +0 -0
  284. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/propertypanels/groupproperties.py +0 -0
  285. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/propertypanels/hatchproperty.py +0 -0
  286. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/propertypanels/imageproperty.py +0 -0
  287. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/propertypanels/inputproperty.py +0 -0
  288. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/propertypanels/opbranchproperties.py +0 -0
  289. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/propertypanels/outputproperty.py +0 -0
  290. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/propertypanels/pathproperty.py +0 -0
  291. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/propertypanels/placementproperty.py +0 -0
  292. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/propertypanels/pointproperty.py +0 -0
  293. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/propertypanels/propertywindow.py +0 -0
  294. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/propertypanels/rasterwizardpanels.py +0 -0
  295. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/propertypanels/regbranchproperties.py +0 -0
  296. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/propertypanels/textproperty.py +0 -0
  297. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/propertypanels/waitproperty.py +0 -0
  298. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/propertypanels/warpproperty.py +0 -0
  299. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/propertypanels/wobbleproperty.py +0 -0
  300. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/ribbon.py +0 -0
  301. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/scene/__init__.py +0 -0
  302. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/scene/scene.py +0 -0
  303. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/scene/sceneconst.py +0 -0
  304. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/scene/scenepanel.py +0 -0
  305. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/scene/scenespacewidget.py +0 -0
  306. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/scene/widget.py +0 -0
  307. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/scenewidgets/__init__.py +0 -0
  308. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/scenewidgets/affinemover.py +0 -0
  309. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/scenewidgets/attractionwidget.py +0 -0
  310. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/scenewidgets/bedwidget.py +0 -0
  311. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/scenewidgets/gridwidget.py +0 -0
  312. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/scenewidgets/guidewidget.py +0 -0
  313. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/scenewidgets/laserpathwidget.py +0 -0
  314. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/scenewidgets/machineoriginwidget.py +0 -0
  315. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/scenewidgets/nodeselector.py +0 -0
  316. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/scenewidgets/rectselectwidget.py +0 -0
  317. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/scenewidgets/relocatewidget.py +0 -0
  318. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/scenewidgets/reticlewidget.py +0 -0
  319. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/simpleui.py +0 -0
  320. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/simulation.py +1 -1
  321. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/snapoptions.py +0 -0
  322. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/spoolerpanel.py +0 -0
  323. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/statusbarwidgets/__init__.py +0 -0
  324. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/statusbarwidgets/defaultoperations.py +0 -0
  325. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/statusbarwidgets/infowidget.py +0 -0
  326. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/statusbarwidgets/opassignwidget.py +0 -0
  327. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/statusbarwidgets/selectionwidget.py +0 -0
  328. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/statusbarwidgets/statusbarwidget.py +0 -0
  329. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/statusbarwidgets/strokewidget.py +0 -0
  330. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/themes.py +0 -0
  331. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/tips.py +0 -0
  332. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/toolwidgets/__init__.py +0 -0
  333. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/toolwidgets/circlebrush.py +0 -0
  334. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/toolwidgets/toolcircle.py +0 -0
  335. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/toolwidgets/toolcontainer.py +0 -0
  336. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/toolwidgets/tooldraw.py +0 -0
  337. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/toolwidgets/toolellipse.py +0 -0
  338. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/toolwidgets/toolimagecut.py +0 -0
  339. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/toolwidgets/toolline.py +0 -0
  340. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/toolwidgets/toollinetext.py +0 -0
  341. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/toolwidgets/toollinetext_inline.py +0 -0
  342. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/toolwidgets/toolnodemove.py +0 -0
  343. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/toolwidgets/toolparameter.py +0 -0
  344. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/toolwidgets/toolplacement.py +0 -0
  345. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/toolwidgets/toolpoint.py +0 -0
  346. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/toolwidgets/toolpointlistbuilder.py +0 -0
  347. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/toolwidgets/toolpointmove.py +0 -0
  348. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/toolwidgets/toolpolygon.py +0 -0
  349. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/toolwidgets/toolpolyline.py +0 -0
  350. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/toolwidgets/toolrect.py +0 -0
  351. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/toolwidgets/toolrelocate.py +0 -0
  352. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/toolwidgets/toolribbon.py +0 -0
  353. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/toolwidgets/tooltext.py +0 -0
  354. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/toolwidgets/toolvector.py +0 -0
  355. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/toolwidgets/toolwidget.py +0 -0
  356. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/usbconnect.py +0 -0
  357. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/utilitywidgets/__init__.py +0 -0
  358. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/utilitywidgets/buttonwidget.py +0 -0
  359. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/utilitywidgets/checkboxwidget.py +0 -0
  360. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/utilitywidgets/controlwidget.py +0 -0
  361. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/utilitywidgets/cyclocycloidwidget.py +0 -0
  362. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/utilitywidgets/debugwidgets.py +0 -0
  363. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/utilitywidgets/handlewidget.py +0 -0
  364. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/utilitywidgets/harmonograph.py +0 -0
  365. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/utilitywidgets/openclosewidget.py +0 -0
  366. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/utilitywidgets/rotationwidget.py +0 -0
  367. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/utilitywidgets/scalewidget.py +0 -0
  368. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/utilitywidgets/seekbarwidget.py +0 -0
  369. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/utilitywidgets/togglewidget.py +0 -0
  370. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/utilitywidgets/toolbarwidget.py +0 -0
  371. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/wordlisteditor.py +0 -0
  372. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/wxmscene.py +0 -0
  373. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/wxmtree.py +0 -0
  374. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/gui/zmatrix.py +0 -0
  375. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/image/__init__.py +0 -0
  376. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/image/dither.py +0 -0
  377. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/image/imagetools.py +0 -0
  378. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/internal_plugins.py +0 -0
  379. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/kernel/__init__.py +0 -0
  380. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/kernel/channel.py +0 -0
  381. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/kernel/context.py +0 -0
  382. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/kernel/exceptions.py +0 -0
  383. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/kernel/functions.py +0 -0
  384. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/kernel/jobs.py +0 -0
  385. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/kernel/lifecycles.py +0 -0
  386. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/kernel/module.py +0 -0
  387. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/kernel/service.py +0 -0
  388. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/kernel/settings.py +0 -0
  389. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/kernel/states.py +0 -0
  390. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/lihuiyu/__init__.py +0 -0
  391. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/lihuiyu/gui/__init__.py +0 -0
  392. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/lihuiyu/gui/gui.py +0 -0
  393. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/lihuiyu/gui/lhyaccelgui.py +0 -0
  394. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/lihuiyu/gui/lhyoperationproperties.py +0 -0
  395. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/lihuiyu/gui/tcpcontroller.py +0 -0
  396. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/lihuiyu/interpreter.py +0 -0
  397. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/lihuiyu/loader.py +0 -0
  398. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/lihuiyu/plugin.py +0 -0
  399. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/lihuiyu/tcp_connection.py +0 -0
  400. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/moshi/__init__.py +0 -0
  401. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/moshi/builder.py +0 -0
  402. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/moshi/controller.py +0 -0
  403. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/moshi/device.py +0 -0
  404. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/moshi/driver.py +0 -0
  405. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/moshi/gui/__init__.py +0 -0
  406. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/moshi/gui/gui.py +0 -0
  407. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/moshi/gui/moshicontrollergui.py +0 -0
  408. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/moshi/plugin.py +0 -0
  409. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/network/__init__.py +0 -0
  410. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/network/console_server.py +0 -0
  411. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/network/kernelserver.py +0 -0
  412. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/network/tcp_server.py +0 -0
  413. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/network/udp_server.py +0 -0
  414. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/network/web_server.py +0 -0
  415. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/newly/__init__.py +0 -0
  416. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/newly/gui/__init__.py +0 -0
  417. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/newly/gui/gui.py +0 -0
  418. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/newly/gui/newlycontroller.py +0 -0
  419. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/newly/gui/operationproperties.py +0 -0
  420. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/newly/mock_connection.py +0 -0
  421. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/newly/newly_params.py +0 -0
  422. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/newly/plugin.py +0 -0
  423. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/newly/usb_connection.py +0 -0
  424. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/rotary/__init__.py +0 -0
  425. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/rotary/gui/__init__.py +0 -0
  426. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/rotary/gui/gui.py +0 -0
  427. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/rotary/gui/rotarysettings.py +0 -0
  428. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/rotary/rotary.py +0 -0
  429. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/ruida/__init__.py +0 -0
  430. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/ruida/control.py +0 -0
  431. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/ruida/controller.py +0 -0
  432. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/ruida/device.py +0 -0
  433. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/ruida/driver.py +0 -0
  434. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/ruida/emulator.py +0 -0
  435. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/ruida/exceptions.py +0 -0
  436. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/ruida/gui/__init__.py +0 -0
  437. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/ruida/gui/gui.py +0 -0
  438. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/ruida/gui/ruidacontroller.py +0 -0
  439. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/ruida/gui/ruidaoperationproperties.py +0 -0
  440. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/ruida/loader.py +0 -0
  441. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/ruida/mock_connection.py +0 -0
  442. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/ruida/plugin.py +0 -0
  443. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/ruida/rdjob.py +0 -0
  444. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/ruida/serial_connection.py +0 -0
  445. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/ruida/tcp_connection.py +0 -0
  446. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/ruida/udp_connection.py +0 -0
  447. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/svgelements.py +0 -0
  448. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/tools/__init__.py +0 -0
  449. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/tools/driver_to_path.py +0 -0
  450. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/tools/jhfparser.py +0 -0
  451. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/tools/kerftest.py +0 -0
  452. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/tools/livinghinges.py +0 -0
  453. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/tools/pathtools.py +0 -0
  454. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/tools/pmatrix.py +0 -0
  455. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/tools/pointfinder.py +0 -0
  456. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/tools/polybool.py +0 -0
  457. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/tools/shxparser.py +0 -0
  458. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t/tools/zinglplotter.py +0 -0
  459. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t.egg-info/dependency_links.txt +0 -0
  460. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t.egg-info/entry_points.txt +0 -0
  461. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t.egg-info/requires.txt +0 -0
  462. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t.egg-info/top_level.txt +0 -0
  463. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/meerk40t.egg-info/zip-safe +0 -0
  464. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/pyproject.toml +0 -0
  465. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/setup.py +0 -0
  466. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/test/test_cli.py +0 -0
  467. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/test/test_core_cutcode.py +0 -0
  468. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/test/test_core_elements.py +1 -1
  469. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/test/test_core_plotplanner.py +0 -0
  470. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/test/test_core_viewports.py +0 -0
  471. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/test/test_element_degenerate_points.py +1 -1
  472. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/test/test_file_svg.py +1 -1
  473. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/test/test_fill.py +1 -1
  474. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/test/test_geomstr_nodes.py +0 -0
  475. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/test/test_imagetools_actualize.py +1 -1
  476. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/test/test_imagetools_wizard.py +0 -0
  477. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/test/test_kernel.py +1 -1
  478. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/test/test_laser_speeds.py +0 -0
  479. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/test/test_length.py +0 -0
  480. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/test/test_lifecycle.py +0 -0
  481. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/test/test_operations.py +1 -1
  482. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/test/test_operations_hatch.py +1 -1
  483. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/test/test_pmatrix.py +0 -0
  484. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/test/test_ruida.py +0 -0
  485. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/test/test_spooler.py +1 -1
  486. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/test/test_units_angle.py +0 -0
  487. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/test/test_wobble.py +0 -0
  488. {meerk40t-0.9.7050 → meerk40t-0.9.7900}/test/test_zingl.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: meerk40t
3
- Version: 0.9.7050
3
+ Version: 0.9.7900
4
4
  Summary: MeerK40t LaserCutter Software
5
5
  Home-page: https://github.com/meerk40t/meerk40t
6
6
  Author: Tatarize
@@ -288,7 +288,7 @@ class GalvoController:
288
288
  self._list_executing = False
289
289
  self._number_of_list_packets = 0
290
290
  self.paused = False
291
- self._signal_updates = self.service.setting(bool, "signal_updates", True)
291
+ self.service.setting(bool, "signal_updates", True)
292
292
 
293
293
  def define_pins(self):
294
294
  self._light_bit = self.service.setting(int, "light_pin", 8)
@@ -1090,7 +1090,7 @@ class GalvoController:
1090
1090
  x = int(x)
1091
1091
  y = int(y)
1092
1092
  self._list_write(listJumpTo, x, y, angle, distance)
1093
- if self._signal_updates:
1093
+ if self.service.signal_updates:
1094
1094
  view = self.service.view
1095
1095
  l_x, l_y = view.iposition(self._last_x, self._last_y)
1096
1096
  n_x, n_y = view.iposition(x, y)
@@ -1125,7 +1125,7 @@ class GalvoController:
1125
1125
  y = int(y)
1126
1126
  self._list_write(listMarkTo, x, y, angle, distance)
1127
1127
 
1128
- if self._signal_updates:
1128
+ if self.service.signal_updates:
1129
1129
  view = self.service.view
1130
1130
  l_x, l_y = view.iposition(self._last_x, self._last_y)
1131
1131
  n_x, n_y = view.iposition(x, y)
@@ -893,6 +893,13 @@ class BalorDevice(Service, Status):
893
893
  name = self.label.replace(" ", "-")
894
894
  return name.replace("/", "-")
895
895
 
896
+ @property
897
+ def supports_pwm(self):
898
+ """
899
+ Returns whether this device supports PWM.
900
+ """
901
+ return True
902
+
896
903
  def service_attach(self, *args, **kwargs):
897
904
  self.realize()
898
905
 
@@ -57,6 +57,7 @@ class BalorDriver:
57
57
  self.plot_planner.settings_then_jog = True
58
58
  self._aborting = False
59
59
  self._list_bits = None
60
+ self.service.setting(bool, "signal_updates", True)
60
61
 
61
62
  def __repr__(self):
62
63
  return f"BalorDriver({self.name})"
@@ -552,11 +553,12 @@ class BalorDriver:
552
553
  if self.native_y < 0:
553
554
  self.native_y = 0
554
555
  self.connection.set_xy(self.native_x, self.native_y)
555
- new_current = self.service.current
556
- self.service.signal(
557
- "driver;position",
558
- (old_current[0], old_current[1], new_current[0], new_current[1]),
559
- )
556
+ if self.service.signal_updates:
557
+ new_current = self.service.current
558
+ self.service.signal(
559
+ "driver;position",
560
+ (old_current[0], old_current[1], new_current[0], new_current[1]),
561
+ )
560
562
 
561
563
  def move_rel(self, dx, dy):
562
564
  """
@@ -581,11 +583,12 @@ class BalorDriver:
581
583
  if self.native_y < 0:
582
584
  self.native_y = 0
583
585
  self.connection.set_xy(self.native_x, self.native_y)
584
- new_current = self.service.current
585
- self.service.signal(
586
- "driver;position",
587
- (old_current[0], old_current[1], new_current[0], new_current[1]),
588
- )
586
+ if self.service.signal_updates:
587
+ new_current = self.service.current
588
+ self.service.signal(
589
+ "driver;position",
590
+ (old_current[0], old_current[1], new_current[0], new_current[1]),
591
+ )
589
592
 
590
593
  def home(self):
591
594
  """
@@ -718,7 +721,7 @@ class BalorDriver:
718
721
  self.connection.abort()
719
722
  self.service.signal("pause")
720
723
 
721
- def dwell(self, time_in_ms):
724
+ def dwell(self, time_in_ms, settings=None):
722
725
  """
723
726
  Requests that the laser fire in place for the given time period. This could be done in a series of commands,
724
727
  move to a location, turn laser on, wait, turn laser off. However, some drivers have specific laser-in-place
@@ -727,14 +730,20 @@ class BalorDriver:
727
730
  @param time_in_ms:
728
731
  @return:
729
732
  """
730
- self.pulse(time_in_ms)
733
+ if settings is not None and "power" in settings:
734
+ power = settings.get("power")
735
+ else:
736
+ power = None
737
+ self.pulse(time_in_ms, power=power)
731
738
 
732
- def pulse(self, pulse_time):
739
+ def pulse(self, pulse_time, power=None):
733
740
  self.service.laser_status = "active"
734
741
  con = self.connection
735
742
  con.program_mode()
736
743
  con.frequency(self.service.default_frequency)
737
- con.power(self.service.default_power)
744
+ if power is None:
745
+ power = self.service.default_power
746
+ con.power(power)
738
747
  if self.service.pulse_width_enabled:
739
748
  con.list_fiber_ylpm_pulse_width(self.service.default_pulse_width)
740
749
  dwell_time = pulse_time * 100 # Dwell time in ms units in 10 us
@@ -299,12 +299,15 @@ def plugin(service, lifecycle):
299
299
  action="store_true",
300
300
  help=_("override one second laser fire pulse duration"),
301
301
  )
302
+ @service.console_option("power", "p", type=str, help=_("Power level"))
302
303
  @service.console_argument("time", type=float, help=_("laser fire pulse duration"))
303
304
  @service.console_command(
304
305
  "pulse",
305
306
  help=_("pulse <time>: Pulse the laser in place."),
306
307
  )
307
- def pulse(command, channel, _, time=None, idonotlovemyhouse=False, **kwargs):
308
+ def pulse(
309
+ command, channel, _, time=None, power=None, idonotlovemyhouse=False, **kwargs
310
+ ):
308
311
  if time is None:
309
312
  channel(_("Must specify a pulse time in milliseconds."))
310
313
  return
@@ -319,9 +322,21 @@ def plugin(service, lifecycle):
319
322
  return
320
323
  except IndexError:
321
324
  return
325
+ if power:
326
+ try:
327
+ if power.endswith("%"):
328
+ power = float(power[:-1]) * 10
329
+ else:
330
+ power = float(power)
331
+ except ValueError:
332
+ channel(_("Invalid power value: {power}").format(power=power))
333
+ return
322
334
  if service.spooler.is_idle:
323
- service.spooler.command("pulse", time)
324
- channel(_("Pulse laser for {time} milliseconds").format(time=time))
335
+ service.spooler.command("pulse", time, power)
336
+ channel(
337
+ _("Pulse laser for {time} milliseconds").format(time=time)
338
+ + f"[{power}]"
339
+ )
325
340
  else:
326
341
  channel(_("Pulse laser failed: Busy"))
327
342
  return
@@ -235,3 +235,9 @@ class BalorConfiguration(MWindow):
235
235
  @staticmethod
236
236
  def helptext():
237
237
  return _("Display and edit device configuration")
238
+
239
+ @signal_listener("activate;device")
240
+ def on_device_changes(self, *args):
241
+ # Device activated, make sure we are still fine...
242
+ if self.context.device.name != 'balor':
243
+ wx.CallAfter(self.Close)
@@ -41,11 +41,12 @@ class LiveLightJob:
41
41
  self._travel_speed = travel_speed
42
42
  self._jump_delay = jump_delay
43
43
 
44
+ self._signal_mode = True
44
45
  # Kernel Job definition
45
46
  self.redlight_lock = threading.RLock()
46
47
  self.redlight_job = Job(
47
48
  self.jobevent,
48
- interval=0.1,
49
+ # interval=0.1,
49
50
  job_name=f"redlight_{self.mode}_{time.perf_counter():3f}",
50
51
  run_main=False,
51
52
  )
@@ -177,20 +178,24 @@ class LiveLightJob:
177
178
  con._goto_speed = self.service.redlight_speed
178
179
  con.light_mode()
179
180
 
181
+ # print (f"Redlight job {self.label} running...")
180
182
  if self.stopped or self._connection is None:
181
183
  return
182
184
  con = self._connection
183
- if self.changed:
184
- # print ("Something changed")
185
- with self.redlight_lock:
186
- if self.update_method is not None:
187
- self.update_method()
188
- # print (f"We are having now {len(self.points)} points")
189
- self.changed = False
190
- init_red(con)
191
-
192
- # Now draw the stuff
193
- self.trace_redlight(con)
185
+ while not self.stopped:
186
+ if self.changed:
187
+ # print ("Something changed")
188
+ with self.redlight_lock:
189
+ if self.update_method is not None:
190
+ self.update_method()
191
+ # print (f"We are having now {len(self.points)} points")
192
+ # for i, e in enumerate(self.points):
193
+ # print (f"Point {i}: {e}")
194
+ self.changed = False
195
+ init_red(con)
196
+
197
+ # Now draw the stuff
198
+ self.trace_redlight(con)
194
199
 
195
200
  def trace_redlight(self, con):
196
201
  """Trace the redlight path.
@@ -206,6 +211,9 @@ class LiveLightJob:
206
211
  delay_dark = self.service.delay_jump_long
207
212
  delay_between = self.service.delay_jump_short
208
213
  move = True
214
+ # We need to jump back to the first point
215
+ first = True
216
+ first_x, first_y = None, None
209
217
  for i, e in enumerate(self.points):
210
218
  if self.stopped or self.changed:
211
219
  # Abort due to stoppage or change, no sense to continue
@@ -227,11 +235,16 @@ class LiveLightJob:
227
235
  # Fix them.
228
236
  x &= 0xFFFF
229
237
  y &= 0xFFFF
238
+ if first:
239
+ first_x, first_y = x, y
240
+ first = False
230
241
  if move:
231
242
  con.dark(x, y, long=delay_dark, short=delay_dark)
232
243
  move = False
233
244
  continue
234
245
  con.light(x, y, long=delay_between, short=delay_between)
246
+ if first_x is not None and first_y is not None:
247
+ con.dark(first_x, first_y, long=delay_dark, short=delay_dark)
235
248
  con.light_off()
236
249
  con.write_port()
237
250
 
@@ -243,7 +256,13 @@ class LiveLightJob:
243
256
  """
244
257
  if not self.listen:
245
258
  return
246
- for method in ("emphasized", "modified_by_tool", "updating", "view;realized"):
259
+ for method in (
260
+ "emphasized",
261
+ "modified_by_tool",
262
+ "updating",
263
+ "view;realized",
264
+ "update_group_labels",
265
+ ):
247
266
  if start:
248
267
  self.service.listen(method, self.on_emphasis_changed)
249
268
  else:
@@ -265,6 +284,8 @@ class LiveLightJob:
265
284
  self._connection = driver.connection
266
285
  self._connection.rapid_mode()
267
286
  self._connection.light_mode()
287
+ self._signal_mode = driver.service.signal_updates
288
+ driver.service.signal_updates = False
268
289
  self.update()
269
290
  self.service.kernel.schedule(self.redlight_job)
270
291
 
@@ -283,6 +304,7 @@ class LiveLightJob:
283
304
  self.redlight_job.cancel()
284
305
  self.service.kernel.unschedule(self.redlight_job)
285
306
  self.setup_listen(False)
307
+ driver.service.signal_updates = self._signal_mode
286
308
  if self._connection is not None:
287
309
  self._connection.abort()
288
310
  if self.service.redlight_preferred:
@@ -458,7 +480,7 @@ class LiveLightJob:
458
480
  geometry.transform(rotate)
459
481
  self.points = list(
460
482
  geometry.as_equal_interpolated_points(
461
- distance=self.quantization, expand_lines=True
483
+ distance=self.quantization, # expand_lines=True
462
484
  )
463
485
  )
464
486
  # print (f"Interpolation delivered: {len(self.points)} segments")
@@ -38,6 +38,7 @@ class Camera(Service):
38
38
  self.camera_thread = None
39
39
  self.max_tries_connect = 10
40
40
  self.max_tries_frame = 10
41
+ self.setting(str, "desc", "")
41
42
  self.setting(int, "width", 640)
42
43
  self.setting(int, "height", 480)
43
44
  self.setting(bool, "correction_fisheye", False)