From c838625a864d71a42f485f4df80e0eb147802ba8 Mon Sep 17 00:00:00 2001 From: Simon Voordouw Date: Fri, 12 May 2017 16:33:48 +0200 Subject: [PATCH] implement gcode server support --- src/api/printer.js | 9 +++++++++ src/doodle3dbox.js | 17 +++++++++++++++++ 2 files changed, 26 insertions(+) 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') {