@danidoble/webserial-vending-commands
Version:
WebSerial Vending Commands
446 lines (445 loc) • 8.34 kB
JavaScript
var w = Object.defineProperty;
var m = (c, n, r) => n in c ? w(c, n, { enumerable: !0, configurable: !0, writable: !0, value: r }) : c[n] = r;
var d = (c, n, r) => m(c, typeof n != "symbol" ? n + "" : n, r);
import { p as S, U as k } from "./parser-BBgCQz5T.js";
const e = class e {
build(n) {
return e.asHex ? k({ data: n, asString: !1 }) : S(n);
}
serialBoardroidSumHex(n) {
let r = 0;
for (let t = 0; t < n.length; t++)
t === 0 || t === 11 || (r += n[t]);
return r;
}
boardroidCheckSum(n) {
return n[11] = this.serialBoardroidSumHex(n), n;
}
static connection({ channel: n = 1 } = {}) {
const r = e.instance.boardroidCheckSum(
new Uint8Array([
241,
5 + n,
0,
0,
0,
0,
0,
0,
0,
0,
242,
248
])
);
return e.instance.build(r);
}
static coinPurseConfiguration({
enable: n = !1,
high: r = 255,
low: t = 255
} = {}) {
const i = e.instance.boardroidCheckSum(
new Uint8Array([
241,
193,
n ? 1 : 0,
r,
t,
0,
0,
0,
0,
0,
242,
0
])
);
return e.instance.build(i);
}
static coinPurseDispense({ $50c: n = 0, $1: r = 0, $2: t = 0, $5: i = 0, $10: a = 0 } = {}) {
if ([n, r, t, i, a].some(
(o) => isNaN(o) || typeof o == "string"
))
throw new Error("One of the values is not a number");
if (n < 1 && r < 1 && t < 1 && i < 1 && a < 1)
throw new Error("No coins to dispense");
const s = e.instance.boardroidCheckSum(
new Uint8Array([
241,
198,
n,
r,
t,
i,
a,
0,
0,
0,
242,
0
])
);
return e.instance.build(s);
}
static coinPurseReadTubes() {
const n = e.instance.boardroidCheckSum(
new Uint8Array([
241,
194,
0,
0,
0,
0,
0,
0,
0,
0,
242,
0
])
);
return e.instance.build(n);
}
static banknotePurseICTConfigure({ enable: n = !1, scrow: r = !1 } = {}) {
const t = n ? 255 : 0, i = r ? 255 : 0, a = e.instance.boardroidCheckSum(
new Uint8Array([
241,
192,
t,
t,
i,
i,
0,
0,
0,
0,
242,
0
])
);
return e.instance.build(a);
}
static banknotePurseOtherConfigure({ enable: n = !1, scrow: r = !1 } = {}) {
const t = n ? 1 : 0, i = r ? 1 : 0, a = e.instance.boardroidCheckSum(
new Uint8Array([
241,
192,
t,
i,
0,
0,
0,
0,
0,
0,
242,
0
])
);
return e.instance.build(a);
}
static banknotePurseICTDispense({
quantity: n = 1,
denomination: r = 20
}) {
if (n < 1)
throw new Error("No banknotes to dispense");
if ([20, 50, 100, 200, 500].indexOf(r) === -1)
throw new Error("Invalid denomination");
const t = [20, 50, 100, 200, 500].indexOf(r), i = e.instance.boardroidCheckSum(
new Uint8Array([
241,
197,
t,
n,
0,
0,
0,
0,
0,
0,
242,
0
])
);
return e.instance.build(i);
}
static banknotePurseOtherDispense({
$20: n = 0,
$50: r = 0,
$100: t = 0,
$200: i = 0,
$500: a = 0,
$1000: s = 0
} = {}) {
if ([n, r, t, i, a, s].some(
(u) => isNaN(u) || typeof u == "string"
))
throw new Error("One of the values is not a number");
if (n < 1 && r < 1 && t < 1 && i < 1 && a < 1 && s < 1)
throw new Error("No banknotes to dispense");
const o = e.instance.boardroidCheckSum(
new Uint8Array([
241,
197,
n,
r,
t,
i,
a,
s,
0,
0,
242,
0
])
);
return e.instance.build(o);
}
static banknotePurseAcceptInScrow() {
const n = e.instance.boardroidCheckSum(
new Uint8Array([
241,
196,
1,
0,
0,
0,
0,
0,
0,
0,
242,
0
])
);
return e.instance.build(n);
}
static banknotePurseRejectInScrow() {
const n = e.instance.boardroidCheckSum(
new Uint8Array([
241,
196,
0,
0,
0,
0,
0,
0,
0,
0,
242,
0
])
);
return e.instance.build(n);
}
static banknotePurseSaveMemory({
channel: n = null,
$20: r = null,
$50: t = null,
$100: i = null,
$200: a = null,
$500: s = null,
$1000: o = null
} = {
channel: null,
$20: null,
$50: null,
$100: null,
$200: null,
$500: null,
$1000: null
}) {
if (n === null || r === null || t === null || i === null || a === null || s === null || o === null)
throw new Error(
"One of the values is not defined: " + JSON.stringify({
channel: n,
$20: r,
$50: t,
$100: i,
$200: a,
$500: s,
$1000: o
})
);
const u = e.instance.boardroidCheckSum(
new Uint8Array([
241,
200,
n,
0,
r,
t,
i,
a,
s,
o,
242,
0
])
);
return e.instance.build(u);
}
static banknotePurseReadRecycler() {
const n = e.instance.boardroidCheckSum(
new Uint8Array([
241,
195,
0,
0,
0,
0,
0,
0,
0,
0,
242,
181
])
);
return e.instance.build(n);
}
static cardReaderDisable() {
const n = e.instance.boardroidCheckSum(
new Uint8Array([
241,
205,
0,
0,
0,
0,
0,
0,
0,
0,
242,
0
])
);
return e.instance.build(n);
}
static cardReaderDispense({
selection: n = 1,
second_selection: r = null,
sensor: t = !0,
seconds: i = null,
price: a = 0
} = {
selection: 1,
second_selection: null,
sensor: !0,
seconds: null,
price: 0
}) {
const s = a / 256, o = a % 256, u = n + 9;
let b = 0;
r && (b = r + 9);
let f = 0;
t || (i || (i = 1.5), f = Math.round(i * 6.2));
const h = e.instance.boardroidCheckSum(
new Uint8Array([
241,
205,
1,
u,
b,
f,
s,
o,
0,
0,
242,
0
])
);
return e.instance.build(h);
}
static coolingRelayConfigure({ enable: n = !0 } = {}) {
const r = e.instance.boardroidCheckSum(
new Uint8Array([
241,
204,
n ? 1 : 0,
0,
0,
0,
0,
0,
0,
0,
242,
0
])
);
return e.instance.build(r);
}
static readTemperature() {
const n = e.instance.boardroidCheckSum(
new Uint8Array([
241,
203,
0,
0,
0,
0,
0,
0,
0,
0,
242,
0
])
);
return e.instance.build(n);
}
static dispense({
selection: n = 1,
second_selection: r = null,
sensor: t = !0,
seconds: i = null
} = {
selection: 1,
second_selection: null,
sensor: !0,
seconds: null
}) {
n += 9;
const a = n;
let s = 0;
r && (r += 9, s = r);
let o = 0;
t || (i || (i = 1.5), o = Math.round(i * 6.2));
const u = e.instance.boardroidCheckSum(
new Uint8Array([
241,
199,
a,
s,
o,
0,
0,
0,
0,
0,
242,
0
])
);
return e.instance.build(u);
}
static customCode(n) {
typeof n[0] == "string" && (n = n.map((t) => parseInt(t, 16)));
const r = e.instance.boardroidCheckSum(
new Uint8Array(n)
);
return e.instance.build(r);
}
};
d(e, "asHex", !1), d(e, "instance");
let l = e;
l.instance = new l();
export {
l as Boardroid
};