@iotize/tap
Version:
IoTize Device client for Javascript
63 lines • 4.91 kB
JavaScript
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=