Commit graph

25 commits

Author SHA1 Message Date
Gina Häußge
a996f7b6fb New hook octoprint.filemanager.preprocessor
Allows preprocessing files that are uploaded or otherwise added to the system (e.g. through slicing) before their contents are saved to disk
2015-04-17 14:45:58 +02:00
Gina Häußge
ea1fe29a5e Fixed unit tests again 2015-04-16 13:31:41 +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
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
22c73d831a More cleanup for the feedback controls
Preprocessing for better performancy, unit tests for preprocessing, controls don't need a type anymore (makes things way less complicated and repetitive)
2015-03-10 21:49:18 +01:00
Gina Häußge
e79fd99a41 Fixed comment handling in GCODE lines, escapes are no longer stripped
A good example while late night commits can sometimes be a bad idea.
2015-03-06 11:37:06 +01:00
Gina Häußge
975cc5ccfc GCODE scripts are now Jinja templates
Refactored some things in octoprint.util.comm and octoprint.settings, added migration function to get users of the devel version up to date with their gcode scripts. Migration function will be removed again one week from now.
2015-03-06 01:42:09 +01:00
Gina Häußge
333c9ba205 Refactoring of "printer" modules
- renamed methods from camelCase to snake_case
- renamed callback mathods from comm module from camelCase to snake_case
- extracted and documented public interface to be used by plugins
- extracted callback interface to be implemented by subscribed callbacks to printer
 - moved standard implementation to custom package
 - moved time estimation classes to custom package
2015-03-03 17:01:33 +01:00
Gina Häußge
e702736455 Updated/fixed unit tests and travis configuration 2015-03-02 12:58:24 +01:00
Gina Häußge
84c32a3cd9 Unit tests for octoprint.plugin.PluginSettings
And some small fixes of that class in the process...
2015-02-27 10:29:08 +01:00
Gina Häußge
28738a5179 More documentation and unit tests 2015-02-18 17:16:37 +01:00
Gina Häußge
be9021d377 Some more unit tests for the plugin manager 2015-02-05 19:20:51 +01:00
Gina Häußge
23387d6e48 More work on the template refactoring and new template plugin types 2015-01-15 11:06:59 +01:00
Gina Häußge
dc2318f404 Use the rolling average of the last n estimations instead of the current estimation for reporting print time left 2014-12-18 12:01:01 +01:00
Gina Häußge
014d39c11d Fetch estimated print time from cura slicing result, create print time statistics per printer profile, interpolate between stats and live estimation during printing for print time left 2014-12-17 17:31:30 +01:00
Gina Häußge
5ac908afd4 Pauses in the print job are now cleaned from the basis for print time estimation, also switched to a rolling window approach for determining when estimation becomes stable 2014-12-16 13:27:31 +01:00
Gina Häußge
f2562500a3 Print time estimation is now not displayed until it becomes somewhat stable 2014-12-12 23:38:57 +01:00
Gina Häußge
2ea1b9df6c Fully switched to printer profiles 2014-12-02 11:30:00 +01:00
Gina Häußge
f8955c0d1b Fix of file type detection 2014-10-29 12:17:26 +01:00
Gina Häußge
71d73c6562 Do not try to slice on local slicers when printing
Since slicing takes a lot of resources, that might lead to quality loss for the print job.
2014-10-21 14:14:00 +02:00
Gina Häußge
cd973adedf Improved slicing and file management
- File management is prepared to support folders (UI still lacking support)
- STL files are now first class citizens
  - can be managed via the file list (and filtered from it)
  - can be sliced on demand
- Slicing now happens via plugins
- Added Cura plugin
  - uses CuraEngine directly instead of full Cura installation
  - Cura profile importer for importing profiles from regular Cura installs via settings dialog
  - TODO: UI for editing profiles
- API for slicing and slicing profile management
2014-10-06 17:34:07 +02:00
Gina Häußge
08e4c05129 Plugins can now also be retrieved via entry_points, also added EventPlugin and afterStartup handler in StartupPlugin 2014-09-10 15:46:14 +02:00
Gina Häußge
e1366ef90f First experiments with a plugin system, service discovery and connectivity ensurance 2014-09-05 17:11:11 +02:00
Gina Häußge
097e398efc Fixed test (did not yet match new return value format) 2013-12-21 16:15:22 +01:00
Gina Häußge
fe37ab3cd8 Refactored server.py into submodules, extracted ajax and rest api into their own blueprints, and while doing all this also took care of #291 2013-10-28 22:08:36 +01:00