UNPKG

@corvina/device-client

Version:
124 lines 5.11 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.DeviceRunnerService = void 0; const types_1 = require("../common/types"); const fs = __importStar(require("fs")); const path = __importStar(require("path")); class DeviceRunnerService { deviceService; setAvailableStructures(availableTags) { const structs = new Set(); availableTags.forEach((tag) => { const pos = tag.name.indexOf("."); if (pos >= 0) { structs.add({ name: tag.name.slice(0, pos), type: "struct", simulation: null }); } }); availableTags.push(...structs); const result = new Map(); availableTags.forEach((t) => { result.set(t.name, t); }); return result; } constructor(deviceService) { this.deviceService = deviceService; } run() { this.deviceService.setCycleTime(parseInt(process.env.CYCLE_TIME) || 1000); const availableTagsFile = process.env.AVAILABLE_TAGS_FILE || ""; this.deviceService.reinit({ activationKey: process.env.ACTIVATION_KEY, pairingEndpoint: process.env.PAIRING_ENDPOINT, availableTagsFile: availableTagsFile, availableTags: (() => { try { if (availableTagsFile.length) { return this.setAvailableStructures(JSON.parse(fs.readFileSync(availableTagsFile).toString())); } return this.setAvailableStructures(JSON.parse(process.env.AVAILABLE_TAGS)); } catch (err) { return new Map(); } })(), simulateTags: !!(() => { try { return JSON.parse(process.env.SIMULATE_TAGS); } catch (err) { return false; } })(), availableAlarms: (() => { try { const alarmsMap = new Map(); JSON.parse(process.env.AVAILABLE_ALARMS).forEach((a) => { alarmsMap.set(a.name, a); }); return alarmsMap; } catch (err) { return new Map(); } })(), simulateAlarms: !!(() => { try { return JSON.parse(process.env.SIMULATE_ALARMS); } catch (err) { return false; } })(), packetFormat: process.env.PACKET_FORMAT || types_1.PacketFormatEnum.BSON, }, true); if (process.env.SAVE_LAST_ENV) { const envFile = path.join(process.cwd(), ".env"); let currentContent = fs.readFileSync(envFile).toString(); const appendedValuesPos = currentContent.indexOf("### LAST-ENV ###"); const deviceConfig = this.deviceService.deviceConfig; if (appendedValuesPos > 0) { currentContent = currentContent.slice(0, appendedValuesPos); currentContent += ` ### LAST-ENV ### # don't write below this line!! ACTIVATION_KEY=${deviceConfig.activationKey} PAIRING_ENDPOINT=${deviceConfig.pairingEndpoint} AVAILABLE_TAGS_FILE=${deviceConfig.availableTagsFile || ""} AVAILABLE_TAGS=${!deviceConfig.availableTagsFile || deviceConfig.availableTagsFile.length == 0 ? JSON.stringify(Array.from(deviceConfig.availableTags.values())) : ""} SIMULATE_TAGS=${deviceConfig.simulateTags ? 1 : 0} AVAILABLE_ALARMS=${JSON.stringify(Array.from(deviceConfig.availableAlarms.values()))} SIMULATE_ALARMS=${deviceConfig.simulateAlarms ? 1 : 0} PACKET_FORMAT=${deviceConfig.packetFormat}`; } fs.writeFileSync(envFile, currentContent); } } } exports.DeviceRunnerService = DeviceRunnerService; //# sourceMappingURL=devicerunner.service.js.map