the rest of the file validator

This commit is contained in:
Stewart Allen 2021-07-24 08:44:38 -04:00
commit 726128e925
2 changed files with 40 additions and 6 deletions

View file

@ -911,15 +911,15 @@
let ra = a[i];
let rb = b[i];
// test circularity
if (Math.abs(ra.c - rb.c) > 0.0005) {
if (Math.abs(ra.c - rb.c) > 0.001) {
return false;
}
// test perimeter
if (Math.abs(ra.p - rb.p) > 0.001) {
if (Math.abs(ra.p - rb.p) > 0.01) {
return false;
}
// test bounds
if (ra.b.delta(rb.b) > 0.001) {
if (ra.b.delta(rb.b) > 0.01) {
return false;
}
}

View file

@ -42,7 +42,7 @@
}
return str;
}
console.log({
let meta = {
file,
magic: read_string(),
version: nextU16(),
@ -68,7 +68,41 @@
layer_lift_speed: nextU16(),
down_speed: nextU16(),
base_light_pwm: nextU16(),
layer_light_pwm: nextU16(),
});
layer_light_pwm: nextU16()
};
console.log(meta);
let layer_sizes = [];
for (let i=0; i<meta.layers; i++) {
layer_sizes.push(nextU32());
}
let term = nextU16(); // 0x0d0a
console.log(layer_sizes, term.toString(16));
let layer_data = [];
for (let i=0; i<meta.layers; i++) {
let size = nextU32();
let lines = nextU32();
for (let j=0; j<lines; j++) {
skip(6); // line data
}
term = nextU16(); // 0x0d0a
// console.log({i, fpos, size, lines, term: term.toString(16)});
if (term != 0xd0a) {
console.log({term_mismatch: term.toString(16)});
break;
}
if (size !== layer_sizes[i]) {
console.log({size_mismatch: size, expected: layer_sizes[i]});
break;
}
layer_data.push({ size, lines, term });
}
let magic2 = read_string();
// calculate checksum with progressive XOR of all bytes up to this one
let csum = 0;
for (let i=0; i<fpos; i++) {
csum = csum ^ view.getUint8(i);
}
let checksum = nextU32();
console.log({magic2, checksum: checksum.toString(16), csum: csum.toString(16)});
}
}());