본문 바로가기

3D Printer/OctoPrint

OctoPrint Plugin 만들기 #5 (설정값 저장하기)

옥토 프린트 플러그인 만들기 (챔버 매니저)


□ 설정값 저장하기 (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