Ajout FishPeper

This commit is contained in:
Serge NOEL
2026-04-21 12:19:15 +02:00
parent 6744da3f88
commit 0c361a2440
2160 changed files with 589301 additions and 1 deletions

286
cncjs/test/marlin.js Normal file
View File

@@ -0,0 +1,286 @@
import { test } from 'tap';
import MarlinRunner from '../src/server/controllers/Marlin/MarlinRunner';
test('MarlinLineParserResultEcho', (t) => {
const runner = new MarlinRunner();
runner.on('echo', ({ raw, message }) => {
t.equal(raw, 'echo:message');
t.equal(message, 'message');
t.end();
});
const line = 'echo:message';
runner.parse(line);
});
test('MarlinLineParserResultError', (t) => {
const runner = new MarlinRunner();
runner.on('error', ({ raw, message }) => {
t.equal(raw, 'Error:Printer halted. kill() called!');
t.equal(message, 'Printer halted. kill() called!');
t.end();
});
const line = 'Error:Printer halted. kill() called!';
runner.parse(line);
});
test('MarlinLineParserResultFirmware', (t) => {
const runner = new MarlinRunner();
runner.on('firmware', (payload) => {
const { raw, firmwareName, protocolVersion, machineType, extruderCount, uuid } = payload;
t.equal(raw, 'FIRMWARE_NAME:Marlin 1.1.0 (Github) SOURCE_CODE_URL:https://github.com/MarlinFirmware/Marlin PROTOCOL_VERSION:1.0 MACHINE_TYPE:RepRap EXTRUDER_COUNT:1 UUID:cede2a2f-41a2-4748-9b12-c55c62f367ff');
t.equal(firmwareName, 'Marlin 1.1.0');
t.equal(protocolVersion, '1.0');
t.equal(machineType, 'RepRap');
t.equal(extruderCount, 1);
t.equal(uuid, 'cede2a2f-41a2-4748-9b12-c55c62f367ff');
t.end();
});
const line = 'FIRMWARE_NAME:Marlin 1.1.0 (Github) SOURCE_CODE_URL:https://github.com/MarlinFirmware/Marlin PROTOCOL_VERSION:1.0 MACHINE_TYPE:RepRap EXTRUDER_COUNT:1 UUID:cede2a2f-41a2-4748-9b12-c55c62f367ff';
runner.parse(line);
});
test('MarlinLineParserResultOk', (t) => {
const runner = new MarlinRunner();
runner.on('ok', ({ raw }) => {
t.equal(raw, 'ok');
t.end();
});
const line = 'ok';
runner.parse(line);
});
test('MarlinLineParserResultPosition', (t) => {
const runner = new MarlinRunner();
runner.on('pos', ({ raw, pos }) => {
t.equal(raw, 'X:1.529 Y:-5.440 Z:0.00 E:0.00 Count X:0 Y:0 Z:0');
t.same(pos, {
x: '1.529',
y: '-5.440',
z: '0.00',
e: '0.00'
});
t.end();
});
const line = 'X:1.529 Y:-5.440 Z:0.00 E:0.00 Count X:0 Y:0 Z:0';
runner.parse(line);
});
test('MarlinLineParserResultStart', (t) => {
const runner = new MarlinRunner();
runner.on('start', ({ raw }) => {
t.equal(raw, 'start');
t.end();
});
const line = 'start';
runner.parse(line);
});
test('MarlinLineParserResultTemperature', (t) => {
t.test('ok T:0', (t) => {
const runner = new MarlinRunner();
runner.on('temperature', ({ raw, ok, extruder, heatedBed, wait }) => {
t.equal(raw, 'ok T:0');
t.equal(ok, true);
t.same(extruder, {});
t.same(heatedBed, {});
t.equal(wait, undefined);
t.end();
});
const line = 'ok T:0';
runner.parse(line);
});
t.test('ok T:293.0 /0.0 B:25.9 /0.0 @:0 B@:0', (t) => {
const runner = new MarlinRunner();
runner.on('temperature', ({ raw, ok, extruder, heatedBed, wait }) => {
t.equal(raw, 'ok T:293.0 /0.0 B:25.9 /0.0 @:0 B@:0');
t.equal(ok, true);
t.same(extruder, {
deg: '293.0',
degTarget: '0.0',
power: 0,
});
t.same(heatedBed, {
deg: '25.9',
degTarget: '0.0',
power: 0,
});
t.equal(wait, undefined);
t.end();
});
const line = 'ok T:293.0 /0.0 B:25.9 /0.0 @:0 B@:0';
runner.parse(line);
});
t.test('ok T:293.0 /0.0 B:25.9 /0.0 T0:293.0 /0.0 T1:100.0 /0.0 @:0 B@:0 @0:0 @1:0', (t) => {
const runner = new MarlinRunner();
runner.on('temperature', ({ raw, ok, extruder, heatedBed, wait }) => {
t.equal(raw, 'ok T:293.0 /0.0 B:25.9 /0.0 T0:293.0 /0.0 T1:100.0 /0.0 @:0 B@:0 @0:0 @1:0');
t.equal(ok, true);
t.same(extruder, {
deg: '293.0',
degTarget: '0.0',
power: 0,
});
t.same(heatedBed, {
deg: '25.9',
degTarget: '0.0',
power: 0,
});
t.equal(wait, undefined);
t.end();
});
const line = 'ok T:293.0 /0.0 B:25.9 /0.0 T0:293.0 /0.0 T1:100.0 /0.0 @:0 B@:0 @0:0 @1:0';
runner.parse(line);
});
t.test('ok T:293.0 /0.0 (0.0) B:25.9 /0.0 T0:293.0 /0.0 (0.0) T1:100.0 /0.0 (0.0) @:0 B@:0 @0:0 @1:0', (t) => {
const runner = new MarlinRunner();
runner.on('temperature', ({ raw, ok, extruder, heatedBed, wait }) => {
t.equal(raw, 'ok T:293.0 /0.0 (0.0) B:25.9 /0.0 T0:293.0 /0.0 (0.0) T1:100.0 /0.0 (0.0) @:0 B@:0 @0:0 @1:0');
t.equal(ok, true);
t.same(extruder, {
deg: '293.0',
degTarget: '0.0',
power: 0,
});
t.same(heatedBed, {
deg: '25.9',
degTarget: '0.0',
power: 0,
});
t.equal(wait, undefined);
t.end();
});
const line = 'ok T:293.0 /0.0 (0.0) B:25.9 /0.0 T0:293.0 /0.0 (0.0) T1:100.0 /0.0 (0.0) @:0 B@:0 @0:0 @1:0';
runner.parse(line);
});
t.test('ok T:293.0 /0.0 (0.0) B:25.9 /0.0 T0:293.0 /0.0 (0.0) T1:100.0 /0.0 (0.0) @:0 B@:0 @0:0 @1:0 W:?', (t) => {
const runner = new MarlinRunner();
runner.on('temperature', ({ raw, ok, extruder, heatedBed, wait }) => {
t.equal(raw, 'ok T:293.0 /0.0 (0.0) B:25.9 /0.0 T0:293.0 /0.0 (0.0) T1:100.0 /0.0 (0.0) @:0 B@:0 @0:0 @1:0 W:?');
t.equal(ok, true);
t.same(extruder, {
deg: '293.0',
degTarget: '0.0',
power: 0,
});
t.same(heatedBed, {
deg: '25.9',
degTarget: '0.0',
power: 0,
});
t.equal(wait, '?');
t.end();
});
const line = 'ok T:293.0 /0.0 (0.0) B:25.9 /0.0 T0:293.0 /0.0 (0.0) T1:100.0 /0.0 (0.0) @:0 B@:0 @0:0 @1:0 W:?';
runner.parse(line);
});
t.test('ok T:293.0 /0.0 (0.0) B:25.9 /0.0 T0:293.0 /0.0 (0.0) T1:100.0 /0.0 (0.0) @:0 B@:0 @0:0 @1:0 W:0', (t) => {
const runner = new MarlinRunner();
runner.on('temperature', ({ raw, ok, extruder, heatedBed, wait }) => {
t.equal(raw, 'ok T:293.0 /0.0 (0.0) B:25.9 /0.0 T0:293.0 /0.0 (0.0) T1:100.0 /0.0 (0.0) @:0 B@:0 @0:0 @1:0 W:0');
t.equal(ok, true);
t.same(extruder, {
deg: '293.0',
degTarget: '0.0',
power: 0,
});
t.same(heatedBed, {
deg: '25.9',
degTarget: '0.0',
power: 0,
});
t.equal(wait, '0');
t.end();
});
const line = 'ok T:293.0 /0.0 (0.0) B:25.9 /0.0 T0:293.0 /0.0 (0.0) T1:100.0 /0.0 (0.0) @:0 B@:0 @0:0 @1:0 W:0';
runner.parse(line);
});
t.test(' T:293.0 /0.0 B:25.9 /0.0 @:0 B@:0', (t) => {
const runner = new MarlinRunner();
runner.on('temperature', ({ raw, ok, extruder, heatedBed, wait }) => {
t.equal(raw, ' T:293.0 /0.0 B:25.9 /0.0 @:0 B@:0');
t.equal(ok, false);
t.same(extruder, {
deg: '293.0',
degTarget: '0.0',
power: 0,
});
t.same(heatedBed, {
deg: '25.9',
degTarget: '0.0',
power: 0,
});
t.equal(wait, undefined);
t.end();
});
const line = ' T:293.0 /0.0 B:25.9 /0.0 @:0 B@:0';
runner.parse(line);
});
t.test(' T:293.0 /0.0 B:25.9 /0.0 T0:293.0 /0.0 T1:100.0 /0.0 @:0 B@:0 @0:0 @1:0', (t) => {
const runner = new MarlinRunner();
runner.on('temperature', ({ raw, ok, extruder, heatedBed, wait }) => {
t.equal(raw, ' T:293.0 /0.0 B:25.9 /0.0 T0:293.0 /0.0 T1:100.0 /0.0 @:0 B@:0 @0:0 @1:0');
t.equal(ok, false);
t.same(extruder, {
deg: '293.0',
degTarget: '0.0',
power: 0,
});
t.same(heatedBed, {
deg: '25.9',
degTarget: '0.0',
power: 0,
});
t.equal(wait, undefined);
t.end();
});
const line = ' T:293.0 /0.0 B:25.9 /0.0 T0:293.0 /0.0 T1:100.0 /0.0 @:0 B@:0 @0:0 @1:0';
runner.parse(line);
});
t.test(' T:293.0 /0.0 (0.0) B:25.9 /0.0 T0:293.0 /0.0 (0.0) T1:100.0 /0.0 (0.0) @:0 B@:0 @0:0 @1:0', (t) => {
const runner = new MarlinRunner();
runner.on('temperature', ({ raw, ok, extruder, heatedBed, wait }) => {
t.equal(raw, ' T:293.0 /0.0 (0.0) B:25.9 /0.0 T0:293.0 /0.0 (0.0) T1:100.0 /0.0 (0.0) @:0 B@:0 @0:0 @1:0');
t.equal(ok, false);
t.same(extruder, {
deg: '293.0',
degTarget: '0.0',
power: 0,
});
t.same(heatedBed, {
deg: '25.9',
degTarget: '0.0',
power: 0,
});
t.equal(wait, undefined);
t.end();
});
const line = ' T:293.0 /0.0 (0.0) B:25.9 /0.0 T0:293.0 /0.0 (0.0) T1:100.0 /0.0 (0.0) @:0 B@:0 @0:0 @1:0';
runner.parse(line);
});
t.end();
});