@duet3d/objectmodel 3.7.0-alpha.5 → 3.7.0-alpha.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (214) hide show
  1. package/dist/ObjectModel.js +24 -21
  2. package/dist/boards/directDisplay/DirectDisplayScreen.js +4 -1
  3. package/dist/boards/directDisplay/DirectDisplayScreenBase.js +4 -1
  4. package/dist/boards/directDisplay/DirectDisplayScreenST7567.js +4 -1
  5. package/dist/boards/directDisplay/index.js +5 -2
  6. package/dist/boards/index.js +6 -3
  7. package/dist/deprecations.json +18 -0
  8. package/dist/directories/index.js +4 -1
  9. package/dist/enums.json +281 -0
  10. package/dist/fans/index.js +4 -1
  11. package/dist/heat/Heater.js +7 -4
  12. package/dist/heat/HeaterModel.js +4 -1
  13. package/dist/heat/HeaterMonitor.js +4 -1
  14. package/dist/heat/index.js +6 -3
  15. package/dist/index.js +4 -1
  16. package/dist/inputs/InputChannel.js +5 -2
  17. package/dist/job/Build.js +5 -2
  18. package/dist/job/GCodeFileInfo.js +7 -4
  19. package/dist/job/index.js +7 -4
  20. package/dist/ledStrips/index.js +4 -1
  21. package/dist/limits/index.js +4 -1
  22. package/dist/messages/index.js +4 -1
  23. package/dist/move/Axis.js +7 -4
  24. package/dist/move/DriverId.js +4 -1
  25. package/dist/move/Extruder.d.ts +1 -1
  26. package/dist/move/Extruder.js +7 -4
  27. package/dist/move/InputShaping.js +4 -1
  28. package/dist/move/Microstepping.js +4 -1
  29. package/dist/move/MotionSystem.js +6 -3
  30. package/dist/move/MoveCalibration.js +4 -1
  31. package/dist/move/MoveCompensation.js +4 -1
  32. package/dist/move/index.js +12 -9
  33. package/dist/move/kinematics/DeltaKinematics.js +5 -2
  34. package/dist/move/kinematics/HangprinterKinematics.js +34 -1
  35. package/dist/move/kinematics/KinematicsBase.js +4 -1
  36. package/dist/move/kinematics/PolarKinematics.js +34 -1
  37. package/dist/move/kinematics/index.js +31 -6
  38. package/dist/network/NetworkInterface.d.ts +1 -1
  39. package/dist/network/NetworkInterface.js +6 -3
  40. package/dist/network/index.js +6 -3
  41. package/dist/plugins/PluginManifest.js +5 -2
  42. package/dist/plugins/index.js +4 -1
  43. package/dist/sbc/CPU.js +4 -1
  44. package/dist/sbc/Memory.js +4 -1
  45. package/dist/sbc/dsf/HttpEndpoint.js +4 -1
  46. package/dist/sbc/dsf/UserSession.js +4 -1
  47. package/dist/sbc/dsf/index.js +7 -4
  48. package/dist/sbc/index.js +7 -4
  49. package/dist/sensors/AnalogSensor.js +4 -1
  50. package/dist/sensors/Endstop.js +4 -1
  51. package/dist/sensors/FilamentMonitors/FilamentMonitorBase.js +4 -1
  52. package/dist/sensors/FilamentMonitors/LaserFilamentMonitor.js +4 -1
  53. package/dist/sensors/FilamentMonitors/PulsedFilamentMonitor.js +38 -2
  54. package/dist/sensors/FilamentMonitors/RotatingMagnetFilamentMonitor.js +4 -1
  55. package/dist/sensors/FilamentMonitors/index.js +29 -4
  56. package/dist/sensors/Probe.js +4 -1
  57. package/dist/sensors/index.js +9 -6
  58. package/dist/spindles/index.js +4 -1
  59. package/dist/src/ModelCollection.d.ts +36 -0
  60. package/dist/src/ModelCollection.js +108 -0
  61. package/dist/src/ModelDictionary.d.ts +44 -0
  62. package/dist/src/ModelDictionary.js +109 -0
  63. package/dist/src/ModelObject.d.ts +55 -0
  64. package/dist/src/ModelObject.js +237 -0
  65. package/dist/src/ModelSet.d.ts +11 -0
  66. package/dist/src/ModelSet.js +15 -0
  67. package/dist/src/ObjectModel.d.ts +47 -0
  68. package/dist/src/ObjectModel.js +57 -0
  69. package/dist/src/boards/Driver.d.ts +18 -0
  70. package/dist/src/boards/Driver.js +37 -0
  71. package/dist/src/boards/directDisplay/DirectDisplayScreen.d.ts +6 -0
  72. package/dist/src/boards/directDisplay/DirectDisplayScreen.js +21 -0
  73. package/dist/src/boards/directDisplay/DirectDisplayScreenBase.d.ts +11 -0
  74. package/dist/src/boards/directDisplay/DirectDisplayScreenBase.js +19 -0
  75. package/dist/src/boards/directDisplay/DirectDisplayScreenST7567.d.ts +9 -0
  76. package/dist/src/boards/directDisplay/DirectDisplayScreenST7567.js +26 -0
  77. package/dist/src/boards/directDisplay/index.d.ts +20 -0
  78. package/dist/src/boards/directDisplay/index.js +59 -0
  79. package/dist/src/boards/index.d.ts +59 -0
  80. package/dist/src/boards/index.js +103 -0
  81. package/dist/src/directories/index.d.ts +11 -0
  82. package/dist/src/directories/index.js +21 -0
  83. package/dist/src/fans/index.d.ts +19 -0
  84. package/dist/src/fans/index.js +33 -0
  85. package/dist/src/heat/Heater.d.ts +30 -0
  86. package/dist/src/heat/Heater.js +41 -0
  87. package/dist/src/heat/HeaterModel.d.ts +21 -0
  88. package/dist/src/heat/HeaterModel.js +35 -0
  89. package/dist/src/heat/HeaterMonitor.d.ts +19 -0
  90. package/dist/src/heat/HeaterMonitor.js +31 -0
  91. package/dist/src/heat/index.d.ts +22 -0
  92. package/dist/src/heat/index.js +46 -0
  93. package/dist/src/index.d.ts +26 -0
  94. package/dist/src/index.js +57 -0
  95. package/dist/src/inputs/CodeChannel.d.ts +18 -0
  96. package/dist/src/inputs/CodeChannel.js +22 -0
  97. package/dist/src/inputs/Compatibility.d.ts +10 -0
  98. package/dist/src/inputs/Compatibility.js +14 -0
  99. package/dist/src/inputs/InputChannel.d.ts +32 -0
  100. package/dist/src/inputs/InputChannel.js +44 -0
  101. package/dist/src/inputs/index.d.ts +3 -0
  102. package/dist/src/inputs/index.js +19 -0
  103. package/dist/src/job/Build.d.ts +15 -0
  104. package/dist/src/job/Build.js +29 -0
  105. package/dist/src/job/GCodeFileInfo.d.ts +19 -0
  106. package/dist/src/job/GCodeFileInfo.js +29 -0
  107. package/dist/src/job/ThumbnailInfo.d.ts +15 -0
  108. package/dist/src/job/ThumbnailInfo.js +23 -0
  109. package/dist/src/job/index.d.ts +45 -0
  110. package/dist/src/job/index.js +78 -0
  111. package/dist/src/ledStrips/index.d.ts +13 -0
  112. package/dist/src/ledStrips/index.js +24 -0
  113. package/dist/src/limits/index.d.ts +32 -0
  114. package/dist/src/limits/index.js +42 -0
  115. package/dist/src/messages/index.d.ts +13 -0
  116. package/dist/src/messages/index.js +30 -0
  117. package/dist/src/move/Axis.d.ts +71 -0
  118. package/dist/src/move/Axis.js +82 -0
  119. package/dist/src/move/DriverId.d.ts +10 -0
  120. package/dist/src/move/DriverId.js +52 -0
  121. package/dist/src/move/Extruder.d.ts +39 -0
  122. package/dist/src/move/Extruder.js +57 -0
  123. package/dist/src/move/InputShaping.d.ts +19 -0
  124. package/dist/src/move/InputShaping.js +30 -0
  125. package/dist/src/move/KeepoutZone.d.ts +10 -0
  126. package/dist/src/move/KeepoutZone.js +21 -0
  127. package/dist/src/move/Microstepping.d.ts +6 -0
  128. package/dist/src/move/Microstepping.js +16 -0
  129. package/dist/src/move/MotionSystem.d.ts +20 -0
  130. package/dist/src/move/MotionSystem.js +30 -0
  131. package/dist/src/move/MoveCalibration.d.ts +11 -0
  132. package/dist/src/move/MoveCalibration.js +25 -0
  133. package/dist/src/move/MoveCompensation.d.ts +30 -0
  134. package/dist/src/move/MoveCompensation.js +50 -0
  135. package/dist/src/move/index.d.ts +80 -0
  136. package/dist/src/move/index.js +120 -0
  137. package/dist/src/move/kinematics/CoreKinematics.d.ts +9 -0
  138. package/dist/src/move/kinematics/CoreKinematics.js +31 -0
  139. package/dist/src/move/kinematics/DeltaKinematics.d.ts +20 -0
  140. package/dist/src/move/kinematics/DeltaKinematics.js +43 -0
  141. package/dist/src/move/kinematics/HangprinterKinematics.d.ts +9 -0
  142. package/dist/src/move/kinematics/HangprinterKinematics.js +61 -0
  143. package/dist/src/move/kinematics/KinematicsBase.d.ts +37 -0
  144. package/dist/src/move/kinematics/KinematicsBase.js +59 -0
  145. package/dist/src/move/kinematics/PolarKinematics.d.ts +12 -0
  146. package/dist/src/move/kinematics/PolarKinematics.js +59 -0
  147. package/dist/src/move/kinematics/ScaraKinematics.d.ts +14 -0
  148. package/dist/src/move/kinematics/ScaraKinematics.js +29 -0
  149. package/dist/src/move/kinematics/index.d.ts +14 -0
  150. package/dist/src/move/kinematics/index.js +98 -0
  151. package/dist/src/network/NetworkInterface.d.ts +46 -0
  152. package/dist/src/network/NetworkInterface.js +59 -0
  153. package/dist/src/network/index.d.ts +14 -0
  154. package/dist/src/network/index.js +38 -0
  155. package/dist/src/plugins/PluginManifest.d.ts +67 -0
  156. package/dist/src/plugins/PluginManifest.js +128 -0
  157. package/dist/src/plugins/index.d.ts +9 -0
  158. package/dist/src/plugins/index.js +33 -0
  159. package/dist/src/sbc/CPU.d.ts +8 -0
  160. package/dist/src/sbc/CPU.js +18 -0
  161. package/dist/src/sbc/Memory.d.ts +6 -0
  162. package/dist/src/sbc/Memory.js +16 -0
  163. package/dist/src/sbc/dsf/HttpEndpoint.d.ts +19 -0
  164. package/dist/src/sbc/dsf/HttpEndpoint.js +30 -0
  165. package/dist/src/sbc/dsf/UserSession.d.ts +18 -0
  166. package/dist/src/sbc/dsf/UserSession.js +30 -0
  167. package/dist/src/sbc/dsf/index.d.ts +15 -0
  168. package/dist/src/sbc/dsf/index.js +39 -0
  169. package/dist/src/sbc/index.d.ts +19 -0
  170. package/dist/src/sbc/index.js +43 -0
  171. package/dist/src/sensors/AnalogSensor.d.ts +59 -0
  172. package/dist/src/sensors/AnalogSensor.js +71 -0
  173. package/dist/src/sensors/Endstop.d.ts +15 -0
  174. package/dist/src/sensors/Endstop.js +26 -0
  175. package/dist/src/sensors/FilamentMonitors/Duet3DFilamentMonitor.d.ts +11 -0
  176. package/dist/src/sensors/FilamentMonitors/Duet3DFilamentMonitor.js +17 -0
  177. package/dist/src/sensors/FilamentMonitors/FilamentMonitorBase.d.ts +33 -0
  178. package/dist/src/sensors/FilamentMonitors/FilamentMonitorBase.js +45 -0
  179. package/dist/src/sensors/FilamentMonitors/LaserFilamentMonitor.d.ts +22 -0
  180. package/dist/src/sensors/FilamentMonitors/LaserFilamentMonitor.js +50 -0
  181. package/dist/src/sensors/FilamentMonitors/PulsedFilamentMonitor.d.ts +22 -0
  182. package/dist/src/sensors/FilamentMonitors/PulsedFilamentMonitor.js +82 -0
  183. package/dist/src/sensors/FilamentMonitors/RotatingMagnetFilamentMonitor.d.ts +22 -0
  184. package/dist/src/sensors/FilamentMonitors/RotatingMagnetFilamentMonitor.js +50 -0
  185. package/dist/src/sensors/FilamentMonitors/index.d.ts +12 -0
  186. package/dist/src/sensors/FilamentMonitors/index.js +77 -0
  187. package/dist/src/sensors/Probe.d.ts +51 -0
  188. package/dist/src/sensors/Probe.js +66 -0
  189. package/dist/src/sensors/index.d.ts +21 -0
  190. package/dist/src/sensors/index.js +49 -0
  191. package/dist/src/spindles/index.d.ts +25 -0
  192. package/dist/src/spindles/index.js +37 -0
  193. package/dist/src/state/MachineStatus.d.ts +17 -0
  194. package/dist/src/state/MachineStatus.js +21 -0
  195. package/dist/src/state/MessageBox.d.ts +26 -0
  196. package/dist/src/state/MessageBox.js +42 -0
  197. package/dist/src/state/RestorePoint.d.ts +11 -0
  198. package/dist/src/state/RestorePoint.js +21 -0
  199. package/dist/src/state/index.d.ts +69 -0
  200. package/dist/src/state/index.js +109 -0
  201. package/dist/src/tools/ToolRetraction.d.ts +9 -0
  202. package/dist/src/tools/ToolRetraction.js +19 -0
  203. package/dist/src/tools/index.d.ts +32 -0
  204. package/dist/src/tools/index.js +43 -0
  205. package/dist/src/volumes/index.d.ts +11 -0
  206. package/dist/src/volumes/index.js +21 -0
  207. package/dist/state/MessageBox.js +4 -1
  208. package/dist/state/RestorePoint.js +4 -1
  209. package/dist/state/index.js +7 -4
  210. package/dist/tools/ToolRetraction.js +4 -1
  211. package/dist/tools/index.d.ts +1 -1
  212. package/dist/tools/index.js +6 -3
  213. package/dist/volumes/index.js +4 -1
  214. package/package.json +5 -3
@@ -0,0 +1,237 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ModelObject = void 0;
4
+ exports.isModelObject = isModelObject;
5
+ exports.initObject = initObject;
6
+ const index_1 = require("./index");
7
+ /**
8
+ * Check whether a given value provides model update functionality
9
+ * @param value Value to check
10
+ */
11
+ function isModelObject(value) {
12
+ return (value instanceof Object) && value.update !== undefined;
13
+ }
14
+ /**
15
+ * Base class for object model classes
16
+ */
17
+ class ModelObject {
18
+ /**
19
+ * Update this instance from the given data
20
+ * @param jsonElement JSON data to upgrade this instance from
21
+ * @returns Updated instance (may not equal the original instance)
22
+ */
23
+ update(jsonElement) {
24
+ if (jsonElement === null) {
25
+ return null;
26
+ }
27
+ for (const [key, value] of Object.entries(jsonElement)) {
28
+ if (key in this) {
29
+ const ownKey = key;
30
+ const prop = this[ownKey];
31
+ if (isModelObject(prop)) {
32
+ // Update model objects
33
+ const updatedObject = prop.update(value);
34
+ if (prop !== updatedObject) {
35
+ const propDescriptor = Object.getOwnPropertyDescriptor(this, key);
36
+ if (propDescriptor !== undefined) {
37
+ if (propDescriptor.writable || propDescriptor.set !== undefined) {
38
+ this[ownKey] = updatedObject;
39
+ }
40
+ else if (process.env.NODE_ENV !== "production") {
41
+ console.warn(`Model object ${key} changed but it could not be set due to missing setter`);
42
+ }
43
+ }
44
+ else if (process.env.NODE_ENV !== "production") {
45
+ console.warn(`Model object ${key} changed but it lacks the property descriptor`);
46
+ }
47
+ }
48
+ }
49
+ else if (prop instanceof Array) {
50
+ if (value instanceof Array) {
51
+ // Remove deleted items
52
+ prop.splice(value.length);
53
+ // Update existing items
54
+ for (let i = 0; i < Math.min(prop.length, value.length); i++) {
55
+ const propItem = prop[i];
56
+ if (propItem === null) {
57
+ (0, index_1.setArrayItem)(prop, i, value[i]);
58
+ }
59
+ else {
60
+ const newItem = value[i];
61
+ if (propItem !== newItem) {
62
+ (0, index_1.setArrayItem)(prop, i, newItem);
63
+ }
64
+ }
65
+ }
66
+ // Add new items
67
+ for (let i = prop.length; i < value.length; i++) {
68
+ prop.push(value[i]);
69
+ }
70
+ }
71
+ else if (value === null) {
72
+ // Arrays may be assignable to null
73
+ this[ownKey] = value;
74
+ }
75
+ else if (process.env.NODE_ENV !== "production") {
76
+ console.warn(`Model array ${key} could not be changed because the target type ${typeof value} is invalid`);
77
+ }
78
+ }
79
+ else if (prop instanceof Set) {
80
+ if (value instanceof Array || value instanceof Set) {
81
+ // Remove deleted items
82
+ for (let item of new Set(prop)) {
83
+ if (!prop.has(item)) {
84
+ prop.delete(item);
85
+ }
86
+ }
87
+ // Add new items
88
+ for (let item of value) {
89
+ if (!prop.has(item)) {
90
+ prop.add(item);
91
+ }
92
+ }
93
+ }
94
+ else if (value === null) {
95
+ // Sets may be assignable to null
96
+ this[ownKey] = value;
97
+ }
98
+ else if (process.env.NODE_ENV !== "production") {
99
+ console.warn(`Model set ${key} could not be changed because the target type ${typeof value} is invalid`);
100
+ }
101
+ }
102
+ else if (prop === null || value === null) {
103
+ // Unfortunately we cannot do type checks during runtime without excessive extra work and possibly
104
+ // third-party libraries, so skip them for null values until there is a better solution.
105
+ // FWIW, we would just need "typeof prop" but TS does not seem to be capable of providing this.
106
+ this[ownKey] = value;
107
+ }
108
+ else {
109
+ const propType = typeof prop;
110
+ if (propType === "boolean") {
111
+ if (typeof value === "boolean") {
112
+ this[ownKey] = value;
113
+ }
114
+ else if (typeof value === "number") {
115
+ // RRF used to report booleans as integers so convert them if necessary
116
+ this[ownKey] = Boolean(value);
117
+ }
118
+ else if (process.env.NODE_ENV !== "production") {
119
+ console.warn(`Incompatible bool target type ${typeof value} for property ${key}`);
120
+ }
121
+ }
122
+ else if (propType === "number") {
123
+ if (typeof value === "number" || typeof value === "bigint") {
124
+ this[ownKey] = value;
125
+ }
126
+ else if (process.env.NODE_ENV !== "production") {
127
+ console.warn(`Incompatible number target type ${typeof value} for property ${key}`);
128
+ }
129
+ }
130
+ else if (propType === "bigint") {
131
+ if (typeof value === "number" || typeof value === "bigint") {
132
+ this[ownKey] = value;
133
+ }
134
+ else if (process.env.NODE_ENV !== "production") {
135
+ console.warn(`Incompatible bigint target type ${typeof value} for property ${key}`);
136
+ }
137
+ }
138
+ else if (propType === "string") {
139
+ if (typeof value === "string") {
140
+ this[ownKey] = value;
141
+ }
142
+ else if (process.env.NODE_ENV !== "production") {
143
+ console.warn(`Incompatible string target type ${typeof value} for property ${key}`);
144
+ }
145
+ }
146
+ else if (propType === "function") {
147
+ if (typeof value === "function") {
148
+ this[ownKey] = value;
149
+ }
150
+ else if (process.env.NODE_ENV !== "production") {
151
+ console.warn(`Incompatible function target type ${typeof value} for property ${key}`);
152
+ }
153
+ }
154
+ else if (propType === "object") {
155
+ if (typeof value === "object") {
156
+ this[ownKey] = value;
157
+ }
158
+ else if (process.env.NODE_ENV !== "production") {
159
+ console.warn(`Incompatible object target type ${typeof value} for property ${key}`);
160
+ }
161
+ }
162
+ else if (process.env.NODE_ENV !== "production") {
163
+ console.warn(`Incompatible type ${propType} for property ${key} (${typeof value})`);
164
+ }
165
+ }
166
+ }
167
+ }
168
+ return this;
169
+ }
170
+ /**
171
+ * Wrap a nullable model object property so that type checks can be performed
172
+ * @param key Property key of the derived class
173
+ * @param constructor Constructor for creating new elements
174
+ */
175
+ static wrapModelCollectionProperty(self, key, itemConstructor) {
176
+ let propertyValue = self[key];
177
+ Object.defineProperty(self, key, {
178
+ get() { return propertyValue; },
179
+ set(newValue) {
180
+ if (newValue === null) {
181
+ propertyValue = null;
182
+ }
183
+ else if (propertyValue !== null) {
184
+ const newModel = propertyValue.update(newValue);
185
+ if (propertyValue !== newModel) {
186
+ propertyValue = newModel;
187
+ }
188
+ }
189
+ else {
190
+ const newModel = new index_1.ModelCollection(itemConstructor);
191
+ propertyValue = newModel.update(newValue);
192
+ }
193
+ },
194
+ configurable: true,
195
+ enumerable: true
196
+ });
197
+ }
198
+ /**
199
+ * Wrap a nullable model object property so that type checks can be performed
200
+ * @param key Property key of the derived class
201
+ * @param constructor Constructor for creating new elements
202
+ */
203
+ static wrapModelProperty(self, key, constructor) {
204
+ let propertyValue = self[key];
205
+ Object.defineProperty(self, key, {
206
+ get() { return propertyValue; },
207
+ set(newValue) {
208
+ if (newValue === null) {
209
+ propertyValue = null;
210
+ }
211
+ else if (propertyValue !== null) {
212
+ const newModel = propertyValue.update(newValue);
213
+ if (propertyValue !== newModel) {
214
+ propertyValue = newModel;
215
+ }
216
+ }
217
+ else {
218
+ const newModel = new constructor();
219
+ propertyValue = newModel.update(newValue);
220
+ }
221
+ },
222
+ configurable: true,
223
+ enumerable: true
224
+ });
225
+ }
226
+ }
227
+ exports.ModelObject = ModelObject;
228
+ exports.default = ModelObject;
229
+ /**
230
+ * Initialize a model object from the given data
231
+ * @param itemType Model type to create
232
+ * @param data Data to assign
233
+ * @returns Initialized model instance
234
+ */
235
+ function initObject(itemType, data) {
236
+ return new itemType().update(data);
237
+ }
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Wrapper around a standard set to make sure it serializes to an array
3
+ */
4
+ export declare class ModelSet<T> extends Set<T> {
5
+ /**
6
+ * Convert this object to JSON
7
+ * @returns JSON object
8
+ */
9
+ toJSON(): T[];
10
+ }
11
+ export default ModelSet;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ModelSet = void 0;
4
+ /**
5
+ * Wrapper around a standard set to make sure it serializes to an array
6
+ */
7
+ class ModelSet extends Set {
8
+ /**
9
+ * Convert this object to JSON
10
+ * @returns JSON object
11
+ */
12
+ toJSON() { return Array.from(this); }
13
+ }
14
+ exports.ModelSet = ModelSet;
15
+ exports.default = ModelSet;
@@ -0,0 +1,47 @@
1
+ import ModelCollection from "./ModelCollection";
2
+ import ModelDictionary from "./ModelDictionary";
3
+ import ModelObject from "./ModelObject";
4
+ import Board from "./boards";
5
+ import Directories from "./directories";
6
+ import Fan from "./fans";
7
+ import Heat from "./heat";
8
+ import InputChannel from "./inputs/InputChannel";
9
+ import Job from "./job";
10
+ import Limits from "./limits";
11
+ import Message from "./messages";
12
+ import Move from "./move";
13
+ import Network from "./network";
14
+ import Plugin from "./plugins";
15
+ import SBC from "./sbc";
16
+ import Sensors from "./sensors";
17
+ import Spindle from "./spindles";
18
+ import State from "./state";
19
+ import Tool from "./tools";
20
+ import Volume from "./volumes";
21
+ import LedStrip from "./ledStrips";
22
+ /**
23
+ * Refer to the DSF/RRF documentation for descriptions of the object model fields
24
+ */
25
+ export declare class ObjectModel extends ModelObject {
26
+ constructor();
27
+ readonly boards: ModelCollection<Board>;
28
+ readonly directories: Directories;
29
+ readonly fans: ModelCollection<Fan | null>;
30
+ readonly global: ModelDictionary<any>;
31
+ readonly heat: Heat;
32
+ readonly inputs: ModelCollection<InputChannel | null>;
33
+ readonly job: Job;
34
+ readonly ledStrips: ModelCollection<LedStrip>;
35
+ readonly limits: Limits;
36
+ readonly messages: ModelCollection<Message>;
37
+ readonly move: Move;
38
+ readonly network: Network;
39
+ readonly plugins: ModelDictionary<Plugin>;
40
+ sbc: SBC | null;
41
+ readonly sensors: Sensors;
42
+ readonly spindles: ModelCollection<Spindle | null>;
43
+ readonly state: State;
44
+ readonly tools: ModelCollection<Tool | null>;
45
+ readonly volumes: ModelCollection<Volume>;
46
+ }
47
+ export default ObjectModel;
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.ObjectModel = void 0;
7
+ const ModelCollection_1 = __importDefault(require("./ModelCollection"));
8
+ const ModelDictionary_1 = __importDefault(require("./ModelDictionary"));
9
+ const ModelObject_1 = __importDefault(require("./ModelObject"));
10
+ const boards_1 = __importDefault(require("./boards"));
11
+ const directories_1 = __importDefault(require("./directories"));
12
+ const fans_1 = __importDefault(require("./fans"));
13
+ const heat_1 = __importDefault(require("./heat"));
14
+ const InputChannel_1 = __importDefault(require("./inputs/InputChannel"));
15
+ const job_1 = __importDefault(require("./job"));
16
+ const limits_1 = __importDefault(require("./limits"));
17
+ const messages_1 = __importDefault(require("./messages"));
18
+ const move_1 = __importDefault(require("./move"));
19
+ const network_1 = __importDefault(require("./network"));
20
+ const plugins_1 = __importDefault(require("./plugins"));
21
+ const sbc_1 = __importDefault(require("./sbc"));
22
+ const sensors_1 = __importDefault(require("./sensors"));
23
+ const spindles_1 = __importDefault(require("./spindles"));
24
+ const state_1 = __importDefault(require("./state"));
25
+ const tools_1 = __importDefault(require("./tools"));
26
+ const volumes_1 = __importDefault(require("./volumes"));
27
+ const ledStrips_1 = __importDefault(require("./ledStrips"));
28
+ /**
29
+ * Refer to the DSF/RRF documentation for descriptions of the object model fields
30
+ */
31
+ class ObjectModel extends ModelObject_1.default {
32
+ constructor() {
33
+ super();
34
+ this.boards = new ModelCollection_1.default(boards_1.default);
35
+ this.directories = new directories_1.default();
36
+ this.fans = new ModelCollection_1.default(fans_1.default);
37
+ this.global = new ModelDictionary_1.default(false);
38
+ this.heat = new heat_1.default();
39
+ this.inputs = new ModelCollection_1.default(InputChannel_1.default);
40
+ this.job = new job_1.default();
41
+ this.ledStrips = new ModelCollection_1.default(ledStrips_1.default);
42
+ this.limits = new limits_1.default();
43
+ this.messages = new ModelCollection_1.default(messages_1.default); // must be manually cleared after updates
44
+ this.move = new move_1.default();
45
+ this.network = new network_1.default();
46
+ this.plugins = new ModelDictionary_1.default(true, plugins_1.default);
47
+ this.sbc = null;
48
+ this.sensors = new sensors_1.default();
49
+ this.spindles = new ModelCollection_1.default(spindles_1.default);
50
+ this.state = new state_1.default();
51
+ this.tools = new ModelCollection_1.default(tools_1.default);
52
+ this.volumes = new ModelCollection_1.default(volumes_1.default);
53
+ ModelObject_1.default.wrapModelProperty(this, "sbc", sbc_1.default);
54
+ }
55
+ }
56
+ exports.ObjectModel = ObjectModel;
57
+ exports.default = ObjectModel;
@@ -0,0 +1,18 @@
1
+ import { ModelObject } from "..";
2
+ export declare class BoardClosedLoopCurrentFraction extends ModelObject {
3
+ avg: number;
4
+ max: number;
5
+ }
6
+ export declare class BoardClosedLoopPositionError extends ModelObject {
7
+ max: number;
8
+ rms: number;
9
+ }
10
+ export declare class DriverClosedLoop extends ModelObject {
11
+ readonly currentFraction: BoardClosedLoopCurrentFraction;
12
+ readonly positionError: BoardClosedLoopPositionError;
13
+ }
14
+ export default class Driver extends ModelObject {
15
+ constructor();
16
+ closedLoop: DriverClosedLoop | null;
17
+ status: number;
18
+ }
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DriverClosedLoop = exports.BoardClosedLoopPositionError = exports.BoardClosedLoopCurrentFraction = void 0;
4
+ const __1 = require("..");
5
+ class BoardClosedLoopCurrentFraction extends __1.ModelObject {
6
+ constructor() {
7
+ super(...arguments);
8
+ this.avg = 0;
9
+ this.max = 0;
10
+ }
11
+ }
12
+ exports.BoardClosedLoopCurrentFraction = BoardClosedLoopCurrentFraction;
13
+ class BoardClosedLoopPositionError extends __1.ModelObject {
14
+ constructor() {
15
+ super(...arguments);
16
+ this.max = 0;
17
+ this.rms = 0;
18
+ }
19
+ }
20
+ exports.BoardClosedLoopPositionError = BoardClosedLoopPositionError;
21
+ class DriverClosedLoop extends __1.ModelObject {
22
+ constructor() {
23
+ super(...arguments);
24
+ this.currentFraction = new BoardClosedLoopCurrentFraction();
25
+ this.positionError = new BoardClosedLoopPositionError();
26
+ }
27
+ }
28
+ exports.DriverClosedLoop = DriverClosedLoop;
29
+ class Driver extends __1.ModelObject {
30
+ constructor() {
31
+ super();
32
+ this.closedLoop = null;
33
+ this.status = 0;
34
+ __1.ModelObject.wrapModelProperty(this, "closedLoop", DriverClosedLoop);
35
+ }
36
+ }
37
+ exports.default = Driver;
@@ -0,0 +1,6 @@
1
+ import { IModelObject } from "../../ModelObject";
2
+ import DirectDisplayScreenBase from "./DirectDisplayScreenBase";
3
+ export declare class DirectDisplayScreen extends DirectDisplayScreenBase {
4
+ update(jsonElement: any): IModelObject | null;
5
+ }
6
+ export default DirectDisplayScreen;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.DirectDisplayScreen = void 0;
7
+ const _1 = require(".");
8
+ const DirectDisplayScreenBase_1 = __importDefault(require("./DirectDisplayScreenBase"));
9
+ class DirectDisplayScreen extends DirectDisplayScreenBase_1.default {
10
+ update(jsonElement) {
11
+ if (jsonElement === null) {
12
+ return null;
13
+ }
14
+ if (typeof jsonElement.controller === "string" && jsonElement.controller !== this.controller) {
15
+ return (0, _1.getDirectDisplayScreen)(jsonElement.controller).update(jsonElement);
16
+ }
17
+ return super.update(jsonElement);
18
+ }
19
+ }
20
+ exports.DirectDisplayScreen = DirectDisplayScreen;
21
+ exports.default = DirectDisplayScreen;
@@ -0,0 +1,11 @@
1
+ import ModelObject from "../../ModelObject";
2
+ import { DirectDisplayController } from ".";
3
+ export declare class DirectDisplayScreenBase extends ModelObject {
4
+ constructor(type: DirectDisplayController);
5
+ colourBits: number;
6
+ controller: DirectDisplayController;
7
+ height: number;
8
+ spiFreq: number;
9
+ width: number;
10
+ }
11
+ export default DirectDisplayScreenBase;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.DirectDisplayScreenBase = void 0;
7
+ const ModelObject_1 = __importDefault(require("../../ModelObject"));
8
+ class DirectDisplayScreenBase extends ModelObject_1.default {
9
+ constructor(type) {
10
+ super();
11
+ this.colourBits = 1;
12
+ this.height = 64;
13
+ this.spiFreq = 2000000;
14
+ this.width = 128;
15
+ this.controller = type;
16
+ }
17
+ }
18
+ exports.DirectDisplayScreenBase = DirectDisplayScreenBase;
19
+ exports.default = DirectDisplayScreenBase;
@@ -0,0 +1,9 @@
1
+ import { IModelObject } from "../../ModelObject";
2
+ import DirectDisplayScreenBase from "./DirectDisplayScreen";
3
+ export declare class DirectDisplayScreenST7567 extends DirectDisplayScreenBase {
4
+ constructor();
5
+ contrast: number;
6
+ resistorRatio: number;
7
+ update(jsonElement: any): IModelObject | null;
8
+ }
9
+ export default DirectDisplayScreenST7567;
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.DirectDisplayScreenST7567 = void 0;
7
+ const DirectDisplayScreen_1 = __importDefault(require("./DirectDisplayScreen"));
8
+ const _1 = require(".");
9
+ class DirectDisplayScreenST7567 extends DirectDisplayScreen_1.default {
10
+ constructor() {
11
+ super(_1.DirectDisplayController.ST7567);
12
+ this.contrast = 30;
13
+ this.resistorRatio = 6;
14
+ }
15
+ update(jsonElement) {
16
+ if (jsonElement === null) {
17
+ return null;
18
+ }
19
+ if (typeof jsonElement.controller === "string" && jsonElement.controller !== this.controller) {
20
+ return (0, _1.getDirectDisplayScreen)(jsonElement.type).update(jsonElement);
21
+ }
22
+ return super.update(jsonElement);
23
+ }
24
+ }
25
+ exports.DirectDisplayScreenST7567 = DirectDisplayScreenST7567;
26
+ exports.default = DirectDisplayScreenST7567;
@@ -0,0 +1,20 @@
1
+ import ModelObject from "../../ModelObject";
2
+ import DirectDisplayScreenBase from "./DirectDisplayScreenBase";
3
+ import DirectDisplayScreen from "./DirectDisplayScreen";
4
+ export declare enum DirectDisplayController {
5
+ ST7920 = "ST7920",
6
+ ST7567 = "ST7567",
7
+ ILI9488 = "ILI9488"
8
+ }
9
+ export declare class DirectDisplayEncoder extends ModelObject {
10
+ pulsesPerClick: number;
11
+ }
12
+ export declare class DirectDisplay extends ModelObject {
13
+ constructor();
14
+ encoder: DirectDisplayEncoder | null;
15
+ screen: DirectDisplayScreenBase;
16
+ }
17
+ export default DirectDisplay;
18
+ export declare function getDirectDisplayScreen(controller: DirectDisplayController): DirectDisplayScreen;
19
+ export * from "./DirectDisplayScreen";
20
+ export * from "./DirectDisplayScreenST7567";
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ var __importDefault = (this && this.__importDefault) || function (mod) {
17
+ return (mod && mod.__esModule) ? mod : { "default": mod };
18
+ };
19
+ Object.defineProperty(exports, "__esModule", { value: true });
20
+ exports.DirectDisplay = exports.DirectDisplayEncoder = exports.DirectDisplayController = void 0;
21
+ exports.getDirectDisplayScreen = getDirectDisplayScreen;
22
+ const ModelObject_1 = __importDefault(require("../../ModelObject"));
23
+ const DirectDisplayScreen_1 = __importDefault(require("./DirectDisplayScreen"));
24
+ const DirectDisplayScreenST7567_1 = require("./DirectDisplayScreenST7567");
25
+ var DirectDisplayController;
26
+ (function (DirectDisplayController) {
27
+ DirectDisplayController["ST7920"] = "ST7920";
28
+ DirectDisplayController["ST7567"] = "ST7567";
29
+ DirectDisplayController["ILI9488"] = "ILI9488";
30
+ })(DirectDisplayController || (exports.DirectDisplayController = DirectDisplayController = {}));
31
+ class DirectDisplayEncoder extends ModelObject_1.default {
32
+ constructor() {
33
+ super(...arguments);
34
+ this.pulsesPerClick = 1;
35
+ }
36
+ }
37
+ exports.DirectDisplayEncoder = DirectDisplayEncoder;
38
+ class DirectDisplay extends ModelObject_1.default {
39
+ constructor() {
40
+ super();
41
+ this.encoder = new DirectDisplayEncoder();
42
+ this.screen = new DirectDisplayScreen_1.default(DirectDisplayController.ST7920);
43
+ ModelObject_1.default.wrapModelProperty(this, "encoder", DirectDisplayEncoder);
44
+ }
45
+ }
46
+ exports.DirectDisplay = DirectDisplay;
47
+ exports.default = DirectDisplay;
48
+ function getDirectDisplayScreen(controller) {
49
+ switch (controller) {
50
+ case DirectDisplayController.ST7920:
51
+ case DirectDisplayController.ILI9488:
52
+ default:
53
+ return new DirectDisplayScreen_1.default(controller);
54
+ case DirectDisplayController.ST7567:
55
+ return new DirectDisplayScreenST7567_1.DirectDisplayScreenST7567();
56
+ }
57
+ }
58
+ __exportStar(require("./DirectDisplayScreen"), exports);
59
+ __exportStar(require("./DirectDisplayScreenST7567"), exports);
@@ -0,0 +1,59 @@
1
+ import ModelCollection from "../ModelCollection";
2
+ import ModelObject from "../ModelObject";
3
+ import DirectDisplay from "./directDisplay";
4
+ import Driver from "./Driver";
5
+ export declare class Accelerometer extends ModelObject {
6
+ orientation: number;
7
+ points: number;
8
+ runs: number;
9
+ }
10
+ export declare class BoardClosedLoop extends ModelObject {
11
+ points: number;
12
+ runs: number;
13
+ }
14
+ export declare enum BoardState {
15
+ unknown = "unknown",
16
+ flashing = "flashing",
17
+ flashFailed = "flashFailed",
18
+ resetting = "resetting",
19
+ running = "running",
20
+ timedOut = "timedOut"
21
+ }
22
+ export declare class InductiveSensor extends ModelObject {
23
+ }
24
+ export declare class MinMaxCurrent extends ModelObject {
25
+ current: number;
26
+ min: number;
27
+ max: number;
28
+ }
29
+ export declare class Board extends ModelObject {
30
+ constructor();
31
+ accelerometer: Accelerometer | null;
32
+ bootloaderFileName: string | null;
33
+ canAddress: number | null;
34
+ closedLoop: BoardClosedLoop | null;
35
+ directDisplay: DirectDisplay | null;
36
+ drivers: ModelCollection<Driver> | null;
37
+ firmwareDate: string;
38
+ firmwareFileName: string;
39
+ firmwareName: string;
40
+ firmwareVersion: string;
41
+ freeRam: number | null;
42
+ iapFileNameSBC: string | null;
43
+ iapFileNameSD: string | null;
44
+ inductiveSensor: InductiveSensor | null;
45
+ maxHeaters: number;
46
+ maxMotors: number;
47
+ mcuTemp: MinMaxCurrent | null;
48
+ name: string;
49
+ shortName: string;
50
+ state: BoardState;
51
+ supportsDirectDisplay: boolean;
52
+ uniqueId: string | null;
53
+ v12: MinMaxCurrent | null;
54
+ vIn: MinMaxCurrent | null;
55
+ wifiFirmwareFileName: string | null;
56
+ }
57
+ export default Board;
58
+ export * from "./directDisplay";
59
+ export * from "./Driver";