Commit graph

2332 commits

Author SHA1 Message Date
Mark Walker
e4d8d67f65 Add a plugin hook for opening the serial port
This hook allows the plugin to create the serial port object (or pass to
the next hook or the builtin serial port handler) which allows for
serial communication filtering or a different communication transport.

Use @foosel's code to use the same loop for hooks as well as the
builtin.
2015-04-15 14:51:03 -07:00
Gina Häußge
c5484fe139 [Docs] Forgot to check in an image 2015-04-15 18:57:30 +02:00
Gina Häußge
d5e7149f99 Merge branch 'devel' into dev/pluginLifecycleMgmt 2015-04-15 15:30:26 +02:00
Gina Häußge
29e2bbd2a7 Undo: Changes to make behaviour on mobile safari better caused issues with everything else 2015-04-15 15:30:11 +02:00
Gina Häußge
c7146cf432 Merge branch 'devel' into dev/pluginLifecycleMgmt 2015-04-15 14:20:15 +02:00
Gina Häußge
d58a2fd4c6 Renamed temperature and SD status timeout to interval 2015-04-15 14:19:41 +02:00
Gina Häußge
5804825dc3 Fix: Made initial connection to printer a bit more responsive
Having to wait for the first serial timeout before sending the first M105 even when not waiting for seeing a "start" caused unnecessary wait times for reaching the "Operational" state.
2015-04-15 09:14:36 +02:00
Gina Häußge
24495d046f Renamed temperature and SD status timeout to interval 2015-04-15 09:04:54 +02:00
Gina Häußge
b61996c761 __plugin_init__ => __plugin_load__ 2015-04-14 18:01:17 +02:00
Gina Häußge
2aa31024e6 Finalizing first version of plugin lifecycle management 2015-04-14 17:55:46 +02:00
Gina Häußge
fc00ef032e Merge branch 'devel' into dev/pluginLifecycleMgmt 2015-04-13 18:24:20 +02:00
Gina Häußge
e8c085b89c Removed dependency on monotime (accidental leftover) 2015-04-13 18:22:26 +02:00
Gina Häußge
41c10a759a Better behaviour of the settings dialog on low-width devices
Navigation and content also now scroll independently from each other.

Compare #823.
2015-04-13 17:33:06 +02:00
Gina Häußge
dd3455d598 Merge branch 'devel' of https://github.com/webmonger/OctoPrint into webmonger-devel 2015-04-13 13:21:23 +02:00
Mark Walker
88bc0b7a92 Show .gcode .gco and .g files in the SD file list
(cherry picked from commit e91b103)
2015-04-13 13:13:36 +02:00
Gina Häußge
f480e29342 Fixed implementation/docs mismatch: header_addon -> template_header
Closes #848, thanks to @markwal for spotting and reporting
2015-04-13 12:53:19 +02:00
Mark Walker
b25443d142 foosel/Octoprint #841: Can't login using IE
Add computed property "name" to function objects if not provided by the
browser, to avoid dropping out of main.js before it is finished.
(cherry picked from commit 68215c6)
2015-04-13 12:36:12 +02:00
Gina Häußge
354e064969 Only resend next line after first resend is through
Tracking the "ok" attached to a resend is necessary in order to make sure that it does not trigger the resend of the next line after the requested one right after, causing resend loops in some cases, e.g. "> 100", "> 101" , "< rs 100", "ok", "> 100", "< expected 100, got 101, rs 100" -- here the last error from the firmware could not be processed as "false negative" correctly (101 was already sent to the printer when it detected the error for 100, so this error just needs to be ignored) since the resend flag was already cleared due to line 100 and 101 having been enqueued, 100 in the resend handler, 101 due to the following ok. This patch fixes the latter, thus solving the problem.
2015-04-13 12:24:43 +02:00
Gina Häußge
594636e0e3 Make sure to operate on unicode when sanitzing sd filenames
Should fix #834
2015-04-13 12:24:42 +02:00
Gina Häußge
97aecdf4cf First throw at working plugin lifecycle management
Plugins may be enabled and disabled during runtime. If they are of types which allow hot loading, this will be done. Otherwise they will be marked as pending and updated after a restart. Same for installation and uninstallation.
2015-04-02 23:02:42 +02:00
Gina Häußge
a34cbc58dc Merge pull request #828 from Voxel8/update-selected-event
update FileSelected event to be more consistent with other events
2015-04-02 22:14:12 +02:00
Jack Minardi
5eface585d update docs to reflect new payload data 2015-04-02 14:53:00 -04:00
Gina Häußge
f0b48a6b43 Merge branch 'devel' into dev/pluginLifecycleMgmt
Conflicts:
	src/octoprint/plugin/core.py
2015-04-01 11:55:48 +02:00
Gina Häußge
0ed8afd999 Fix: Validate plugins separately from constructor
Otherwise plugins that inject data via __plugin_init__ won't work properly
2015-04-01 11:54:11 +02:00
Gina Häußge
68fa2f9fa3 WIP 2015-04-01 11:51:08 +02:00
Gina Häußge
3ebf5e5240 Merge branch 'devel' into dev/pluginLifecycleMgmt
Conflicts:
	src/octoprint/plugin/core.py
2015-04-01 11:02:05 +02:00
Gina Häußge
66e3ee28b6 Started work on plugin lifecycle management
Plugins may be loaded, unloaded, activated and deactivated. Errors while trying to load a plugin or initializing an implementation will only result in it staying deactive but registered in the system, allowing it to be further processed e.g. by a plugin manager
2015-04-01 10:55:13 +02:00
Gina Häußge
8a41cef00b [Doc] Restructured the plugins section so it makes more sense 2015-03-31 20:08:32 +02:00
Gina Häußge
5c228e6071 [Doc] Big overhaul of TemplatePlugin docs & component ordering 2015-03-31 18:23:18 +02:00
Gina Häußge
8a3993ca59 To determine order of template components, first use user order, then default order, then type ordering
Also moved suffix calculation for template keys into _process_template_config
2015-03-31 18:22:38 +02:00
Gina Häußge
c9f5476588 Settings now allow providing a custom "config" dict to work on
Can be used to always retrieve the defaults (by providing an empty config dict) or to utilize the get method with other settings than the system settings.
2015-03-31 18:20:44 +02:00
Gina Häußge
2d54ab5fcf Fix: identifer => identifier (is it really that hard to type foosel?) 2015-03-30 22:08:49 +02:00
Gina Häußge
86cd162784 Fix: get_implementations now returns a list instead of a dict 2015-03-30 22:03:36 +02:00
Gina Häußge
8ff0096eb6 Fix & Docs: Plugins may only have one mixin implementation
Multiple mixins are allowed of course. Allowing multiple implementations lead to too many problems due to plugin names for referring to the APIs of SimpleApiPlugins or the assets of AssetPlugins.

 Hence __plugin_implementations__ has been deprecated in favor of __plugin_implementation__. The plugin subsystem will automatically copy the first implementation from __plugin_implementations__ to __plugin_implementation__ and log a deprecation warning.

 Adjusted documentation accordingly. Also added docs for helpers.
2015-03-30 16:50:06 +02:00
Gina Häußge
79336ca108 Fix: Improved handling of data coming in from the printer
Hopefully closes #829
2015-03-30 13:15:52 +02:00
Jack Minardi
2478b73ee5 update FileSelected event to be more consistent with other events 2015-03-29 23:44:19 -04:00
Gina Häußge
2fa0673e0b Fix: javascript custom controls should now work again 2015-03-27 17:10:48 +01:00
Gina Häußge
d62ac5239b [Doc] PluginSettings.getFoo -> PluginSettings.get_foo, also fixed an example for settings preprocessors 2015-03-27 11:18:55 +01:00
Gina Häußge
9b3daeea01 Exception.message => str(Exception) 2015-03-26 12:04:05 +01:00
Gina Häußge
fb2719ce8a [Doc] let's see if moving the figures out of the tables solves the PDF issue 2015-03-26 10:55:51 +01:00
Gina Häußge
94b207257e [Doc] ok, that was not it, reverting and trying something else 2015-03-26 10:24:33 +01:00
Gina Häußge
1b6b0181c5 [Doc] quick test if the whitespace enabled code-block causes the PDF build errors on RTD or something else 2015-03-26 10:19:33 +01:00
Gina Häußge
45bf398494 [Docs] Added an example for octoprint.comm.protocol.action handler
Used same example to illustrate hook handlers within mixin implementations.
2015-03-25 19:30:49 +01:00
Gina Häußge
974e19fa3a Removed version numbers from bundled plugins
Missing version numbers will not be displayed as "(unknown)" anymore, and bundled plugins don't necessarily need their own version.
2015-03-25 18:56:59 +01:00
Gina Häußge
954397b6a6 Changed logging of plugin subsystem slightly
Detected plugins are now logged in a better readable way and with additional information.

Also marked folder for bundled plugins as bundled - forgot to do that earlier.
2015-03-25 18:56:11 +01:00
Gina Häußge
7bba22c5d2 [Doc] Include example for octoprint.comm.protocol.scripts hook 2015-03-25 18:45:32 +01:00
Gina Häußge
c6e4057add [Docs] Documented octoprint.comm.protocol.gcode hook
Experimenting with including examples stored on github, let's see if RTD likes that.
2015-03-25 18:24:51 +01:00
Gina Häußge
af7d2bb8c7 Utilize adaptive interval for temperature and sd status polling
This way user adjustments to those timeouts via the settings
will take immediate effect even while the connection to the
printer is already established.
2015-03-25 17:27:59 +01:00
Gina Häußge
50862668b1 RepeatedTimer now allows adaptive interval and dynamic loop condition 2015-03-25 17:24:12 +01:00
Gina Häußge
18dd1659da Fixed a typo in the RepeatedTimer docs 2015-03-25 16:52:09 +01:00