bbl min add printer status and print control buttons

This commit is contained in:
Stewart Allen 2025-02-01 01:36:56 -05:00
commit 3e27f195d0
2 changed files with 49 additions and 18 deletions

View file

@ -170,10 +170,10 @@ self.kiri.load(api => {
upload
} = print || {};
$('bbl_noz').value = nozzle_diameter || '';
$('bbl_noz_temp').value = nozzle_temper ?? '';
$('bbl_noz_target').value = nozzle_target_temper ?? '';
$('bbl_bed_temp').value = bed_temper ?? '';
$('bbl_bed_target').value = bed_target_temper ?? '';
$('bbl_noz_temp').value = nozzle_temper?.toFixed(1) ?? '';
$('bbl_noz_target').value = nozzle_target_temper?.toFixed(1) ?? '';
$('bbl_bed_temp').value = bed_temper?.toFixed(1) ?? '';
$('bbl_bed_target').value = bed_target_temper?.toFixed(1) ?? '';
if (files) {
h.bind($('bbl_files'), files.map(file => {
return h.option({
@ -183,6 +183,13 @@ self.kiri.load(api => {
}));
rec.files = undefined;
}
if (print_error) {
bbl_status.value = `print error ${print_error}`
} else if (mc_remaining_time) {
bbl_status.value = `printing layer ${layer_num} of ${total_layer_num} | ${mc_percent}% complete | ${mc_remaining_time} minutes left`
} else {
bbl_status.value = `printer idle`;
}
}
function printer_status(msg) {
@ -211,15 +218,26 @@ self.kiri.load(api => {
function monitor_keepalive() {
// console.log({ keepalive: selected });
if (selected?.rec?.serial) {
socket.send({ cmd: "keepalive", serial: selected.rec.serial });
}
// if (monitoring()) {
// socket.send({ cmd: "keepalive", serial: selected.rec.serial });
// }
cmd_if("keepalive");
}
function monitor_stop() {
socket.stop();
}
function monitoring() {
return selected?.rec?.serial ? true : false;
}
function cmd_if(cmd) {
if (monitoring()) {
socket.send({ cmd, serial: selected.rec.serial });
}
}
function list_files() {
if (selected?.rec?.host) {
socket.send({ cmd: "files", ...selected.rec });
@ -312,11 +330,11 @@ self.kiri.load(api => {
]),
h.div({ class: "var-row" }, [
h.label('temp'),
h.input({ id: "bbl_noz_temp", size: 8 })
h.input({ id: "bbl_noz_temp", size: 5 })
]),
h.div({ class: "var-row" }, [
h.label('target'),
h.input({ id: "bbl_noz_target", size: 8 })
h.input({ id: "bbl_noz_target", size: 5 })
])
]),
h.div({ class: "t-body t-inset f-col" }, [
@ -325,11 +343,11 @@ self.kiri.load(api => {
]),
h.div({ class: "var-row" }, [
h.label('temp'),
h.input({ id: "bbl_bed_temp", size: 8 })
h.input({ id: "bbl_bed_temp", size: 5 })
]),
h.div({ class: "var-row" }, [
h.label('target'),
h.input({ id: "bbl_bed_target", size: 8 })
h.input({ id: "bbl_bed_target", size: 5 })
])
])
]),
@ -358,6 +376,9 @@ self.kiri.load(api => {
h.div({ class: "gap4" }, [
h.label({ class: "set-header dev-sel" }, [ h.a('status') ]),
h.input({ id: "bbl_status", class: "t-left mono grow" }),
h.button({ _: "pause", class: "a-center", onclick() { cmd_if("pause") } }),
h.button({ _: "resume", class: "a-center", onclick() { cmd_if("resume") } }),
h.button({ _: "cancel", class: "a-center", onclick() { cmd_if("cancel") } }),
])
]), { before: true });
select = modal.bbl_sel;

View file

@ -145,12 +145,9 @@ module.exports = async (server) => {
async function ftp_list(args = {}) {
const client = await ftp_open(args);
const list = [];
try {
list.push(...(await client.list()));
list.push(...(await client.list("/cache")));
} finally {
client.close();
}
try { list.push(...(await client.list())) } catch (e) { }
try { list.push(...(await client.list("/cache"))) } catch (e) { }
client.close();
return list;
}
@ -268,19 +265,32 @@ module.exports = async (server) => {
break;
case "files":
ftp_list({ host, code }).then(files => {
util.log({ ftp_files: files.length });
// console.log(JSON.stringify(files,undefined,4));
files = files
.filter(file => file.name.toLowerCase().endsWith(".3mf"))
.map(file => {
return {
name: file.name,
size: file.size
size: file.size,
date: file.rawModifiedAt
};
});
wsend({ serial, message: { files }});
}).catch(error => {
util.log({ ftp_error: error });
wsend({ serial, error: error.message || error.toString() });
});
break;
case "pause":
wsend({ print: { command: "pause", sequence_id: "0" } });
break;
case "resume":
wsend({ print: { command: "resume", sequence_id: "0" } });
break;
case "cancel":
wsend({ print: { command: "stop", sequence_id: "0", param: "" } });
break;
case "keepalive":
// util.log({ keepalive: serial });
mcache[serial]?.keepalive();