UNPKG

@corvina/device-client

Version:
143 lines 5.89 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 () { var ownKeys = function(o) { ownKeys = Object.getOwnPropertyNames || function (o) { var ar = []; for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; return ar; }; return ownKeys(o); }; return function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); __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 || ""; const availableAlarmsFile = process.env.AVAILABLE_ALARMS_FILE || ""; this.deviceService.reinit({ activationKey: process.env.ACTIVATION_KEY, pairingEndpoint: process.env.PAIRING_ENDPOINT, availableTagsFile: availableTagsFile, availableAlarmsFile: availableAlarmsFile, 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(); if (availableAlarmsFile.length) { JSON.parse(fs.readFileSync(availableAlarmsFile).toString()).forEach((a) => { alarmsMap.set(a.name, a); }); } else { 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