|
5 | 5 |
|
6 | 6 |
|
7 | 7 | class DuetAPIWrapper(DuetAPI): |
8 | | - def get_coords(self): |
| 8 | + def emergency_stop(self) -> None: |
| 9 | + self.send_code('M112') |
| 10 | + self.send_code('M999') |
| 11 | + |
| 12 | + def start_print(self, filename: str) -> Dict: |
| 13 | + return self.send_code(f'M32 "{filename}"') |
| 14 | + |
| 15 | + def pause_print(self) -> Dict: |
| 16 | + return self.send_code(f'M25') |
| 17 | + |
| 18 | + def stop_print(self, leave_heaters: bool = True) -> Dict: |
| 19 | + status = self.get_status() |
| 20 | + if status == 'idle': |
| 21 | + return |
| 22 | + if not status == 'paused': |
| 23 | + self.pause_print() |
| 24 | + |
| 25 | + code = 'M0' |
| 26 | + if leave_heaters: |
| 27 | + code += ' H1' |
| 28 | + return self.send_code(code) |
| 29 | + |
| 30 | + def get_coords(self) -> Dict: |
9 | 31 | model = self.get_model() |
10 | 32 | axes = model['move']['axes'] |
11 | 33 | ret = {} |
12 | 34 | for i in range(0, len(axes)): |
13 | 35 | ret[axes[i]['letter']] = axes[i]['userPosition'] |
14 | 36 | return(ret) |
15 | 37 |
|
16 | | - def get_layer(self): |
| 38 | + def get_layer(self) -> int: |
17 | 39 | model = self.get_model() |
18 | 40 | layer = model['job']['layer'] |
19 | 41 | if not layer: |
20 | 42 | layer = 0 |
21 | 43 | return(layer) |
22 | 44 |
|
23 | | - def get_num_extruders(self): |
| 45 | + def get_num_extruders(self) -> int: |
24 | 46 | model = self.get_model() |
25 | 47 | extruders = model['move']['extruders'] |
26 | 48 | return len(extruders) |
27 | 49 |
|
28 | | - def get_num_tools(self): |
| 50 | + def get_num_tools(self) -> int: |
29 | 51 | model = self.get_model() |
30 | 52 | tools = model['tools'] |
31 | 53 | return len(tools) |
32 | 54 |
|
33 | | - def get_status(self): |
| 55 | + def get_status(self) -> str: |
34 | 56 | model = self.get_model() |
35 | 57 | status = model['state']['status'] |
36 | 58 | return status |
37 | 59 |
|
38 | | - def get_temperatures(self): |
| 60 | + def get_temperatures(self) -> List[Dict]: |
39 | 61 | model = self.get_model() |
40 | 62 | sensors = model['sensors']['analog'] |
41 | 63 | return sensors |
| 64 | + |
| 65 | + def get_current_tool(self) -> int: |
| 66 | + model = self.get_model() |
| 67 | + tool = model['state']['currentTool'] |
| 68 | + return tool |
| 69 | + |
| 70 | + def get_messagebox(self) -> Dict: |
| 71 | + model = self.get_model() |
| 72 | + messagebox = model['state']['messageBox'] |
| 73 | + return messagebox |
| 74 | + |
| 75 | + def acknowledge_message(self, response: int = 0) -> Dict: |
| 76 | + return self.send_code(f'M292 P{response}') |
0 commit comments