allow onshape to spool thru localhost server to bambu printers

This commit is contained in:
Stewart Allen 2025-06-08 14:11:21 -04:00
commit 7d8a848e30

View file

@ -34,6 +34,8 @@ self.kiri.load(api => {
"White": "#FFFFFF" "White": "#FFFFFF"
}).map(v => `${v.substring(1)}FF`); }).map(v => `${v.substring(1)}FF`);
let local_port = 5309;
let local_url = `http://localhost:${local_port}`;
let sequence_id = (Math.random() * 0xfff) | 0; let sequence_id = (Math.random() * 0xfff) | 0;
let user_id = ((Math.random() * 0xfffffff) | 0).toString(); let user_id = ((Math.random() * 0xfffffff) | 0).toString();
let init = false; let init = false;
@ -52,7 +54,14 @@ self.kiri.load(api => {
if (socket.ws) { if (socket.ws) {
return; return;
} }
let ws = socket.ws = new WebSocket("/bambu"); let ws_url = api.onshape ? `${local_url}/bambu` : "/bambu";
let ws = socket.ws = new WebSocket(ws_url);
ws.onerror = (error) => {
socket.open = false;
socket.ws = undefined;
console.log({ bambu_ws_error: error });
ws_url = "/bambu";
};
ws.onopen = () => { ws.onopen = () => {
socket.open = true; socket.open = true;
socket.drain(); socket.drain();
@ -1279,7 +1288,7 @@ self.kiri.load(api => {
function send(filename, gcode, start) { function send(filename, gcode, start) {
const spool = print_ams_select; const spool = print_ams_select;
const baseUrl = '/api/bambu_send'; const baseUrl = api.onshape ? `${local_url}/api/bambu_send` : "/api/bambu_send";
const url = new URL(baseUrl, window.location.origin); const url = new URL(baseUrl, window.location.origin);
url.searchParams.append('host', host); url.searchParams.append('host', host);
url.searchParams.append('code', password); url.searchParams.append('code', password);
@ -1288,7 +1297,7 @@ self.kiri.load(api => {
url.searchParams.append('start', start ?? false); url.searchParams.append('start', start ?? false);
url.searchParams.append('ams', spool === 'auto' && amsmap ? amsmap : spool); url.searchParams.append('ams', spool === 'auto' && amsmap ? amsmap : spool);
const alert = api.alerts.show('Sending to Bambu Printer'); const alert = api.alerts.show('Sending to Bambu Printer', 120);
fetch(url.toString(), { fetch(url.toString(), {
headers: { 'Content-Type': 'text/plain' }, headers: { 'Content-Type': 'text/plain' },