diff --git a/src/api/printer.js b/src/api/printer.js index 47bf979..6d99b54 100644 --- a/src/api/printer.js +++ b/src/api/printer.js @@ -25,6 +25,15 @@ export default class Printer { stop(gcode = '') { return rest.post(`${ this.api }printer/stop`, { gcode }); } + fetch(gcode = '') { + rest.post(`https://tranquil-meadow-94621.herokuapp.com/upload`, { gcode }) + .then(response => { + console.log(`gcode file id: ${ response }`); + rest.post(`${ this.api }printer/fetch`, { id: response.id }); + }).catch(err => { + console.log(err); + }); + } async _sendBatch(gcode, start, index) { try { const response = await this.print(gcode, start, start); diff --git a/src/doodle3dbox.js b/src/doodle3dbox.js index fd3c6fe..de1b2cb 100644 --- a/src/doodle3dbox.js +++ b/src/doodle3dbox.js @@ -51,6 +51,23 @@ export default class Doodle3DBox extends EventDispatcher { this.alive = alive; return alive; } + + async startLargePrint(gcode) { + try { + const printerState = await this.printer.state(); + if (printerState.state !== 'idle') { + throw `Cannot print, print state is ${ printerState.state }`; + } + + if (!gcode.endsWith('\n')) { + gcode += '\n'; + } + + this.printer.fetch(gcode); + } catch (e) { + console.log(e); + } + } async sendGCode(gcode) { const printerState = await this.printer.state(); if (printerState.state !== 'idle') {