Update machine-api for modified api schema (#3572)
update to new machine-api format
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@ -49,7 +49,11 @@ export const NetworkMachineIndicator = ({
|
|||||||
{Object.entries(machineManager.machines).map(
|
{Object.entries(machineManager.machines).map(
|
||||||
([hostname, machine]) => (
|
([hostname, machine]) => (
|
||||||
<li key={hostname} className={'px-2 py-4 gap-1 last:mb-0 '}>
|
<li key={hostname} className={'px-2 py-4 gap-1 last:mb-0 '}>
|
||||||
<p className="">{machine.model || machine.manufacturer}</p>
|
<p className="">
|
||||||
|
{machine.make_model.model ||
|
||||||
|
machine.make_model.manufacturer ||
|
||||||
|
'Unknown Machine'}
|
||||||
|
</p>
|
||||||
<p className="text-chalkboard-60 dark:text-chalkboard-50 text-xs">
|
<p className="text-chalkboard-60 dark:text-chalkboard-50 text-xs">
|
||||||
Hostname {hostname}
|
Hostname {hostname}
|
||||||
</p>
|
</p>
|
||||||
|
@ -25,7 +25,7 @@ export type ModelingCommandSchema = {
|
|||||||
storage?: StorageUnion
|
storage?: StorageUnion
|
||||||
}
|
}
|
||||||
Make: {
|
Make: {
|
||||||
machine: components['schemas']['Machine']
|
machine: components['schemas']['MachineInfoResponse']
|
||||||
}
|
}
|
||||||
Extrude: {
|
Extrude: {
|
||||||
selection: Selections // & { type: 'face' } would be cool to lock that down
|
selection: Selections // & { type: 'face' } would be cool to lock that down
|
||||||
@ -179,21 +179,25 @@ export const modelingMachineCommandConfig: StateMachineCommandSetConfig<
|
|||||||
machine: {
|
machine: {
|
||||||
inputType: 'options',
|
inputType: 'options',
|
||||||
required: true,
|
required: true,
|
||||||
valueSummary: (machine: components['schemas']['Machine']) =>
|
valueSummary: (machine: components['schemas']['MachineInfoResponse']) =>
|
||||||
machine.model || machine.manufacturer,
|
machine.make_model.model ||
|
||||||
|
machine.make_model.manufacturer ||
|
||||||
|
'Unknown Machine',
|
||||||
options: () => {
|
options: () => {
|
||||||
return Object.entries(machineManager.machines).map(
|
return Object.entries(machineManager.machines).map(
|
||||||
([hostname, machine]) => ({
|
([_, machine]) => ({
|
||||||
name: `${machine.model || machine.manufacturer}, ${hostname}`,
|
name: `${machine.id} (${
|
||||||
|
machine.make_model.model || machine.make_model.manufacturer
|
||||||
|
}) via ${machineManager.machineApiIp || 'the local network'}`,
|
||||||
isCurrent: false,
|
isCurrent: false,
|
||||||
value: machine as components['schemas']['Machine'],
|
value: machine as components['schemas']['MachineInfoResponse'],
|
||||||
})
|
})
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
defaultValue: () => {
|
defaultValue: () => {
|
||||||
return Object.values(
|
return Object.values(
|
||||||
machineManager.machines
|
machineManager.machines
|
||||||
)[0] as components['schemas']['Machine']
|
)[0] as components['schemas']['MachineInfoResponse']
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -26,15 +26,7 @@ export async function exportMake(data: ArrayBuffer): Promise<Response | null> {
|
|||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
|
|
||||||
let machineId = null
|
let machineId = currentMachine?.id
|
||||||
if ('id' in currentMachine) {
|
|
||||||
machineId = currentMachine.id
|
|
||||||
} else if ('hostname' in currentMachine && currentMachine.hostname) {
|
|
||||||
machineId = currentMachine.hostname
|
|
||||||
} else if ('ip' in currentMachine && currentMachine.ip) {
|
|
||||||
machineId = currentMachine.ip
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!machineId) {
|
if (!machineId) {
|
||||||
console.error('No machine id available', currentMachine)
|
console.error('No machine id available', currentMachine)
|
||||||
toast.error('No machine id available')
|
toast.error('No machine id available')
|
||||||
|
851
src/lib/machine-api.d.ts
vendored
851
src/lib/machine-api.d.ts
vendored
@ -93,587 +93,56 @@ export interface paths {
|
|||||||
export type webhooks = Record<string, never>
|
export type webhooks = Record<string, never>
|
||||||
export interface components {
|
export interface components {
|
||||||
schemas: {
|
schemas: {
|
||||||
/** @description The type of accessory. */
|
|
||||||
AccessoryType: 'none'
|
|
||||||
/** @description Error information from a response. */
|
/** @description Error information from a response. */
|
||||||
Error: {
|
Error: {
|
||||||
error_code?: string
|
error_code?: string
|
||||||
message: string
|
message: string
|
||||||
request_id: string
|
request_id: string
|
||||||
}
|
}
|
||||||
/** @description An info command. */
|
/** @description Extra machine-specific information regarding a connected machine. */
|
||||||
Info: {
|
ExtraMachineInfoResponse:
|
||||||
/** @enum {string} */
|
| {
|
||||||
command: 'get_version'
|
Moonraker: Record<string, never>
|
||||||
/** @description The info module. */
|
}
|
||||||
module: components['schemas']['InfoModule'][]
|
| {
|
||||||
/** @description The reason of the info command. */
|
Usb: Record<string, never>
|
||||||
reason?: components['schemas']['Reason'] | null
|
}
|
||||||
/** @description The result of the info command. */
|
| {
|
||||||
result?: components['schemas']['Result'] | null
|
Bambu: Record<string, never>
|
||||||
/** @description The sequence id. */
|
}
|
||||||
sequence_id: components['schemas']['SequenceId']
|
/** @description Information regarding a connected machine. */
|
||||||
} & {
|
MachineInfoResponse: {
|
||||||
[key: string]: unknown
|
/** @description Additional, per-machine information which is specific to the underlying machine type. */
|
||||||
|
extra?: components['schemas']['ExtraMachineInfoResponse'] | null
|
||||||
|
/** @description Machine Identifier (ID) for the specific Machine. */
|
||||||
|
id: string
|
||||||
|
/** @description Information regarding the method of manufacture. */
|
||||||
|
machine_type: components['schemas']['MachineType']
|
||||||
|
/** @description Information regarding the make and model of the attached Machine. */
|
||||||
|
make_model: components['schemas']['MachineMakeModel']
|
||||||
|
/** @description Maximum part size that can be manufactured by this device. This may be some sort of theoretical upper bound, getting close to this limit seems like maybe a bad idea.
|
||||||
|
*
|
||||||
|
* This may be `None` if the maximum size is not knowable by the Machine API.
|
||||||
|
*
|
||||||
|
* What "close" means is up to you! */
|
||||||
|
max_part_volume?: components['schemas']['Volume'] | null
|
||||||
}
|
}
|
||||||
/** @description An info module. */
|
/** @description Information regarding the make/model of a discovered endpoint. */
|
||||||
InfoModule: {
|
MachineMakeModel: {
|
||||||
/** @description The hardware version. */
|
/** @description The manufacturer that built the connected Machine. */
|
||||||
hw_ver: string
|
manufacturer?: string | null
|
||||||
/** @description The loader version. */
|
/** @description The model of the connected Machine. */
|
||||||
loader_ver?: string | null
|
model?: string | null
|
||||||
/** @description The module name. */
|
/** @description The unique serial number of the connected Machine. */
|
||||||
name: string
|
serial?: string | null
|
||||||
/** @description The ota version. */
|
|
||||||
ota_ver?: string | null
|
|
||||||
/** @description The project name. */
|
|
||||||
project_name?: string | null
|
|
||||||
/** @description The serial number. */
|
|
||||||
sn: string
|
|
||||||
/** @description The software version. */
|
|
||||||
sw_ver: string
|
|
||||||
}
|
|
||||||
/** @description The mode for the led. */
|
|
||||||
LedMode: 'on' | 'off' | 'flashing'
|
|
||||||
/** @description The node for the led. */
|
|
||||||
LedNode: 'chamber_light' | 'work_light'
|
|
||||||
/** @description A liveview message. */
|
|
||||||
LiveView: {
|
|
||||||
/** @enum {string} */
|
|
||||||
command: 'init'
|
|
||||||
/** @description The op protocols. */
|
|
||||||
op_protocols: components['schemas']['OperationProtocol'][]
|
|
||||||
/** @description The peer host. */
|
|
||||||
peer_host: string
|
|
||||||
/** @description The reason for the message. */
|
|
||||||
reason?: components['schemas']['Reason'] | null
|
|
||||||
/** @description The result of the command. */
|
|
||||||
result: components['schemas']['Result']
|
|
||||||
/** @description The sequence id. */
|
|
||||||
sequence_id: components['schemas']['SequenceId']
|
|
||||||
} & {
|
|
||||||
[key: string]: unknown
|
|
||||||
}
|
|
||||||
/** @description Details for a 3d printer connected over USB. */
|
|
||||||
Machine:
|
|
||||||
| {
|
|
||||||
id: string
|
|
||||||
manufacturer: string
|
|
||||||
model: string
|
|
||||||
port: string
|
|
||||||
/** @enum {string} */
|
|
||||||
type: 'UsbPrinter'
|
|
||||||
}
|
|
||||||
| {
|
|
||||||
/** @description The hostname of the printer. */
|
|
||||||
hostname?: string | null
|
|
||||||
/**
|
|
||||||
* Format: ip
|
|
||||||
* @description The IP address of the printer.
|
|
||||||
*/
|
|
||||||
ip: string
|
|
||||||
/** @description The manufacturer of the printer. */
|
|
||||||
manufacturer: components['schemas']['NetworkPrinterManufacturer']
|
|
||||||
/** @description The model of the printer. */
|
|
||||||
model?: string | null
|
|
||||||
/**
|
|
||||||
* Format: uint16
|
|
||||||
* @description The port of the printer.
|
|
||||||
*/
|
|
||||||
port?: number | null
|
|
||||||
/** @description The serial number of the printer. */
|
|
||||||
serial?: string | null
|
|
||||||
/** @enum {string} */
|
|
||||||
type: 'NetworkPrinter'
|
|
||||||
}
|
|
||||||
/** @description A message from a machine. */
|
|
||||||
Message:
|
|
||||||
| {
|
|
||||||
UsbPrinter: components['schemas']['Message2']
|
|
||||||
}
|
|
||||||
| {
|
|
||||||
NetworkPrinter: components['schemas']['Message3']
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
* @description A message from the printer.
|
|
||||||
* @enum {string}
|
|
||||||
*/
|
|
||||||
Message2: 'ok'
|
|
||||||
/** @description A message from the printer. */
|
|
||||||
Message3:
|
|
||||||
| {
|
|
||||||
Bambu: components['schemas']['Message4']
|
|
||||||
}
|
|
||||||
| {
|
|
||||||
Formlabs: Record<string, never>
|
|
||||||
}
|
|
||||||
/** @description A message from/to the printer. */
|
|
||||||
Message4:
|
|
||||||
| {
|
|
||||||
print: components['schemas']['Print']
|
|
||||||
}
|
|
||||||
| {
|
|
||||||
info: components['schemas']['Info']
|
|
||||||
}
|
|
||||||
| {
|
|
||||||
system: components['schemas']['System']
|
|
||||||
}
|
|
||||||
| {
|
|
||||||
security: components['schemas']['Security']
|
|
||||||
}
|
|
||||||
| {
|
|
||||||
live_view: components['schemas']['LiveView']
|
|
||||||
}
|
|
||||||
| {
|
|
||||||
json: unknown
|
|
||||||
}
|
|
||||||
| {
|
|
||||||
unknown: string | null
|
|
||||||
}
|
|
||||||
/** @description Network printer manufacturer. */
|
|
||||||
NetworkPrinterManufacturer: 'Bambu' | 'Formlabs'
|
|
||||||
/** @description A nozzle type. */
|
|
||||||
NozzleType: 'hardened_steel' | 'stainless_steel'
|
|
||||||
/** @description An operation protocol. */
|
|
||||||
OperationProtocol: {
|
|
||||||
/** @description The protocol. */
|
|
||||||
protocol: string
|
|
||||||
/** @description The version. */
|
|
||||||
version: string
|
|
||||||
} & {
|
|
||||||
[key: string]: unknown
|
|
||||||
}
|
}
|
||||||
|
/** @description Specific technique by which this Machine takes a design, and produces a real-world 3D object. */
|
||||||
|
MachineType: 'Stereolithography' | 'FusedDeposition' | 'Cnc'
|
||||||
/** @description The response from the `/ping` endpoint. */
|
/** @description The response from the `/ping` endpoint. */
|
||||||
Pong: {
|
Pong: {
|
||||||
/** @description The pong response. */
|
/** @description The pong response. */
|
||||||
message: string
|
message: string
|
||||||
}
|
}
|
||||||
/** @description A print command. */
|
|
||||||
Print:
|
|
||||||
| ({
|
|
||||||
/** @enum {string} */
|
|
||||||
command: 'ams_control'
|
|
||||||
/** @description The param. */
|
|
||||||
param?: string | null
|
|
||||||
/** @description The reason for the message. */
|
|
||||||
reason: components['schemas']['Reason']
|
|
||||||
/** @description The result of the command. */
|
|
||||||
result: components['schemas']['Result']
|
|
||||||
/** @description The sequence id. */
|
|
||||||
sequence_id: components['schemas']['SequenceId']
|
|
||||||
} & {
|
|
||||||
[key: string]: unknown
|
|
||||||
})
|
|
||||||
| ({
|
|
||||||
/** @enum {string} */
|
|
||||||
command: 'ams_change_filament'
|
|
||||||
/**
|
|
||||||
* Format: int64
|
|
||||||
* @description The error number.
|
|
||||||
*/
|
|
||||||
errorno?: number | null
|
|
||||||
/** @description The reason for the message. */
|
|
||||||
reason?: components['schemas']['Reason'] | null
|
|
||||||
/** @description The result of the command. */
|
|
||||||
result: components['schemas']['Result']
|
|
||||||
/** @description The sequence id. */
|
|
||||||
sequence_id: components['schemas']['SequenceId']
|
|
||||||
/**
|
|
||||||
* Format: int64
|
|
||||||
* @description The target temperature.
|
|
||||||
*/
|
|
||||||
tar_temp?: number | null
|
|
||||||
/**
|
|
||||||
* Format: int64
|
|
||||||
* @description The target.
|
|
||||||
*/
|
|
||||||
target: number
|
|
||||||
} & {
|
|
||||||
[key: string]: unknown
|
|
||||||
})
|
|
||||||
| ({
|
|
||||||
/** @enum {string} */
|
|
||||||
command: 'calibration'
|
|
||||||
/**
|
|
||||||
* Format: int64
|
|
||||||
* @description The option.
|
|
||||||
*/
|
|
||||||
option: number
|
|
||||||
/** @description The reason for the message. */
|
|
||||||
reason?: components['schemas']['Reason'] | null
|
|
||||||
/** @description The result of the command. */
|
|
||||||
result: components['schemas']['Result']
|
|
||||||
/** @description The sequence id. */
|
|
||||||
sequence_id: components['schemas']['SequenceId']
|
|
||||||
} & {
|
|
||||||
[key: string]: unknown
|
|
||||||
})
|
|
||||||
| ({
|
|
||||||
/** @description The ams. */
|
|
||||||
ams?: components['schemas']['PrintAms'] | null
|
|
||||||
/**
|
|
||||||
* Format: int64
|
|
||||||
* @description The ams rfid status.
|
|
||||||
*/
|
|
||||||
ams_rfid_status?: number | null
|
|
||||||
/**
|
|
||||||
* Format: int64
|
|
||||||
* @description The ams status.
|
|
||||||
*/
|
|
||||||
ams_status?: number | null
|
|
||||||
/** @description The aux part fan. */
|
|
||||||
aux_part_fan?: boolean | null
|
|
||||||
/**
|
|
||||||
* Format: double
|
|
||||||
* @description The target bed temperature.
|
|
||||||
*/
|
|
||||||
bed_target_temper?: number | null
|
|
||||||
/**
|
|
||||||
* Format: double
|
|
||||||
* @description The bed temperature.
|
|
||||||
*/
|
|
||||||
bed_temper?: number | null
|
|
||||||
/** @description The big fan 1 speed. */
|
|
||||||
big_fan1_speed?: string | null
|
|
||||||
/** @description The big fan 2 speed. */
|
|
||||||
big_fan2_speed?: string | null
|
|
||||||
/**
|
|
||||||
* Format: double
|
|
||||||
* @description The chamber temperature.
|
|
||||||
*/
|
|
||||||
chamber_temper?: number | null
|
|
||||||
/** @enum {string} */
|
|
||||||
command: 'push_status'
|
|
||||||
/** @description The cooling fan speed. */
|
|
||||||
cooling_fan_speed?: string | null
|
|
||||||
/**
|
|
||||||
* Format: int64
|
|
||||||
* @description The fan gear.
|
|
||||||
*/
|
|
||||||
fan_gear?: number | null
|
|
||||||
/** @description Force upgrade? */
|
|
||||||
force_upgrade?: boolean | null
|
|
||||||
/** @description The gcode file. */
|
|
||||||
gcode_file?: string | null
|
|
||||||
/** @description The gcode file prepare percent. */
|
|
||||||
gcode_file_prepare_percent?: string | null
|
|
||||||
/** @description The gcode state. */
|
|
||||||
gcode_state?: string | null
|
|
||||||
/** @description The heatbreak fan speed. */
|
|
||||||
heatbreak_fan_speed?: string | null
|
|
||||||
/** @description The hms. */
|
|
||||||
hms?: unknown[] | null
|
|
||||||
/**
|
|
||||||
* Format: int64
|
|
||||||
* @description The home flag.
|
|
||||||
*/
|
|
||||||
home_flag?: number | null
|
|
||||||
/**
|
|
||||||
* Format: int64
|
|
||||||
* @description The hw switch state.
|
|
||||||
*/
|
|
||||||
hw_switch_state?: number | null
|
|
||||||
/** @description The ipcam. */
|
|
||||||
ipcam?: components['schemas']['PrintIpcam'] | null
|
|
||||||
/**
|
|
||||||
* Format: int64
|
|
||||||
* @description The layer num.
|
|
||||||
*/
|
|
||||||
layer_num?: number | null
|
|
||||||
/** @description The lifecycle. */
|
|
||||||
lifecycle?: string | null
|
|
||||||
/** @description The lights report. */
|
|
||||||
lights_report?: components['schemas']['PrintLightsReport'][] | null
|
|
||||||
/**
|
|
||||||
* Format: int64
|
|
||||||
* @description The percentage of the print completed.
|
|
||||||
*/
|
|
||||||
mc_percent?: number | null
|
|
||||||
/** @description The mc print line number. */
|
|
||||||
mc_print_line_number?: string | null
|
|
||||||
/** @description The print stage. */
|
|
||||||
mc_print_stage?: string | null
|
|
||||||
/**
|
|
||||||
* Format: int64
|
|
||||||
* @description The mc print sub stage.
|
|
||||||
*/
|
|
||||||
mc_print_sub_stage?: number | null
|
|
||||||
/**
|
|
||||||
* Format: int64
|
|
||||||
* @description The remaining time of the print.
|
|
||||||
*/
|
|
||||||
mc_remaining_time?: number | null
|
|
||||||
/** @description The mess production state. */
|
|
||||||
mess_production_state?: string | null
|
|
||||||
/**
|
|
||||||
* Format: int64
|
|
||||||
* @description The message.
|
|
||||||
*/
|
|
||||||
msg?: number | null
|
|
||||||
/** @description The nozzle diameter. */
|
|
||||||
nozzle_diameter?: string | null
|
|
||||||
/**
|
|
||||||
* Format: double
|
|
||||||
* @description The target nozzle temperature.
|
|
||||||
*/
|
|
||||||
nozzle_target_temper?: number | null
|
|
||||||
/**
|
|
||||||
* Format: double
|
|
||||||
* @description The nozzle temperature.
|
|
||||||
*/
|
|
||||||
nozzle_temper?: number | null
|
|
||||||
/** @description The nozzle type. */
|
|
||||||
nozzle_type?: components['schemas']['NozzleType'] | null
|
|
||||||
/** @description Online status. */
|
|
||||||
online?: components['schemas']['PrintOnline'] | null
|
|
||||||
/**
|
|
||||||
* Format: int64
|
|
||||||
* @description The print error.
|
|
||||||
*/
|
|
||||||
print_error?: number | null
|
|
||||||
/** @description The print type. */
|
|
||||||
print_type?: string | null
|
|
||||||
/** @description The profile id. */
|
|
||||||
profile_id?: string | null
|
|
||||||
/** @description The project id. */
|
|
||||||
project_id?: string | null
|
|
||||||
/**
|
|
||||||
* Format: int64
|
|
||||||
* @description The queue est.
|
|
||||||
*/
|
|
||||||
queue_est?: number | null
|
|
||||||
/**
|
|
||||||
* Format: int64
|
|
||||||
* @description The queue number.
|
|
||||||
*/
|
|
||||||
queue_number?: number | null
|
|
||||||
/**
|
|
||||||
* Format: int64
|
|
||||||
* @description The queue sts.
|
|
||||||
*/
|
|
||||||
queue_sts?: number | null
|
|
||||||
/**
|
|
||||||
* Format: int64
|
|
||||||
* @description The queue total.
|
|
||||||
*/
|
|
||||||
queue_total?: number | null
|
|
||||||
/** @description The s obj. */
|
|
||||||
s_obj?: unknown[] | null
|
|
||||||
/** @description Sdcard? */
|
|
||||||
sdcard?: boolean | null
|
|
||||||
/** @description The sequence id. */
|
|
||||||
sequence_id: components['schemas']['SequenceId']
|
|
||||||
/**
|
|
||||||
* Format: int64
|
|
||||||
* @description The spd lvl.
|
|
||||||
*/
|
|
||||||
spd_lvl?: number | null
|
|
||||||
/**
|
|
||||||
* Format: int64
|
|
||||||
* @description The spd mag.
|
|
||||||
*/
|
|
||||||
spd_mag?: number | null
|
|
||||||
/** @description The stg. */
|
|
||||||
stg?: unknown[] | null
|
|
||||||
/**
|
|
||||||
* Format: int64
|
|
||||||
* @description The stg cur.
|
|
||||||
*/
|
|
||||||
stg_cur?: number | null
|
|
||||||
/** @description The subtask id. */
|
|
||||||
subtask_id?: string | null
|
|
||||||
/** @description The subtask name. */
|
|
||||||
subtask_name?: string | null
|
|
||||||
/** @description The task id. */
|
|
||||||
task_id?: string | null
|
|
||||||
/**
|
|
||||||
* Format: int64
|
|
||||||
* @description The total layer num.
|
|
||||||
*/
|
|
||||||
total_layer_num?: number | null
|
|
||||||
/** @description The upgrade state. */
|
|
||||||
upgrade_state?: components['schemas']['PrintUpgradeState'] | null
|
|
||||||
/** @description The upload. */
|
|
||||||
upload?: components['schemas']['PrintUpload'] | null
|
|
||||||
/** @description The tray. */
|
|
||||||
vt_tray?: components['schemas']['PrintTray'] | null
|
|
||||||
/** @description The wifi signal. */
|
|
||||||
wifi_signal?: string | null
|
|
||||||
} & {
|
|
||||||
[key: string]: unknown
|
|
||||||
})
|
|
||||||
| ({
|
|
||||||
/** @enum {string} */
|
|
||||||
command: 'gcode_line'
|
|
||||||
/** @description The gcode line. */
|
|
||||||
param?: string | null
|
|
||||||
/** @description The reason for the message. */
|
|
||||||
reason: components['schemas']['Reason']
|
|
||||||
/** @description The result of the command. */
|
|
||||||
result: components['schemas']['Result']
|
|
||||||
/** @description The return code. */
|
|
||||||
return_code?: string | null
|
|
||||||
/** @description The sequence id. */
|
|
||||||
sequence_id: components['schemas']['SequenceId']
|
|
||||||
/**
|
|
||||||
* Format: int64
|
|
||||||
* @description The source.
|
|
||||||
*/
|
|
||||||
source?: number | null
|
|
||||||
} & {
|
|
||||||
[key: string]: unknown
|
|
||||||
})
|
|
||||||
| ({
|
|
||||||
/** @enum {string} */
|
|
||||||
command: 'gcode_file'
|
|
||||||
/** @description The param. */
|
|
||||||
param?: string | null
|
|
||||||
/** @description The print type. */
|
|
||||||
print_type?: string | null
|
|
||||||
/** @description The reason for the message. */
|
|
||||||
reason: components['schemas']['Reason']
|
|
||||||
/** @description The result of the command. */
|
|
||||||
result: components['schemas']['Result']
|
|
||||||
/** @description The sequence id. */
|
|
||||||
sequence_id: components['schemas']['SequenceId']
|
|
||||||
} & {
|
|
||||||
[key: string]: unknown
|
|
||||||
})
|
|
||||||
| ({
|
|
||||||
/** @enum {string} */
|
|
||||||
command: 'project_file'
|
|
||||||
/** @description The gcode file. */
|
|
||||||
gcode_file?: string | null
|
|
||||||
/** @description The profile id. */
|
|
||||||
profile_id: string
|
|
||||||
/** @description The project id. */
|
|
||||||
project_id: string
|
|
||||||
/** @description The sequence id. */
|
|
||||||
sequence_id: components['schemas']['SequenceId']
|
|
||||||
/** @description The subtask id. */
|
|
||||||
subtask_id: string
|
|
||||||
/** @description The subtask name. */
|
|
||||||
subtask_name: string
|
|
||||||
/** @description The task id. */
|
|
||||||
task_id: string
|
|
||||||
} & {
|
|
||||||
[key: string]: unknown
|
|
||||||
})
|
|
||||||
| ({
|
|
||||||
/** @enum {string} */
|
|
||||||
command: 'pause'
|
|
||||||
/** @description The reason for the message. */
|
|
||||||
reason: components['schemas']['Reason']
|
|
||||||
/** @description The result of the command. */
|
|
||||||
result: components['schemas']['Result']
|
|
||||||
/** @description The sequence id. */
|
|
||||||
sequence_id: components['schemas']['SequenceId']
|
|
||||||
} & {
|
|
||||||
[key: string]: unknown
|
|
||||||
})
|
|
||||||
| ({
|
|
||||||
/** @enum {string} */
|
|
||||||
command: 'print_speed'
|
|
||||||
/** @description The param. */
|
|
||||||
param: string
|
|
||||||
/** @description The reason for the message. */
|
|
||||||
reason?: components['schemas']['Reason'] | null
|
|
||||||
/** @description The result of the command. */
|
|
||||||
result: components['schemas']['Result']
|
|
||||||
/** @description The sequence id. */
|
|
||||||
sequence_id: components['schemas']['SequenceId']
|
|
||||||
} & {
|
|
||||||
[key: string]: unknown
|
|
||||||
})
|
|
||||||
| ({
|
|
||||||
/** @enum {string} */
|
|
||||||
command: 'resume'
|
|
||||||
/** @description The reason for the message. */
|
|
||||||
reason: components['schemas']['Reason']
|
|
||||||
/** @description The result of the command. */
|
|
||||||
result: components['schemas']['Result']
|
|
||||||
/** @description The sequence id. */
|
|
||||||
sequence_id: components['schemas']['SequenceId']
|
|
||||||
} & {
|
|
||||||
[key: string]: unknown
|
|
||||||
})
|
|
||||||
| ({
|
|
||||||
/** @enum {string} */
|
|
||||||
command: 'stop'
|
|
||||||
/** @description The sequence id. */
|
|
||||||
sequence_id: components['schemas']['SequenceId']
|
|
||||||
} & {
|
|
||||||
[key: string]: unknown
|
|
||||||
})
|
|
||||||
| ({
|
|
||||||
/** @enum {string} */
|
|
||||||
command: 'extrusion_cali_get'
|
|
||||||
/** @description The sequence id. */
|
|
||||||
sequence_id: components['schemas']['SequenceId']
|
|
||||||
} & {
|
|
||||||
[key: string]: unknown
|
|
||||||
})
|
|
||||||
/** @description The print ams. */
|
|
||||||
PrintAms: {
|
|
||||||
/** @description The ams. */
|
|
||||||
ams?: components['schemas']['PrintAmsData'][] | null
|
|
||||||
/** @description The ams exist bits. */
|
|
||||||
ams_exist_bits?: string | null
|
|
||||||
/** @description The insert flag. */
|
|
||||||
insert_flag?: boolean | null
|
|
||||||
/** @description The power on flag. */
|
|
||||||
power_on_flag?: boolean | null
|
|
||||||
/** @description The tray exist bits. */
|
|
||||||
tray_exist_bits?: string | null
|
|
||||||
/** @description The tray is bbl bits. */
|
|
||||||
tray_is_bbl_bits?: string | null
|
|
||||||
/** @description The tray now. */
|
|
||||||
tray_now?: string | null
|
|
||||||
/** @description The tray pre. */
|
|
||||||
tray_pre?: string | null
|
|
||||||
/** @description The tray read done bits. */
|
|
||||||
tray_read_done_bits?: string | null
|
|
||||||
/** @description The tray reading bits. */
|
|
||||||
tray_reading_bits?: string | null
|
|
||||||
/** @description The tray tar. */
|
|
||||||
tray_tar?: string | null
|
|
||||||
/**
|
|
||||||
* Format: int64
|
|
||||||
* @description The version.
|
|
||||||
*/
|
|
||||||
version?: number | null
|
|
||||||
} & {
|
|
||||||
[key: string]: unknown
|
|
||||||
}
|
|
||||||
/** @description The print ams data. */
|
|
||||||
PrintAmsData: {
|
|
||||||
/** @description The humidity. */
|
|
||||||
humidity: string
|
|
||||||
/** @description The id. */
|
|
||||||
id: string
|
|
||||||
/** @description The temperature. */
|
|
||||||
temp: string
|
|
||||||
/** @description The tray. */
|
|
||||||
tray: components['schemas']['PrintTray'][]
|
|
||||||
} & {
|
|
||||||
[key: string]: unknown
|
|
||||||
}
|
|
||||||
/** @description The print ipcam. */
|
|
||||||
PrintIpcam: {
|
|
||||||
/** @description The ipcam dev. */
|
|
||||||
ipcam_dev?: string | null
|
|
||||||
/** @description The ipcam record. */
|
|
||||||
ipcam_record?: string | null
|
|
||||||
/**
|
|
||||||
* Format: int64
|
|
||||||
* @description The mode bits.
|
|
||||||
*/
|
|
||||||
mode_bits?: number | null
|
|
||||||
/** @description The timelapse. */
|
|
||||||
timelapse?: string | null
|
|
||||||
} & {
|
|
||||||
[key: string]: unknown
|
|
||||||
}
|
|
||||||
/** @description The response from the `/print` endpoint. */
|
/** @description The response from the `/print` endpoint. */
|
||||||
PrintJobResponse: {
|
PrintJobResponse: {
|
||||||
/** @description The job id used for this print. */
|
/** @description The job id used for this print. */
|
||||||
@ -681,29 +150,6 @@ export interface components {
|
|||||||
/** @description The parameters used for this print. */
|
/** @description The parameters used for this print. */
|
||||||
parameters: components['schemas']['PrintParameters']
|
parameters: components['schemas']['PrintParameters']
|
||||||
}
|
}
|
||||||
/** @description A print lights report. */
|
|
||||||
PrintLightsReport: {
|
|
||||||
/** @description The mode. */
|
|
||||||
mode: components['schemas']['LedMode']
|
|
||||||
/** @description The node. */
|
|
||||||
node: components['schemas']['LedNode']
|
|
||||||
} & {
|
|
||||||
[key: string]: unknown
|
|
||||||
}
|
|
||||||
/** @description The print online. */
|
|
||||||
PrintOnline: {
|
|
||||||
/** @description The ahb. */
|
|
||||||
ahb: boolean
|
|
||||||
/** @description The rfid. */
|
|
||||||
rfid?: boolean | null
|
|
||||||
/**
|
|
||||||
* Format: int64
|
|
||||||
* @description The version.
|
|
||||||
*/
|
|
||||||
version: number
|
|
||||||
} & {
|
|
||||||
[key: string]: unknown
|
|
||||||
}
|
|
||||||
/** @description Parameters for printing. */
|
/** @description Parameters for printing. */
|
||||||
PrintParameters: {
|
PrintParameters: {
|
||||||
/** @description The name for the job. */
|
/** @description The name for the job. */
|
||||||
@ -711,219 +157,26 @@ export interface components {
|
|||||||
/** @description The machine id to print to. */
|
/** @description The machine id to print to. */
|
||||||
machine_id: string
|
machine_id: string
|
||||||
}
|
}
|
||||||
/** @description The print tray. */
|
/** @description Set of three values to represent the extent of a 3-D Volume. This contains the width, depth, and height values, generally used to represent some maximum or minimum.
|
||||||
PrintTray: {
|
*
|
||||||
/** @description The bed temperature. */
|
* All measurements are in millimeters. */
|
||||||
bed_temp?: string | null
|
Volume: {
|
||||||
/** @description The bed temperature type. */
|
|
||||||
bed_temp_type?: string | null
|
|
||||||
/** @description The id. */
|
|
||||||
id: string
|
|
||||||
/**
|
/**
|
||||||
* Format: double
|
* Format: double
|
||||||
* @description The tray k.
|
* @description Depth of the volume ("front to back"), in millimeters.
|
||||||
*/
|
*/
|
||||||
k?: number | null
|
depth: number
|
||||||
/**
|
/**
|
||||||
* Format: int64
|
* Format: double
|
||||||
* @description The tray n.
|
* @description Height of the volume ("up and down"), in millimeters.
|
||||||
*/
|
*/
|
||||||
n?: number | null
|
height: number
|
||||||
/** @description The nozzle temperature max. */
|
|
||||||
nozzle_temp_max?: string | null
|
|
||||||
/** @description The nozzle temperature min. */
|
|
||||||
nozzle_temp_min?: string | null
|
|
||||||
/**
|
/**
|
||||||
* Format: int64
|
* Format: double
|
||||||
* @description The tray remain.
|
* @description Width of the volume ("left and right"), in millimeters.
|
||||||
*/
|
*/
|
||||||
remain?: number | null
|
width: number
|
||||||
/** @description The tag uid. */
|
|
||||||
tag_uid?: string | null
|
|
||||||
/** @description The tray color. */
|
|
||||||
tray_color?: string | null
|
|
||||||
/** @description The tray diameter. */
|
|
||||||
tray_diameter?: string | null
|
|
||||||
/** @description The tray id name. */
|
|
||||||
tray_id_name?: string | null
|
|
||||||
/** @description The tray info index. */
|
|
||||||
tray_info_idx?: string | null
|
|
||||||
/** @description The tray sub brands. */
|
|
||||||
tray_sub_brands?: string | null
|
|
||||||
/** @description The tray temperature. */
|
|
||||||
tray_temp?: string | null
|
|
||||||
/** @description The tray time. */
|
|
||||||
tray_time?: string | null
|
|
||||||
/** @description The tray type. */
|
|
||||||
tray_type?: string | null
|
|
||||||
/** @description The tray uuid. */
|
|
||||||
tray_uuid?: string | null
|
|
||||||
/** @description The tray weight. */
|
|
||||||
tray_weight?: string | null
|
|
||||||
/** @description The xcam info. */
|
|
||||||
xcam_info?: string | null
|
|
||||||
} & {
|
|
||||||
[key: string]: unknown
|
|
||||||
}
|
}
|
||||||
/** @description A print upgrade state. */
|
|
||||||
PrintUpgradeState: {
|
|
||||||
/** @description The consistency request. */
|
|
||||||
consistency_request?: boolean | null
|
|
||||||
/**
|
|
||||||
* Format: int64
|
|
||||||
* @description The dis state.
|
|
||||||
*/
|
|
||||||
dis_state?: number | null
|
|
||||||
/**
|
|
||||||
* Format: int64
|
|
||||||
* @description The error code.
|
|
||||||
*/
|
|
||||||
err_code?: number | null
|
|
||||||
/** @description Force upgrade? */
|
|
||||||
force_upgrade?: boolean | null
|
|
||||||
/** @description The message. */
|
|
||||||
message?: string | null
|
|
||||||
/** @description The module. */
|
|
||||||
module?: string | null
|
|
||||||
/** @description The new version list. */
|
|
||||||
new_ver_list?: unknown[] | null
|
|
||||||
/**
|
|
||||||
* Format: int64
|
|
||||||
* @description The new version state.
|
|
||||||
*/
|
|
||||||
new_version_state?: number | null
|
|
||||||
/** @description The progress. */
|
|
||||||
progress?: string | null
|
|
||||||
/**
|
|
||||||
* Format: int64
|
|
||||||
* @description The sequence id.
|
|
||||||
*/
|
|
||||||
sequence_id?: number | null
|
|
||||||
/** @description The status. */
|
|
||||||
status?: string | null
|
|
||||||
} & {
|
|
||||||
[key: string]: unknown
|
|
||||||
}
|
|
||||||
/** @description The print upload. */
|
|
||||||
PrintUpload: {
|
|
||||||
/** @description The message. */
|
|
||||||
message: string
|
|
||||||
/**
|
|
||||||
* Format: int64
|
|
||||||
* @description The progress.
|
|
||||||
*/
|
|
||||||
progress: number
|
|
||||||
/** @description The status. */
|
|
||||||
status: string
|
|
||||||
} & {
|
|
||||||
[key: string]: unknown
|
|
||||||
}
|
|
||||||
/** @description A reason for a message. */
|
|
||||||
Reason:
|
|
||||||
| 'SUCCESS'
|
|
||||||
| 'FAIL'
|
|
||||||
| {
|
|
||||||
UNKNOWN: string
|
|
||||||
}
|
|
||||||
/** @description The result of a message. */
|
|
||||||
Result: 'SUCCESS' | 'FAIL'
|
|
||||||
/** @description A security message. */
|
|
||||||
Security: {
|
|
||||||
/**
|
|
||||||
* Format: int64
|
|
||||||
* @description The address.
|
|
||||||
*/
|
|
||||||
address: number
|
|
||||||
/** @description The chip sn. */
|
|
||||||
chip_sn: string
|
|
||||||
/**
|
|
||||||
* Format: int64
|
|
||||||
* @description The chip sn length.
|
|
||||||
*/
|
|
||||||
chipsn_len: number
|
|
||||||
/** @enum {string} */
|
|
||||||
command: 'get_sn'
|
|
||||||
/**
|
|
||||||
* Format: int64
|
|
||||||
* @description The length.
|
|
||||||
*/
|
|
||||||
length: number
|
|
||||||
/** @description The module. */
|
|
||||||
module: string
|
|
||||||
/** @description The reason for the message. */
|
|
||||||
reason?: components['schemas']['Reason'] | null
|
|
||||||
/** @description The sequence id. */
|
|
||||||
sequence_id: components['schemas']['SequenceId']
|
|
||||||
/** @description The serial number. */
|
|
||||||
sn: string
|
|
||||||
/** @description The status. */
|
|
||||||
status: string
|
|
||||||
} & {
|
|
||||||
[key: string]: unknown
|
|
||||||
}
|
|
||||||
/** @description The sequence id type. */
|
|
||||||
SequenceId: string | number
|
|
||||||
/** @description A system command. */
|
|
||||||
System:
|
|
||||||
| ({
|
|
||||||
/** @enum {string} */
|
|
||||||
command: 'ledctrl'
|
|
||||||
/**
|
|
||||||
* Format: uint32
|
|
||||||
* @description The interval time.
|
|
||||||
*/
|
|
||||||
interval_time: number
|
|
||||||
/** @description The LED mode. */
|
|
||||||
led_mode: components['schemas']['LedMode']
|
|
||||||
/** @description The LED node. */
|
|
||||||
led_node: components['schemas']['LedNode']
|
|
||||||
/**
|
|
||||||
* Format: uint32
|
|
||||||
* @description The LED off time.
|
|
||||||
*/
|
|
||||||
led_off_time: number
|
|
||||||
/**
|
|
||||||
* Format: uint32
|
|
||||||
* @description The LED on time.
|
|
||||||
*/
|
|
||||||
led_on_time: number
|
|
||||||
/**
|
|
||||||
* Format: uint32
|
|
||||||
* @description The loop times.
|
|
||||||
*/
|
|
||||||
loop_times: number
|
|
||||||
/** @description The reason for the message. */
|
|
||||||
reason?: components['schemas']['Reason'] | null
|
|
||||||
/** @description The result of the command. */
|
|
||||||
result: components['schemas']['Result']
|
|
||||||
/** @description The sequence id. */
|
|
||||||
sequence_id: components['schemas']['SequenceId']
|
|
||||||
} & {
|
|
||||||
[key: string]: unknown
|
|
||||||
})
|
|
||||||
| ({
|
|
||||||
/** @description The accessory type. */
|
|
||||||
accessory_type: components['schemas']['AccessoryType']
|
|
||||||
/** @description The aux part fan. */
|
|
||||||
aux_part_fan: boolean
|
|
||||||
/** @enum {string} */
|
|
||||||
command: 'get_accessories'
|
|
||||||
/**
|
|
||||||
* Format: double
|
|
||||||
* @description The nozzle diameter.
|
|
||||||
*/
|
|
||||||
nozzle_diameter: number
|
|
||||||
/** @description The nozzle type. */
|
|
||||||
nozzle_type: components['schemas']['NozzleType']
|
|
||||||
/** @description The reason for the message. */
|
|
||||||
reason?: components['schemas']['Reason'] | null
|
|
||||||
/** @description The result of the command. */
|
|
||||||
result: components['schemas']['Result']
|
|
||||||
/** @description The sequence id. */
|
|
||||||
sequence_id: components['schemas']['SequenceId']
|
|
||||||
} & {
|
|
||||||
[key: string]: unknown
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
responses: {
|
responses: {
|
||||||
/** @description Error */
|
/** @description Error */
|
||||||
@ -980,9 +233,7 @@ export interface operations {
|
|||||||
[name: string]: unknown
|
[name: string]: unknown
|
||||||
}
|
}
|
||||||
content: {
|
content: {
|
||||||
'application/json': {
|
'application/json': components['schemas']['MachineInfoResponse'][]
|
||||||
[key: string]: components['schemas']['Machine']
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
'4XX': components['responses']['Error']
|
'4XX': components['responses']['Error']
|
||||||
@ -1007,7 +258,7 @@ export interface operations {
|
|||||||
[name: string]: unknown
|
[name: string]: unknown
|
||||||
}
|
}
|
||||||
content: {
|
content: {
|
||||||
'application/json': components['schemas']['Message']
|
'application/json': components['schemas']['MachineInfoResponse']
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
'4XX': components['responses']['Error']
|
'4XX': components['responses']['Error']
|
||||||
|
@ -1,15 +1,16 @@
|
|||||||
import { isDesktop } from './isDesktop'
|
import { isDesktop } from './isDesktop'
|
||||||
import { components } from './machine-api'
|
import { components } from './machine-api'
|
||||||
|
|
||||||
export type MachinesListing = {
|
export type MachinesListing = Array<
|
||||||
[key: string]: components['schemas']['Machine']
|
components['schemas']['MachineInfoResponse']
|
||||||
}
|
>
|
||||||
|
|
||||||
export class MachineManager {
|
export class MachineManager {
|
||||||
private _isDesktop: boolean = isDesktop()
|
private _isDesktop: boolean = isDesktop()
|
||||||
private _machines: MachinesListing = {}
|
private _machines: MachinesListing = []
|
||||||
private _machineApiIp: string | null = null
|
private _machineApiIp: string | null = null
|
||||||
private _currentMachine: components['schemas']['Machine'] | null = null
|
private _currentMachine: components['schemas']['MachineInfoResponse'] | null =
|
||||||
|
null
|
||||||
|
|
||||||
constructor() {
|
constructor() {
|
||||||
if (!this._isDesktop) {
|
if (!this._isDesktop) {
|
||||||
@ -44,7 +45,7 @@ export class MachineManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
machineCount(): number {
|
machineCount(): number {
|
||||||
return Object.keys(this._machines).length
|
return this._machines.length
|
||||||
}
|
}
|
||||||
|
|
||||||
get machineApiIp(): string | null {
|
get machineApiIp(): string | null {
|
||||||
@ -64,11 +65,13 @@ export class MachineManager {
|
|||||||
return 'Machine API server was discovered, but no machines are available'
|
return 'Machine API server was discovered, but no machines are available'
|
||||||
}
|
}
|
||||||
|
|
||||||
get currentMachine(): components['schemas']['Machine'] | null {
|
get currentMachine(): components['schemas']['MachineInfoResponse'] | null {
|
||||||
return this._currentMachine
|
return this._currentMachine
|
||||||
}
|
}
|
||||||
|
|
||||||
set currentMachine(machine: components['schemas']['Machine'] | null) {
|
set currentMachine(
|
||||||
|
machine: components['schemas']['MachineInfoResponse'] | null
|
||||||
|
) {
|
||||||
this._currentMachine = machine
|
this._currentMachine = machine
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -52,7 +52,7 @@ const kittycad = (access: string, args: any) =>
|
|||||||
// bite our butts.
|
// bite our butts.
|
||||||
const listMachines = async (): Promise<MachinesListing> => {
|
const listMachines = async (): Promise<MachinesListing> => {
|
||||||
const machineApi = await ipcRenderer.invoke('find_machine_api')
|
const machineApi = await ipcRenderer.invoke('find_machine_api')
|
||||||
if (!machineApi) return {}
|
if (!machineApi) return []
|
||||||
|
|
||||||
return fetch(`http://${machineApi}/machines`).then((resp) => resp.json())
|
return fetch(`http://${machineApi}/machines`).then((resp) => resp.json())
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user