speed log

This commit is contained in:
ChK
2026-04-20 16:23:38 +02:00
parent 657f460cf2
commit 2af6432a44
6 changed files with 171 additions and 41 deletions

View File

@@ -2521,3 +2521,13 @@
2026-04-20T14:04:29.744Z ::ffff:172.21.0.5: G28
2026-04-20T14:05:42.215Z ::ffff:172.21.0.5: FShow
2026-04-20T14:05:43.968Z ::ffff:172.21.0.5: G91 G1 Y-5 F100
2026-04-20T14:09:48.441Z ::ffff:172.21.0.5: FShow
2026-04-20T14:10:05.670Z ::ffff:172.21.0.5: FShow
2026-04-20T14:10:07.166Z ::ffff:172.21.0.5: G91 G1 Y-5 F100
2026-04-20T14:18:19.041Z ::ffff:172.21.0.5: FShow
2026-04-20T14:18:22.769Z ::ffff:172.21.0.5: G28
2026-04-20T14:18:35.198Z ::ffff:172.21.0.5: G91 G1 Y-5 F100
2026-04-20T14:20:42.573Z ::ffff:172.21.0.5: G91 G1 Y-5 F100
2026-04-20T14:22:23.960Z ::ffff:172.21.0.5: FShow
2026-04-20T14:22:35.328Z ::ffff:172.21.0.5: G28
2026-04-20T14:22:45.712Z ::ffff:172.21.0.5: G91 G1 Y-5 F100

View File

@@ -11936,3 +11936,121 @@
2026-04-20T14:06:32.584Z ::ffff:172.21.0.5: Ping
2026-04-20T14:06:37.576Z ::ffff:172.21.0.5: Ping
2026-04-20T14:06:42.583Z ::ffff:172.21.0.5: Ping
2026-04-20T14:06:47.584Z ::ffff:172.21.0.5: Ping
2026-04-20T14:06:47.585Z ::ffff:172.21.0.5: Ping
2026-04-20T14:07:42.909Z ::ffff:172.21.0.5: Ping
2026-04-20T14:07:47.573Z ::ffff:172.21.0.5: Ping
2026-04-20T14:07:47.574Z ::ffff:172.21.0.5: Ping
2026-04-20T14:07:52.574Z ::ffff:172.21.0.5: Ping
2026-04-20T14:07:57.084Z ::ffff:172.21.0.5: Ping
2026-04-20T14:08:02.584Z ::ffff:172.21.0.5: Ping
2026-04-20T14:08:07.584Z ::ffff:172.21.0.5: Ping
2026-04-20T14:08:12.571Z ::ffff:172.21.0.5: Ping
2026-04-20T14:08:17.582Z ::ffff:172.21.0.5: Ping
2026-04-20T14:08:22.573Z ::ffff:172.21.0.5: Ping
2026-04-20T14:08:27.569Z ::ffff:172.21.0.5: Ping
2026-04-20T14:08:32.578Z ::ffff:172.21.0.5: Ping
2026-04-20T14:08:37.570Z ::ffff:172.21.0.5: Ping
2026-04-20T14:08:42.571Z ::ffff:172.21.0.5: Ping
2026-04-20T14:08:47.572Z ::ffff:172.21.0.5: Ping
2026-04-20T14:08:47.579Z ::ffff:172.21.0.5: Ping
2026-04-20T14:08:52.573Z ::ffff:172.21.0.5: Ping
2026-04-20T14:08:57.574Z ::ffff:172.21.0.5: Ping
2026-04-20T14:09:47.577Z ::ffff:172.21.0.5: Ping
2026-04-20T14:09:53.219Z ::ffff:172.21.0.5: Ping
2026-04-20T14:09:58.577Z ::ffff:172.21.0.5: Ping
2026-04-20T14:10:03.218Z ::ffff:172.21.0.5: Ping
2026-04-20T14:10:10.576Z ::ffff:172.21.0.5: Ping
2026-04-20T14:10:15.583Z ::ffff:172.21.0.5: Ping
2026-04-20T14:10:20.583Z ::ffff:172.21.0.5: Ping
2026-04-20T14:10:25.578Z ::ffff:172.21.0.5: Ping
2026-04-20T14:10:30.578Z ::ffff:172.21.0.5: Ping
2026-04-20T14:10:35.576Z ::ffff:172.21.0.5: Ping
2026-04-20T14:10:40.581Z ::ffff:172.21.0.5: Ping
2026-04-20T14:10:45.581Z ::ffff:172.21.0.5: Ping
2026-04-20T14:10:47.570Z ::ffff:172.21.0.5: Ping
2026-04-20T14:10:50.570Z ::ffff:172.21.0.5: Ping
2026-04-20T14:10:55.577Z ::ffff:172.21.0.5: Ping
2026-04-20T14:11:00.580Z ::ffff:172.21.0.5: Ping
2026-04-20T14:11:05.573Z ::ffff:172.21.0.5: Ping
2026-04-20T14:11:47.569Z ::ffff:172.21.0.5: Ping
2026-04-20T14:11:47.570Z ::ffff:172.21.0.5: Ping
2026-04-20T14:12:47.567Z ::ffff:172.21.0.5: Ping
2026-04-20T14:12:47.568Z ::ffff:172.21.0.5: Ping
2026-04-20T14:13:47.573Z ::ffff:172.21.0.5: Ping
2026-04-20T14:13:55.779Z ::ffff:172.21.0.5: Ping
2026-04-20T14:14:00.579Z ::ffff:172.21.0.5: Ping
2026-04-20T14:14:05.578Z ::ffff:172.21.0.5: Ping
2026-04-20T14:14:10.666Z ::ffff:172.21.0.5: Ping
2026-04-20T14:14:15.579Z ::ffff:172.21.0.5: Ping
2026-04-20T14:14:20.577Z ::ffff:172.21.0.5: Ping
2026-04-20T14:14:47.584Z ::ffff:172.21.0.5: Ping
2026-04-20T14:14:47.585Z ::ffff:172.21.0.5: Ping
2026-04-20T14:15:47.569Z ::ffff:172.21.0.5: Ping
2026-04-20T14:15:47.577Z ::ffff:172.21.0.5: Ping
2026-04-20T14:16:47.585Z ::ffff:172.21.0.5: Ping
2026-04-20T14:16:55.581Z ::ffff:172.21.0.5: Ping
2026-04-20T14:17:00.570Z ::ffff:172.21.0.5: Ping
2026-04-20T14:17:05.573Z ::ffff:172.21.0.5: Ping
2026-04-20T14:17:10.580Z ::ffff:172.21.0.5: Ping
2026-04-20T14:17:15.576Z ::ffff:172.21.0.5: Ping
2026-04-20T14:17:20.577Z ::ffff:172.21.0.5: Ping
2026-04-20T14:17:35.127Z ::ffff:172.21.0.5: Ping
2026-04-20T14:17:35.436Z ::ffff:172.21.0.5: Ping
2026-04-20T14:17:40.573Z ::ffff:172.21.0.5: Ping
2026-04-20T14:17:47.580Z ::ffff:172.21.0.5: Ping
2026-04-20T14:17:50.577Z ::ffff:172.21.0.5: Ping
2026-04-20T14:17:55.573Z ::ffff:172.21.0.5: Ping
2026-04-20T14:18:00.572Z ::ffff:172.21.0.5: Ping
2026-04-20T14:18:05.586Z ::ffff:172.21.0.5: Ping
2026-04-20T14:18:10.571Z ::ffff:172.21.0.5: Ping
2026-04-20T14:18:15.443Z ::ffff:172.21.0.5: Ping
2026-04-20T14:18:23.798Z ::ffff:172.21.0.5: Ping
2026-04-20T14:18:29.568Z ::ffff:172.21.0.5: Ping
2026-04-20T14:18:33.796Z ::ffff:172.21.0.5: Ping
2026-04-20T14:18:39.572Z ::ffff:172.21.0.5: Ping
2026-04-20T14:18:44.576Z ::ffff:172.21.0.5: Ping
2026-04-20T14:18:47.578Z ::ffff:172.21.0.5: Ping
2026-04-20T14:18:49.578Z ::ffff:172.21.0.5: Ping
2026-04-20T14:18:54.574Z ::ffff:172.21.0.5: Ping
2026-04-20T14:18:59.583Z ::ffff:172.21.0.5: Ping
2026-04-20T14:19:04.568Z ::ffff:172.21.0.5: Ping
2026-04-20T14:19:09.572Z ::ffff:172.21.0.5: Ping
2026-04-20T14:19:15.099Z ::ffff:172.21.0.5: Ping
2026-04-20T14:19:19.572Z ::ffff:172.21.0.5: Ping
2026-04-20T14:19:24.577Z ::ffff:172.21.0.5: Ping
2026-04-20T14:19:29.576Z ::ffff:172.21.0.5: Ping
2026-04-20T14:19:34.571Z ::ffff:172.21.0.5: Ping
2026-04-20T14:19:47.578Z ::ffff:172.21.0.5: Ping
2026-04-20T14:19:47.580Z ::ffff:172.21.0.5: Ping
2026-04-20T14:20:41.095Z ::ffff:172.21.0.5: Ping
2026-04-20T14:20:43.802Z ::ffff:172.21.0.5: Ping
2026-04-20T14:20:47.574Z ::ffff:172.21.0.5: Ping
2026-04-20T14:20:48.798Z ::ffff:172.21.0.5: Ping
2026-04-20T14:20:53.808Z ::ffff:172.21.0.5: Ping
2026-04-20T14:20:59.582Z ::ffff:172.21.0.5: Ping
2026-04-20T14:21:04.575Z ::ffff:172.21.0.5: Ping
2026-04-20T14:21:09.579Z ::ffff:172.21.0.5: Ping
2026-04-20T14:21:14.569Z ::ffff:172.21.0.5: Ping
2026-04-20T14:21:19.572Z ::ffff:172.21.0.5: Ping
2026-04-20T14:21:24.574Z ::ffff:172.21.0.5: Ping
2026-04-20T14:21:29.576Z ::ffff:172.21.0.5: Ping
2026-04-20T14:21:34.585Z ::ffff:172.21.0.5: Ping
2026-04-20T14:21:39.578Z ::ffff:172.21.0.5: Ping
2026-04-20T14:21:44.579Z ::ffff:172.21.0.5: Ping
2026-04-20T14:21:47.581Z ::ffff:172.21.0.5: Ping
2026-04-20T14:21:49.579Z ::ffff:172.21.0.5: Ping
2026-04-20T14:22:29.571Z ::ffff:172.21.0.5: Ping
2026-04-20T14:22:33.733Z ::ffff:172.21.0.5: Ping
2026-04-20T14:22:38.730Z ::ffff:172.21.0.5: Ping
2026-04-20T14:22:43.738Z ::ffff:172.21.0.5: Ping
2026-04-20T14:22:47.581Z ::ffff:172.21.0.5: Ping
2026-04-20T14:22:47.582Z ::ffff:172.21.0.5: Ping
2026-04-20T14:22:49.582Z ::ffff:172.21.0.5: Ping
2026-04-20T14:22:54.589Z ::ffff:172.21.0.5: Ping
2026-04-20T14:22:59.574Z ::ffff:172.21.0.5: Ping
2026-04-20T14:23:04.579Z ::ffff:172.21.0.5: Ping
2026-04-20T14:23:09.568Z ::ffff:172.21.0.5: Ping
2026-04-20T14:23:14.576Z ::ffff:172.21.0.5: Ping
2026-04-20T14:23:19.578Z ::ffff:172.21.0.5: Ping
2026-04-20T14:23:24.573Z ::ffff:172.21.0.5: Ping

View File

@@ -83,6 +83,8 @@ class GCode{
if(g == undefined) return;
console.log("🔵 GCode.receiveGCode: Incoming command: " + g);
g = g.toString("utf8");
var multipleCommands = g.split(" G");
@@ -120,7 +122,7 @@ class GCode{
if(s.toUpperCase().includes("B")){ robot.theta += Number(s.substring(1, s.length)); robot.bMotorChanged = true;}
if(s.toUpperCase().includes("C")){ robot.psi += Number(s.substring(1, s.length)); robot.cMotorChanged = true;}
if(s.toUpperCase().includes("E")){ robot.e += Number(s.substring(1, s.length)); robot.eMotorChanged = true;}
if(s.toUpperCase().includes("F")){ robot.feedrate = Number(s.substring(1, s.length)); }
if(s.toUpperCase().includes("F")){ robot.feedrate = Number(s.substring(1, s.length)); console.log(" 📌 Feedrate set to: " + robot.feedrate); }
});
}
else if(g[0] == "M1" && robot.moveRelative){
@@ -147,7 +149,7 @@ class GCode{
if(s.toUpperCase().includes("B")){ robot.theta = Number(s.substring(1, s.length)); robot.bMotorChanged = true;}
if(s.toUpperCase().includes("C")){ robot.psi = Number(s.substring(1, s.length)); robot.cMotorChanged = true;}
if(s.toUpperCase().includes("E")){ robot.e = Number(s.substring(1, s.length)); robot.eMotorChanged = true;}
if(s.toUpperCase().includes("F")){ robot.feedrate = Number(s.substring(1, s.length)); }
if(s.toUpperCase().includes("F")){ robot.feedrate = Number(s.substring(1, s.length)); console.log(" 📌 Feedrate set to: " + robot.feedrate); }
});
}
else if(g[0] == "M1" && !robot.moveRelative){

View File

@@ -6,7 +6,7 @@ class Robot{
constructor(l1, l2, l3) {
// Umgebungsvariablen-Logik
const DEFAULT_FEEDRATE = process.env.ROBOT_DEFAULT_FEEDRATE ?
Number(process.env.ROBOT_DEFAULT_FEEDRATE) : 200;
Number(process.env.ROBOT_DEFAULT_FEEDRATE) : 1000;
this.useSpeedCalc = process.env.ROBOT_USE_SPEED_CALC === 'true' ||
process.env.ROBOT_USE_SPEED_CALC === '1';

View File

@@ -77,27 +77,27 @@ module.exports = class TelnetSenderGRBL{
var data = strCommand.toString("utf-8");
if(this.xAxisGrbl == "x" && mNew.xMotorChanged){
if(this.xAxisGrbl == "x" && mNew.xMotorChanged && Number.isFinite(mNew.x)){
data += " x" + (mNew.x).toFixed(2).toString();
}
if(this.xAxisGrbl == "y" && mNew.yMotorChanged){
if(this.xAxisGrbl == "y" && mNew.yMotorChanged && Number.isFinite(mNew.y)){
data += " x" + (mNew.y * 180 / Math.PI).toFixed(2).toString();
}
if(this.xAxisGrbl == "z" && mNew.zMotorChanged){
if(this.xAxisGrbl == "z" && mNew.zMotorChanged && Number.isFinite(mNew.z) && Number.isFinite(mNew.y)){
data += " x" + ((mNew.z * 180 / Math.PI) - (mNew.y * 180 / Math.PI) ).toFixed(2).toString();
}
if(this.xAxisGrbl == "a" && mNew.aMotorChanged){
if(this.xAxisGrbl == "a" && mNew.aMotorChanged && Number.isFinite(mNew.a)){
// This is the case for the Ellbow, when the Motor is connected to the X-Port of the FluidNC
data += " x" + (mNew.a * 180 / Math.PI).toFixed(2).toString();
}
if(this.xAxisGrbl == "b" && (mNew.bMotorChanged || mNew.cMotorChanged)){
if(this.xAxisGrbl == "b" && (mNew.bMotorChanged || mNew.cMotorChanged) && Number.isFinite(mNew.b) && Number.isFinite(mNew.z) && Number.isFinite(mNew.y)){
data += " x" + (mNew.b * 180 / Math.PI+(mNew.z * 180 / Math.PI) - (mNew.y * 180 / Math.PI)).toFixed(2).toString();
}
if(this.xAxisGrbl == "c" && (mNew.bMotorChanged || mNew.cMotorChanged || mNew.zMotorChanged)){
if(this.xAxisGrbl == "c" && (mNew.bMotorChanged || mNew.cMotorChanged || mNew.zMotorChanged) && Number.isFinite(mNew.b) && Number.isFinite(mNew.c)){
// Runs correctly, substracts the "b" axis, uses the "c" axis to send to the x-Motor wich is in this case the hand-twist
data += " x" + ((-1)*mNew.b * 180 / Math.PI + (mNew.c * 180 / Math.PI) ).toFixed(2).toString();
}
if(this.xAxisGrbl == "e" && mNew.eMotorChanged){
if(this.xAxisGrbl == "e" && mNew.eMotorChanged && Number.isFinite(mNew.b) && Number.isFinite(mNew.c) && Number.isFinite(mNew.e)){
//This is the case for the Hand, when the Open-Close Motor is connected to the X-Port of FluidNC
var handUpDown = mNew.b * 180 * factorTurnLift / Math.PI ;
var handTurn = mNew.c*180/Math.PI ;
@@ -106,100 +106,100 @@ module.exports = class TelnetSenderGRBL{
if(this.yAxisGrbl == "x" && mNew.xMotorChanged){
if(this.yAxisGrbl == "x" && mNew.xMotorChanged && Number.isFinite(mNew.x)){
data += " y" + (mNew.x ).toFixed(2).toString();
}
if(this.yAxisGrbl == "y" && mNew.yMotorChanged){
if(this.yAxisGrbl == "y" && mNew.yMotorChanged && Number.isFinite(mNew.y)){
data += " y" + (mNew.y * 180 / Math.PI).toFixed(2).toString();
}
if(this.yAxisGrbl == "z" && mNew.zMotorChanged){
if(this.yAxisGrbl == "z" && mNew.zMotorChanged && Number.isFinite(mNew.z) && Number.isFinite(mNew.y)){
data += " y" + ((mNew.z * 180 / Math.PI) - (mNew.y * 180 / Math.PI) ).toFixed(2).toString();
}
if(this.yAxisGrbl == "a" && mNew.aMotorChanged){
if(this.yAxisGrbl == "a" && mNew.aMotorChanged && Number.isFinite(mNew.a)){
data += " y" + (mNew.a * 180 / Math.PI).toFixed(2).toString();
}
if(this.yAxisGrbl == "b" && (mNew.bMotorChanged || mNew.cMotorChanged || mNew.zMotorChanged)){
if(this.yAxisGrbl == "b" && (mNew.bMotorChanged || mNew.cMotorChanged || mNew.zMotorChanged) && Number.isFinite(mNew.b) && Number.isFinite(mNew.z) && Number.isFinite(mNew.y)){
data += " y" + (mNew.b * 180 / Math.PI+(mNew.z * 180 / Math.PI) - (mNew.y * 180 / Math.PI)).toFixed(2).toString();
}
if(this.yAxisGrbl == "c" && (mNew.bMotorChanged || mNew.cMotorChanged || mNew.zMotorChanged)){
if(this.yAxisGrbl == "c" && (mNew.bMotorChanged || mNew.cMotorChanged || mNew.zMotorChanged) && Number.isFinite(mNew.b) && Number.isFinite(mNew.c)){
// This is the case if the hand-rotation-turner is connected to the FluidNC-Y
var handUpDown = (mNew.b * 180 / Math.PI ) * factorTurnLift;
var handTurn = ( mNew.c*180/Math.PI ) ;
data += " y" + (-1.0*(handUpDown) + handTurn).toFixed(2).toString();
}
if(this.yAxisGrbl == "e" && (mNew.eMotorChanged)){
if(this.yAxisGrbl == "e" && (mNew.eMotorChanged) && Number.isFinite(mNew.e)){
data += " y" + (mNew.e * 180 / Math.PI).toFixed(2).toString();
}
if(this.zAxisGrbl == "x" && mNew.xMotorChanged){
if(this.zAxisGrbl == "x" && mNew.xMotorChanged && Number.isFinite(mNew.x)){
data += " z" + (mNew.x).toFixed(2).toString();
}
if(this.zAxisGrbl == "y" && mNew.yMotorChanged){
if(this.zAxisGrbl == "y" && mNew.yMotorChanged && Number.isFinite(mNew.y)){
data += " z" + (mNew.y * 180 / Math.PI).toFixed(2).toString();
}
if(this.zAxisGrbl == "z" && mNew.zMotorChanged){
if(this.zAxisGrbl == "z" && mNew.zMotorChanged && Number.isFinite(mNew.z) && Number.isFinite(mNew.y)){
data += " z" + ((mNew.z * 180 / Math.PI) - (mNew.y * 180 / Math.PI) ).toFixed(2).toString();
}
if(this.zAxisGrbl == "a" && mNew.aMotorChanged){
if(this.zAxisGrbl == "a" && mNew.aMotorChanged && Number.isFinite(mNew.a)){
data += " z" + (mNew.a * 180 / Math.PI).toFixed(2).toString();
}
if(this.zAxisGrbl == "b" && (mNew.bMotorChanged || mNew.cMotorChanged || mNew.zMotorChanged)){
if(this.zAxisGrbl == "b" && (mNew.bMotorChanged || mNew.cMotorChanged || mNew.zMotorChanged) && Number.isFinite(mNew.b)){
// This is the case of the Hand, when the Up-Down-Motor is connected to the FluidNC-Z
data += " z" + ( mNew.b * 180 / Math.PI ).toFixed(2).toString();
}
if(this.zAxisGrbl == "c" && (mNew.bMotorChanged || mNew.cMotorChanged || mNew.zMotorChanged)){
if(this.zAxisGrbl == "c" && (mNew.bMotorChanged || mNew.cMotorChanged || mNew.zMotorChanged) && Number.isFinite(mNew.c) && Number.isFinite(mNew.b) && Number.isFinite(mNew.z) && Number.isFinite(mNew.y)){
data += " z" + (mNew.c * 180 / Math.PI + (mNew.b * 180 / Math.PI) + (mNew.z * 180 / Math.PI) - (mNew.y * 180 / Math.PI)).toFixed(2).toString();
}
if(this.zAxisGrbl == "e" && (mNew.eMotorChanged)){
if(this.zAxisGrbl == "e" && (mNew.eMotorChanged) && Number.isFinite(mNew.e)){
data += " z" + (mNew.e * 180 / Math.PI).toFixed(2).toString();
}
if(this.aAxisGrbl == "x" && mNew.xMotorChanged){
if(this.aAxisGrbl == "x" && mNew.xMotorChanged && Number.isFinite(mNew.y)){
data += " a" + (mNew.y * 180 / Math.PI).toFixed(2).toString();
}
if(this.aAxisGrbl == "y" && mNew.yMotorChanged){
if(this.aAxisGrbl == "y" && mNew.yMotorChanged && Number.isFinite(mNew.y)){
data += " a" + (mNew.y * 180 / Math.PI).toFixed(2).toString();
}
if(this.aAxisGrbl == "z" && mNew.zMotorChanged){
if(this.aAxisGrbl == "z" && mNew.zMotorChanged && Number.isFinite(mNew.z) && Number.isFinite(mNew.y)){
data += " a" + ((mNew.z * 180 / Math.PI) - (mNew.y * 180 / Math.PI) ).toFixed(2).toString();
}
if(this.aAxisGrbl == "a" && mNew.aMotorChanged){
if(this.aAxisGrbl == "a" && mNew.aMotorChanged && Number.isFinite(mNew.a)){
data += " a" + (mNew.a * 180 / Math.PI).toFixed(2).toString();
}
if(this.aAxisGrbl == "b" && (mNew.bMotorChanged || mNew.cMotorChanged || mNew.zMotorChanged)){
if(this.aAxisGrbl == "b" && (mNew.bMotorChanged || mNew.cMotorChanged || mNew.zMotorChanged) && Number.isFinite(mNew.b) && Number.isFinite(mNew.z) && Number.isFinite(mNew.y)){
data += " a" + (mNew.b * 180 / Math.PI+(mNew.z * 180 / Math.PI) - (mNew.y * 180 / Math.PI)).toFixed(2).toString();
}
if(this.aAxisGrbl == "c" && (mNew.bMotorChanged || mNew.cMotorChanged || mNew.zMotorChanged)){
if(this.aAxisGrbl == "c" && (mNew.bMotorChanged || mNew.cMotorChanged || mNew.zMotorChanged) && Number.isFinite(mNew.c) && Number.isFinite(mNew.b) && Number.isFinite(mNew.z) && Number.isFinite(mNew.y)){
data += " a" + (mNew.c * 180 / Math.PI + (mNew.b * 180 / Math.PI) + (mNew.z * 180 / Math.PI) - (mNew.y * 180 / Math.PI)).toFixed(2).toString();
}
if(this.aAxisGrbl == "e" && mNew.eMotorChanged){
if(this.aAxisGrbl == "e" && mNew.eMotorChanged && Number.isFinite(mNew.e)){
// ToDo Mai 2024
data += " a" + (mNew.e * 180 / Math.PI).toFixed(2).toString();
}
if(this.bAxisGrbl == "x" && mNew.xMotorChanged){
if(this.bAxisGrbl == "x" && mNew.xMotorChanged && Number.isFinite(mNew.x)){
data += " b" + (mNew.x).toFixed(2).toString();
}
if(this.bAxisGrbl == "y" && mNew.yMotorChanged){
if(this.bAxisGrbl == "y" && mNew.yMotorChanged && Number.isFinite(mNew.y)){
data += " b" + (mNew.y * 180 / Math.PI).toFixed(2).toString();
}
if(this.bAxisGrbl == "z" && mNew.zMotorChanged){
if(this.bAxisGrbl == "z" && mNew.zMotorChanged && Number.isFinite(mNew.z) && Number.isFinite(mNew.y)){
data += " b" + ((mNew.z * 180 / Math.PI) - (mNew.y * 180 / Math.PI) ).toFixed(2).toString();
}
if(this.bAxisGrbl == "a" && mNew.aMotorChanged){
if(this.bAxisGrbl == "a" && mNew.aMotorChanged && Number.isFinite(mNew.a)){
data += " b" + (mNew.a * 180 / Math.PI).toFixed(2).toString();
}
if(this.bAxisGrbl == "b" && (mNew.bMotorChanged || mNew.cMotorChanged || mNew.zMotorChanged)){
if(this.bAxisGrbl == "b" && (mNew.bMotorChanged || mNew.cMotorChanged || mNew.zMotorChanged) && Number.isFinite(mNew.b)){
data += " b" + (mNew.b * 180 / Math.PI).toFixed(2).toString();
}
if(this.bAxisGrbl == "c" && (mNew.bMotorChanged || mNew.cMotorChanged || mNew.zMotorChanged)){
if(this.bAxisGrbl == "c" && (mNew.bMotorChanged || mNew.cMotorChanged || mNew.zMotorChanged) && Number.isFinite(mNew.c) && Number.isFinite(mNew.b) && Number.isFinite(mNew.z) && Number.isFinite(mNew.y)){
data += " b" + (mNew.c * 180 / Math.PI + (mNew.b * 180 / Math.PI) + (mNew.z * 180 / Math.PI) - (mNew.y * 180 / Math.PI)).toFixed(2).toString();
}
if(this.bAxisGrbl == "e" && mNew.eMotorChanged){
if(this.bAxisGrbl == "e" && mNew.eMotorChanged && Number.isFinite(mNew.e)){
data += " b" + (mNew.e * 180 / Math.PI).toFixed(2).toString();
}

View File

@@ -77,7 +77,7 @@ describe('GCode Speed Tests', () => {
});
test('G1 without Feedrate - should use default f200', () => {
test('G1 without Feedrate - should use default f1000', () => {
const L1 = 300;
const L2 = 300;
const L3 = 20;
@@ -93,8 +93,8 @@ describe('GCode Speed Tests', () => {
// Check default feedrate
expect(telnetSender1.tSocket.written).toContain('G1');
expect(telnetSender1.tSocket.written).toContain('f200');
expect(telnetSender1.tSocket.written).toMatch(/f200\.00/);
expect(telnetSender1.tSocket.written).toContain('f1000');
expect(telnetSender1.tSocket.written).toMatch(/f1000\.00/);
});
test('G1 with different Feedrate F500 - multiple senders', () => {