Fileservice
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
// server/InputWS.js
|
||||
const fs = require('fs');
|
||||
const WebSocket = require('ws');
|
||||
const FCodeClient = require('../robot/FCodeClient');
|
||||
|
||||
const LOG_DIR = './logs';
|
||||
|
||||
@@ -70,18 +71,24 @@ function initInputWS(server, robot, GCode, sharedState) {
|
||||
return;
|
||||
}
|
||||
|
||||
/* ---------- File commands → broadcast result ----------
|
||||
* Behaviour kept as-is on purpose: file/log management (and finer-grained
|
||||
* targeting, e.g. FShow as a requester-only reply) is owned by ToDo 4. */
|
||||
if (GCode.ContainsFilesCommand(message)) {
|
||||
/* ---------- FCode (Datei-Befehle) → weiterleiten an appRobotFileservice ----------
|
||||
* Der Driver ist Gateway: die Steuerungen kennen nur ihn.
|
||||
* Stepping-Befehle (FPlus/FMinus/…) liefern eine driver-native GCode-Zeile
|
||||
* (Radian) zurück, die der Driver direkt ausführt und dann broadcastet. */
|
||||
if (FCodeClient.isFCode(message)) {
|
||||
logCommand(sharedState, clientIP, message);
|
||||
let result;
|
||||
try {
|
||||
result = GCode.receiveFC(robot, message);
|
||||
} catch (err) {
|
||||
return sendError(ws, 'FILE_ERROR', err.message, message);
|
||||
}
|
||||
if (result !== undefined) broadcast(wss, result);
|
||||
FCodeClient.handle(robot, message)
|
||||
.then(result => {
|
||||
if (result.type === 'step' && result.line) {
|
||||
try { GCode.receiveGCode(robot, result.line); } catch (err) {
|
||||
return sendError(ws, 'GCODE_ERROR', err.message, result.line);
|
||||
}
|
||||
broadcast(wss, GCode.getM114(robot));
|
||||
} else if (result.data) {
|
||||
broadcast(wss, result.data);
|
||||
}
|
||||
})
|
||||
.catch(err => sendError(ws, 'FILE_ERROR', err.message, message));
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user