UNPKG

@iotize/tap

Version:

IoTize Device client for Javascript

63 lines 4.91 kB
import { CONFIGURE_MASK, DIRECT_ACCESS_GPIO_FORMAT } from './definitions'; const ASCENDING_SORT_NUMBER = (a, b) => a - b; const ɵ0 = ASCENDING_SORT_NUMBER; // export function encodeGPIOWriteConfig(options: GPIOWriteConfig) { // if (options.indexs.length === 0) { // throw new Error(`Invalid GPIO config. You must give at least one pin index`); // } // const indexes = options.indexs.sort(); // const data = encodeMultiGPIOData(indexes, options.mode); // return { // data, // info: encodeMultiAddressInfo(indexes, true) // }; // } export function encodeMultiAddressInfo(indexes, configure = false) { indexes = indexes.sort(ASCENDING_SORT_NUMBER); const firstIndex = indexes[0]; const lastIndex = indexes[indexes.length - 1]; const length = lastIndex - firstIndex + 1; return { address: (configure ? CONFIGURE_MASK : 0) | firstIndex, format: DIRECT_ACCESS_GPIO_FORMAT, length, }; } export function encodeMultiIndexData(indexValues) { const indexes = indexValues.map((v) => v.index).sort(ASCENDING_SORT_NUMBER); const firstIndex = indexes[0]; const data = []; const lastIndex = indexes[indexes.length - 1]; for (let pinIndex = firstIndex, loopIndex = 0; pinIndex <= lastIndex; pinIndex++, loopIndex++) { const indexValue = indexValues.find((v) => v.index == pinIndex); if (indexValue) { data[loopIndex] = indexValue.value === true ? 1 : indexValue.value === false ? 0 : indexValue.value; } else { data[loopIndex] = 0xff; } } return Uint8Array.from(data); } export { ɵ0 }; // export function encodeMultiGPIOData(indexes: number[], value: number): Uint8Array { // indexes = indexes.sort(ASCENDING_SORT_NUMBER); // const firstIndex = indexes[0]; // const data: number[] = []; // const lastIndex = indexes[indexes.length - 1]; // for (let pinIndex = firstIndex, loopIndex = 0; pinIndex <= lastIndex; pinIndex++, loopIndex++) { // if (indexes.indexOf(pinIndex) >= 0) { // data[loopIndex] = value; // } // else { // data[loopIndex] = 0xFF; // } // } // return Uint8Array.from(data); // } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFwLWdwaW8tY29udmVydGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vZ3Bpby9zcmMvbGliL3RhcC1ncGlvLWNvbnZlcnRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTFFLE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxDQUFTLEVBQUUsQ0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDOztBQUU5RCxvRUFBb0U7QUFDcEUseUNBQXlDO0FBQ3pDLHdGQUF3RjtBQUN4RixRQUFRO0FBQ1IsNkNBQTZDO0FBQzdDLCtEQUErRDtBQUMvRCxlQUFlO0FBQ2YsZ0JBQWdCO0FBQ2hCLHNEQUFzRDtBQUN0RCxTQUFTO0FBQ1QsSUFBSTtBQUVKLE1BQU0sVUFBVSxzQkFBc0IsQ0FBQyxPQUFpQixFQUFFLFNBQVMsR0FBRyxLQUFLO0lBQ3pFLE9BQU8sR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFDOUMsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzlCLE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzlDLE1BQU0sTUFBTSxHQUFHLFNBQVMsR0FBRyxVQUFVLEdBQUcsQ0FBQyxDQUFDO0lBQzFDLE9BQU87UUFDTCxPQUFPLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsVUFBVTtRQUN0RCxNQUFNLEVBQUUseUJBQXlCO1FBQ2pDLE1BQU07S0FDUCxDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxvQkFBb0IsQ0FDbEMsV0FBeUQ7SUFFekQsTUFBTSxPQUFPLEdBQUcsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBQzVFLE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM5QixNQUFNLElBQUksR0FBYSxFQUFFLENBQUM7SUFDMUIsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDOUMsS0FDRSxJQUFJLFFBQVEsR0FBRyxVQUFVLEVBQUUsU0FBUyxHQUFHLENBQUMsRUFDeEMsUUFBUSxJQUFJLFNBQVMsRUFDckIsUUFBUSxFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQ3ZCO1FBQ0EsTUFBTSxVQUFVLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxRQUFRLENBQUMsQ0FBQztRQUNoRSxJQUFJLFVBQVUsRUFBRTtZQUNkLElBQUksQ0FBQyxTQUFTLENBQUM7Z0JBQ2IsVUFBVSxDQUFDLEtBQUssS0FBSyxJQUFJO29CQUN2QixDQUFDLENBQUMsQ0FBQztvQkFDSCxDQUFDLENBQUMsVUFBVSxDQUFDLEtBQUssS0FBSyxLQUFLO3dCQUMxQixDQUFDLENBQUMsQ0FBQzt3QkFDSCxDQUFDLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQztTQUMxQjthQUFNO1lBQ0wsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQztTQUN4QjtLQUNGO0lBQ0QsT0FBTyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQy9CLENBQUM7O0FBRUQsc0ZBQXNGO0FBQ3RGLHFEQUFxRDtBQUNyRCxxQ0FBcUM7QUFDckMsaUNBQWlDO0FBQ2pDLHFEQUFxRDtBQUNyRCx1R0FBdUc7QUFDdkcsZ0RBQWdEO0FBQ2hELHVDQUF1QztBQUN2QyxZQUFZO0FBQ1osaUJBQWlCO0FBQ2pCLHNDQUFzQztBQUN0QyxZQUFZO0FBQ1osUUFBUTtBQUNSLG9DQUFvQztBQUNwQyxJQUFJIn0=