| 899 | |
| 900 | class StateMonitor(object): |
| 901 | def __init__(self, ratelimit, updateCallback, addTemperatureCallback, addLogCallback, addMessageCallback): |
| 902 | self._ratelimit = ratelimit |
| 903 | self._updateCallback = updateCallback |
| 904 | self._addTemperatureCallback = addTemperatureCallback |
| 905 | self._addLogCallback = addLogCallback |
| 906 | self._addMessageCallback = addMessageCallback |
| 907 | |
| 908 | self._state = None |
| 909 | self._jobData = None |
| 910 | self._gcodeData = None |
| 911 | self._sdUploadData = None |
| 912 | self._currentZ = None # This should probably be deprecated |
| 913 | self._progress = None |
| 914 | self._stop = False |
| 915 | self._currentTool = 0 |
| 916 | self._printingSpeed = 100 |
| 917 | self._printingFlow = 100 |
| 918 | self._offsets = {} |
| 919 | |
| 920 | self._changeEvent = threading.Event() |
| 921 | |
| 922 | self._lastUpdate = time.time() |
| 923 | self._worker = threading.Thread(target=self._work) |
| 924 | self._worker.daemon = True |
| 925 | self._worker.start() |
| 926 | |
| 927 | def reset(self, state=None, jobData=None, progress=None, currentZ=None): |
| 928 | self.setState(state) |