UNPKG

@iotize/tap

Version:

IoTize Device client for Javascript

120 lines 8.71 kB
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; import { ResultCode } from '@iotize/tap/client/api'; import '@iotize/tap/service/impl/target'; import '@iotize/tap/service/impl/variable'; import '@iotize/tap/service/impl/interface'; import { Observable } from 'rxjs'; import { share } from 'rxjs/operators'; import { DBIOT_VARIABLE_CONFIG_CONVERTER } from './constants'; /** * Create shared observable that read DBIOT configuration from tap * @param tap * @param maxVar * @returns */ export function createReadDBIOTConfigurationFromTapObservable(tap, maxVar) { const obs = new Observable((emitter) => { let stopLoop = false; const progressEvent = { type: 'start', data: { total: maxVar, }, }; emitter.next(progressEvent); (() => __awaiter(this, void 0, void 0, function* () { try { const targetProtocol = (yield tap.service.target.getProtocol()).body(); const variables = []; const progressEvent = { type: 'progress', data: { current: 0, total: maxVar, }, }; emitter.next(progressEvent); for (let variableId = 0; variableId < maxVar && !stopLoop; variableId++) { const variableConfig = yield readTapVariableConfigWithDBIOTuration(tap, variableId); if (variableConfig) { variables.push(variableConfig); } const progressEvent = { type: 'progress', data: { current: variableId + 1, total: maxVar, variable: variableConfig, }, }; emitter.next(progressEvent); } if (!stopLoop) { const result = { type: 'complete', data: { bundles: [], variables, targetProtocol, }, }; emitter.next(result); } emitter.complete(); } catch (err) { emitter.error(err); } }))(); return () => { stopLoop = true; }; }); return obs.pipe(share()); } function readTapVariableConfigWithDBIOTuration(tap, id) { return __awaiter(this, void 0, void 0, function* () { const [lengthRes, typeRes, bundleIdRes] = yield tap.service.interface.executeMultipleCalls([ tap.service.variable.getNumberOfElementsCall(id), tap.service.variable.getTypeCall(id), tap.service.variable.getBundleIdCall(id), ]); if (!lengthRes.isSuccessful()) { if (lengthRes.codeRet() === ResultCode.NOT_FOUND) { return undefined; } } const length = lengthRes.body(); let dbiot = undefined; if (length > 0) { const rawMetaResponse = yield tap.service.variable.getRawMeta(id); const rawData = rawMetaResponse.body(); if (rawData.length > 0) { try { dbiot = DBIOT_VARIABLE_CONFIG_CONVERTER.decode(rawData); } catch (err) { // Ignore if dbiot variable is not set property console.warn(`Cannot parse dbiot info for variable "${id}"`, err); return; } } } return { id, bundleId: bundleIdRes.body(), length, type: typeRes.body(), dbiot, }; }); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbGl0eS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2V4dHJhL2RiaW90L3NyYy9saWIvdXRpbGl0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDcEQsT0FBTyxpQ0FBaUMsQ0FBQztBQUN6QyxPQUFPLG1DQUFtQyxDQUFDO0FBQzNDLE9BQU8sb0NBQW9DLENBQUM7QUFDNUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNsQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkMsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBMEM5RDs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSw2Q0FBNkMsQ0FDM0QsR0FBUSxFQUNSLE1BQWM7SUFFZCxNQUFNLEdBQUcsR0FBRyxJQUFJLFVBQVUsQ0FBOEIsQ0FBQyxPQUFPLEVBQUUsRUFBRTtRQUNsRSxJQUFJLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDckIsTUFBTSxhQUFhLEdBQXNDO1lBQ3ZELElBQUksRUFBRSxPQUFPO1lBQ2IsSUFBSSxFQUFFO2dCQUNKLEtBQUssRUFBRSxNQUFNO2FBQ2Q7U0FDRixDQUFDO1FBQ0YsT0FBTyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUM1QixDQUFDLEdBQVMsRUFBRTtZQUNWLElBQUk7Z0JBQ0YsTUFBTSxjQUFjLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ3ZFLE1BQU0sU0FBUyxHQUFpQyxFQUFFLENBQUM7Z0JBQ25ELE1BQU0sYUFBYSxHQUF5QztvQkFDMUQsSUFBSSxFQUFFLFVBQVU7b0JBQ2hCLElBQUksRUFBRTt3QkFDSixPQUFPLEVB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