Closed tatarize closed 2 years ago
Some preferences that are now device specific should be in device or configuration rather than preferences.
Look into maintaining device settings between 0.7.0 and 0.8.0
Does not cleanly shutdown.
PM: Debug: ClientToScreen cannot work when toplevel window is not shown --- until hangs
tiger12506 edit: Actually, it looks like these are present when meerk40t first opens, and not a symptom of improper shutdown.
Plot thickens. In Linux if you have a window stuck open from previous instance and it launches in that way it doesn't get the weird matrix effect. It loads that window normally for the duration.
Shutdown is now clean. Matrix effect is fixed for linux.
Testing in mock m2nano on my dev machine at commit 48c4be341b96424b10aa40d4ebff455ee3c116bb plus fix for #724...
MeerK40t crash log. Version: 0.8.0-beta1 git on Windows:AMD64 - 4.1.1 msw (phoenix) wxWidgets 3.1.5
Traceback (most recent call last):
File "D:\MeerK40t-64\Source\meerk40t_meerk40t\meerk40t\gui\scene\scene.py", line 312, in on_paint
wx.BufferedPaintDC(self.scene_panel, self._Buffer)
TypeError: BufferedPaintDC(): arguments did not match any overloaded call:
overload 1: argument 2 has unexpected type 'NoneType'
overload 2: argument 2 has unexpected type 'NoneType'
I will try to fix some of the easy ones in a few mins to help out.
OK - I have started testing this version on my dev machine i.e. without a real K40 and using mock. Here are my comments (limited to anything that would stop me using this in production rather than minor issues for future development):
ImportError
and write a friendly instruction to run pip install pyserial
.Traceback (most recent call last):
File "D:\MeerK40t-64\Source\meerk40t_meerk40t\meerk40t\gui\wxutils.py", line 146, in specific
f(node, **func_dict)
File "D:\MeerK40t-64\Source\meerk40t_meerk40t\meerk40t\core\elements.py", line 4343, in inner
returned = func(node, **ik, **kwargs)
File "D:\MeerK40t-64\Source\meerk40t_meerk40t\meerk40t\core\elements.py", line 3605, in make_raster_image
image = make_raster(
File "D:\MeerK40t-64\Source\meerk40t_meerk40t\meerk40t\gui\laserrender.py", line 497, in make_raster
gc = wx.GraphicsContext.Create(dc)
wx._core.wxAssertionError: C++ assertion "bmp.IsOk()" failed at ..\..\src\msw\graphics.cpp(2575) in wxGDIPlusRenderer::CreateContext(): Should select a bitmap before creating wxGCDC
Traceback (most recent call last):
File "D:\MeerK40t-64\Source\meerk40t_meerk40t\meerk40t\gui\simulation.py", line 510, in open_simulator
kernel.console(
File "D:\MeerK40t-64\Source\meerk40t_meerk40t\meerk40t\kernel.py", line 2942, in console
self._console_parse(command, channel=self._console_channel)
File "D:\MeerK40t-64\Source\meerk40t_meerk40t\meerk40t\kernel.py", line 3021, in _console_parse
data, remainder, input_type = command_funct(
File "D:\MeerK40t-64\Source\meerk40t_meerk40t\meerk40t\kernel.py", line 4336, in inner
returned = func(command=command, channel=channel, **ik, **kwargs)
File "D:\MeerK40t-64\Source\meerk40t_meerk40t\meerk40t\core\planner.py", line 1098, in plan_optimize
data.execute()
File "D:\MeerK40t-64\Source\meerk40t_meerk40t\meerk40t\core\planner.py", line 335, in execute
cmd()
File "D:\MeerK40t-64\Source\meerk40t_meerk40t\meerk40t\core\planner.py", line 652, in actualize
if op.type == "op raster":
AttributeError: 'CutCode' object has no attribute 'type'
Traceback (most recent call last):
File "D:\MeerK40t-64\Source\meerk40t_meerk40t\meerk40t\kernel.py", line 2538, in run
func_result = func(*args)
File "D:\MeerK40t-64\Source\meerk40t_meerk40t\meerk40t\core\spoolers.py", line 404, in run
self._execute_program(program)
File "D:\MeerK40t-64\Source\meerk40t_meerk40t\meerk40t\core\spoolers.py", line 373, in _execute_program
for p in program():
TypeError: 'RefElemNode' object is not callable
Traceback (most recent call last):
File "D:\MeerK40t-64\Source\meerk40t_meerk40t\meerk40t\gui\executejob.py", line 299, in on_button_start
self.context("plan%s optimize\n" % self.plan_name)
File "D:\MeerK40t-64\Source\meerk40t_meerk40t\meerk40t\kernel.py", line 193, in __call__
return self._kernel.console(data)
File "D:\MeerK40t-64\Source\meerk40t_meerk40t\meerk40t\kernel.py", line 2942, in console
self._console_parse(command, channel=self._console_channel)
File "D:\MeerK40t-64\Source\meerk40t_meerk40t\meerk40t\kernel.py", line 3021, in _console_parse
data, remainder, input_type = command_funct(
File "D:\MeerK40t-64\Source\meerk40t_meerk40t\meerk40t\kernel.py", line 4336, in inner
returned = func(command=command, channel=channel, **ik, **kwargs)
File "D:\MeerK40t-64\Source\meerk40t_meerk40t\meerk40t\core\planner.py", line 1098, in plan_optimize
data.execute()
File "D:\MeerK40t-64\Source\meerk40t_meerk40t\meerk40t\core\planner.py", line 335, in execute
cmd()
File "D:\MeerK40t-64\Source\meerk40t_meerk40t\meerk40t\core\planner.py", line 579, in optimize_travel
self.plan[i] = short_travel_cutcode(
File "D:\MeerK40t-64\Source\meerk40t_meerk40t\meerk40t\core\planner.py", line 1598, in short_travel_cutcode
start_length = context.length_travel(True)
File "D:\MeerK40t-64\Source\meerk40t_meerk40t\meerk40t\core\cutcode.py", line 415, in length_travel
distance += abs(complex(self.start) - complex(cutcode[0].start))
TypeError: complex() first argument must be a string or a number, not 'tuple'
So it's that time again, 0.8.0 may or may not have a bunch of small problems but should be the next version. But, to spare as much time as we can patching things though there might be easier ways of doing that. I'm hoping we can switch the version branches up somewhat soonish.
https://github.com/meerk40t/meerk40t/pull/675
service
in console.service <domain> start <name> <index>
for example `service device start moshi 1 will begin a new moshi device.attach()
anddetach()
repeatedly andshutdown()
once.. And the lifecycle of a module is that it's opened and then closed at which point it's deleted.Service
,Module
and theKernel
can have delegates, these delegates get their@lookup_listener
and@signal_listener
flags methods attached in the kernel until the lifecycle of the module is eithershutdown()
,deactivated()
orclosed()
add_module_delegate
to a module it will have theopen()
andclosed()
lifecycle events called on those objects to match the lifecycle of the object. This will be done at registration of the delegate if the object lifecycle is already at a mature stage.@signal_listener
to have them listen and unlisten to those signals during their lifecycle.@lookup_listener
which announces when things are changed, this could be a new button registered dynamically or it could be a service is switched to a different one with different buttons.Modifier
as a kernel object was dropped and consequently the Modifier.camera didn't work. There wasn't an easy way to transition this stuff over so it was briefly removed while I solve the kernel change. When it's spun back off it can have gui elements too, since the camera gui is now registered by the plugin more directly.The m2nano driver should still cut correctly. The tcp driver for the m2nano likely won't currently work. There is an unsightly lag starting the program up where it flickers for the OS being built.
I tend to need to know where the weak spots are. I can fix TCP and maybe test GRBL TCP a little bit. Build a NewDeviceWizard but then I'm out of rough edges that need to be fixed.