@danidoble/webserial-vending-commands
Version:
WebSerial Vending Commands
2 lines (1 loc) • 4.83 kB
JavaScript
;var S=Object.defineProperty;var m=(c,n,r)=>n in c?S(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);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const h=require("./parser-Dsi8ZXwF.cjs"),e=class e{build(n){return e.asHex?h.Uint8ArrayToHex({data:n,asString:!1}):h.parseToBuffer(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 w=e.instance.boardroidCheckSum(new Uint8Array([241,205,1,u,b,f,s,o,0,0,242,0]));return e.instance.build(w)}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;exports.Boardroid=l;