173 lines
5.4 KiB
JavaScript
173 lines
5.4 KiB
JavaScript
import { test } from 'tap';
|
|
import TinyGRunner from '../src/server/controllers/TinyG/TinyGRunner';
|
|
|
|
test('TinyGParserResultMotorTimeout', (t) => {
|
|
t.test('{"r":{"mt":2},"f":[1,0,8]}', (t) => {
|
|
const runner = new TinyGRunner();
|
|
runner.on('mt', (mt) => {
|
|
t.equal(mt, 2);
|
|
t.end();
|
|
});
|
|
|
|
const line = '{"r":{"mt":2},"f":[1,0,8]}';
|
|
runner.parse(line);
|
|
});
|
|
|
|
t.end();
|
|
});
|
|
|
|
test('TinyGParserResultPowerManagement', (t) => {
|
|
t.test('{"r":{"pwr":{"1":0,"2":0,"3":0,"4":0}},"f":[1,0,9]}', (t) => {
|
|
const runner = new TinyGRunner();
|
|
runner.on('pwr', (pwr) => {
|
|
t.same(pwr, { '1': 0, '2': 0, '3': 0, '4': 0 });
|
|
t.end();
|
|
});
|
|
|
|
const line = '{"r":{"pwr":{"1":0,"2":0,"3":0,"4":0}},"f":[1,0,9]}';
|
|
runner.parse(line);
|
|
});
|
|
|
|
t.end();
|
|
});
|
|
|
|
test('TinyGParserResultQueueReports', (t) => {
|
|
t.test('{"qr":48}', (t) => {
|
|
const runner = new TinyGRunner();
|
|
|
|
runner.on('qr', ({ qr, qi, qo }) => {
|
|
t.equal(qr, 48);
|
|
t.equal(qi, 0);
|
|
t.equal(qo, 0);
|
|
t.end();
|
|
});
|
|
|
|
runner.parse('{"qr":48}');
|
|
});
|
|
|
|
t.test('{"r":{"qr":32,"qi":0,"qo":1},"f":[1,0,8]}', (t) => {
|
|
const runner = new TinyGRunner();
|
|
|
|
runner.on('qr', ({ qr, qi, qo }) => {
|
|
t.equal(qr, 32);
|
|
t.equal(qi, 0);
|
|
t.equal(qo, 1);
|
|
t.end();
|
|
});
|
|
|
|
runner.parse('{"r":{"qr":32,"qi":0,"qo":1},"f":[1,0,8]}');
|
|
});
|
|
|
|
t.end();
|
|
});
|
|
|
|
test('TinyGParserResultStatusReports', (t) => {
|
|
t.test('{"sr":{"line":8,"stat":5,"cycs":1,"mots":1}}', (t) => {
|
|
const runner = new TinyGRunner();
|
|
runner.on('sr', ({ line, stat, cycs, mots }) => {
|
|
t.equal(line, 8);
|
|
t.equal(stat, 5);
|
|
t.equal(cycs, 1);
|
|
t.equal(mots, 1);
|
|
t.end();
|
|
});
|
|
|
|
const line = '{"sr":{"line":8,"stat":5,"cycs":1,"mots":1}}';
|
|
runner.parse(line);
|
|
});
|
|
|
|
t.test('{"sr":{"line":0,"vel":688.81,"mots":2,"dist":1,"posx":0.248,"posy":0.248,"mpox":0.248,"mpoy":0.248}}', (t) => {
|
|
const runner = new TinyGRunner();
|
|
runner.on('sr', ({ line, vel, mots, dist, posx, posy, mpox, mpoy }) => {
|
|
t.equal(line, 0);
|
|
t.equal(vel, 688.81);
|
|
t.equal(mots, 2);
|
|
t.equal(dist, 1);
|
|
t.equal(posx, 0.248);
|
|
t.equal(posy, 0.248);
|
|
t.equal(mpox, 0.248);
|
|
t.equal(mpoy, 0.248);
|
|
t.end();
|
|
});
|
|
|
|
const line = '{"sr":{"line":0,"vel":688.81,"mots":2,"dist":1,"posx":0.248,"posy":0.248,"mpox":0.248,"mpoy":0.248}}';
|
|
runner.parse(line);
|
|
});
|
|
|
|
// active tool number
|
|
t.test('{"sr":{"stat":4,"tool":3}}', (t) => {
|
|
const runner = new TinyGRunner();
|
|
runner.on('sr', ({ stat, tool }) => {
|
|
t.equal(tool, 3);
|
|
t.end();
|
|
});
|
|
|
|
const line = '{"sr":{"stat":4,"tool":3}}';
|
|
runner.parse(line);
|
|
});
|
|
|
|
t.end();
|
|
});
|
|
|
|
test('TinyGParserResultSystemSettings', (t) => {
|
|
t.test('{"r":{"sys":{"fb":100.19,"fbs":"100.19-17-g129b","fbc":"settings_othermill.h","fv":0.99,"hp":3,"hv":0,"id":"0084-7bd6-29c6-7bd","jt":0.75,"ct":0.01,"sl":0,"lim":1,"saf":1,"m48e":1,"mfoe":0,"mfo":1,"mtoe":0,"mto":1,"mt":2,"spep":1,"spdp":0,"spph":1,"spdw":1.5,"ssoe":0,"sso":1,"cofp":1,"comp":1,"coph":1,"tv":1,"ej":1,"jv":4,"qv":1,"sv":1,"si":100,"gpl":0,"gun":1,"gco":2,"gpa":2,"gdi":0}},"f":[1,0,9]}', (t) => {
|
|
const runner = new TinyGRunner();
|
|
runner.on('sys', ({ fv, fb, fbs, fbc, hp, hv, id, mfo, mto, sso }) => {
|
|
t.equal(fv, 0.99);
|
|
t.equal(fb, 100.19);
|
|
t.equal(fbs, '100.19-17-g129b');
|
|
t.equal(fbc, 'settings_othermill.h');
|
|
t.equal(hp, 3);
|
|
t.equal(hv, 0);
|
|
t.equal(id, '0084-7bd6-29c6-7bd');
|
|
t.equal(mfo, 1);
|
|
t.equal(mto, 1);
|
|
t.equal(sso, 1);
|
|
t.end();
|
|
});
|
|
|
|
const line = '{"r":{"sys":{"fb":100.19,"fbs":"100.19-17-g129b","fbc":"settings_othermill.h","fv":0.99,"hp":3,"hv":0,"id":"0084-7bd6-29c6-7bd","jt":0.75,"ct":0.01,"sl":0,"lim":1,"saf":1,"m48e":1,"mfoe":0,"mfo":1,"mtoe":0,"mto":1,"mt":2,"spep":1,"spdp":0,"spph":1,"spdw":1.5,"ssoe":0,"sso":1,"cofp":1,"comp":1,"coph":1,"tv":1,"ej":1,"jv":4,"qv":1,"sv":1,"si":100,"gpl":0,"gun":1,"gco":2,"gpa":2,"gdi":0}},"f":[1,0,9]}';
|
|
runner.parse(line);
|
|
});
|
|
|
|
t.end();
|
|
});
|
|
|
|
test('TinyGParserResultOverrides', (t) => {
|
|
t.test('{"r":{"mfo":1.0,"mto":1.0,"sso":1.0},"f":[1,0,21]}', (t) => {
|
|
const runner = new TinyGRunner();
|
|
runner.on('ov', ({ mfo, mto, sso }) => {
|
|
t.assert(mfo, 1.0);
|
|
t.assert(mto, 1.0);
|
|
t.assert(sso, 1.0);
|
|
t.end();
|
|
});
|
|
|
|
const line = '{"r":{"mfo":1.0,"mto":1.0,"sso":1.0},"f":[1,0,21]}';
|
|
runner.parse(line);
|
|
});
|
|
|
|
t.end();
|
|
});
|
|
|
|
test('TinyGParserResultReceiveReports', (t) => {
|
|
t.test('{"r":{},"f":[1,0,4]}', (t) => {
|
|
const runner = new TinyGRunner();
|
|
runner.on('r', (r) => {
|
|
t.same(r, {});
|
|
});
|
|
runner.on('f', (f) => {
|
|
const [revision, statusCode, rxBufferInfo] = f;
|
|
t.equal(revision, 1);
|
|
t.equal(statusCode, 0);
|
|
t.equal(rxBufferInfo, 4);
|
|
t.end();
|
|
});
|
|
|
|
const line = '{"r":{},"f":[1,0,4]}';
|
|
runner.parse(line);
|
|
});
|
|
|
|
t.end();
|
|
});
|