옥토 프린트 플러그인 만들기 (챔버 매니저)
□ 설정값 저장하기 (Settingsplugin)
octoprint.plugin.SettingsPlugin 활용
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 | # coding=utf-8 import octoprint.plugin class ChamberManagerPlugin(octoprint.plugin.StartupPlugin, octoprint.plugin.TemplatePlugin, octoprint.plugin.SettingsPlugin, octoprint.plugin.BlueprintPlugin, octoprint.plugin.AssetPlugin): tempControlMode = None tempControlTarget = None doorVentilMaxPos = None doorVentilMinPos = None doorFilterMaxPos = None doorFilterMinPos = None doorControlPosValue = None doorControlAngle = None fanControlFilterSpeed = None fanControlVentilSpeed = None lightControlMode = None lightControlSensitive = None def on_after_startup(self): try: serial_port = self._settings.get(["serial_port"]) serial_baudrate = self._settings.get(["serial_baudrate"]) serial_timeout = self._settings.get(["serial_timeout"]) tempControlMode = self._settings.get(["tempControlMode"]) tempControlTarget = self._settings.get(["tempControlTarget"]) doorVentilMaxPos = self._settings.get(["doorVentilMaxPos"]) doorVentilMinPos = self._settings.get(["doorVentilMinPos"]) doorFilterMaxPos = self._settings.get(["doorFilterMaxPos"]) doorFilterMinPos = self._settings.get(["doorFilterMinPos"]) doorControlPosValue = self._settings.get(["doorControlPosValue"]) doorControlAngle = self._settings.get(["doorControlAngle"]) fanControlFilterSpeed = self._settings.get(["fanControlFilterSpeed"]) fanControlVentilSpeed = self._settings.get(["fanControlVentilSpeed"]) lightControlMode = self._settings.get(["lightControlMode"]) lightControlSensitive = self._settings.get(["lightControlSensitive"]) except Exception as e: self._logger.error(e) def get_settings_defaults(self): return dict( serial_port = '/dev/ttyS0', serial_baudrate = 115200, serial_timeout = 0.8, tempControlMode = 'PID', tempControlTarget = 26, doorVentilMaxPos = 135, doorVentilMinPos = 10, doorFilterMaxPos = 137, doorFilterMinPos = 47, doorControlPosValue = 'OPEN', doorControlAngle = 90, fanControlFilterSpeed = 100, fanControlVentilSpeed = 100, lightControlMode = 'Auto', lightControlSensitive = 100 ) __plugin_implementation__ = ChamberManagerPlugin() | cs |