UNPKG

@iotize/tap

Version:

IoTize Device client for Javascript

135 lines 13.4 kB
import { converters } from '@iotize/tap/service/core'; import { SerialSettings, TargetCanProtocolConfiguration, } from '@iotize/tap/service/impl/target'; import { ConfigKeyNotSupportedByFirmwareVersion, TapConfiguratorError, } from './errors'; import { WRITE_CONFIGURATOR_CONFIG as WRITE_CONFIGURATOR_DEFAULT_CONFIG, } from './generated/write-configurator-config'; import { configValueToBytes, isTapFirmwareVersionGreaterThanOrEqual, toEnum, } from './util'; const ɵ0 = (context) => { var _a, _b, _c, _d, _e; const protocolType = ((_b = (_a = context.config) === null || _a === void 0 ? void 0 : _a.target) === null || _b === void 0 ? void 0 : _b.type) === 'MCU' ? (_e = (_d = (_c = context.config) === null || _c === void 0 ? void 0 : _c.target) === null || _d === void 0 ? void 0 : _d.protocol) === null || _e === void 0 ? void 0 : _e.type : 'MODBUS'; switch (protocolType) { case 'NONE': case 'SWD': // case 'JTAG': case 'GPIO': case 'CUSTOM': return TapConfiguratorError.invalidConfiguration(`Target protocol "${protocolType}" does not accept any additional configuration`); case 'S3P': return context.service.target.putS3PConfigurationCall(context.value); case 'MODBUS_TCP': if (context.firmwareVersion) { if (!isTapFirmwareVersionGreaterThanOrEqual(context.firmwareVersion, '2.6')) { return new ConfigKeyNotSupportedByFirmwareVersion('target.protocol.config', context.firmwareVersion, { minApiVersion: '2.6', maxApiVersion: undefined, }); } } return context.service.target.putModbusTcpConfigurationCall(context.value); case 'MODBUS': case 'SERIAL': const tapnpassConfigJson = context.value; const tapnpassConfigApi = tapnpassConfigJsonToApi(tapnpassConfigJson); return context.service.target.putSerialModbusConfigurationCall(tapnpassConfigApi); case 'CAN': if (context.firmwareVersion) { if (!isTapFirmwareVersionGreaterThanOrEqual(context.firmwareVersion, '2.6')) { return new ConfigKeyNotSupportedByFirmwareVersion('target.protocol.config', context.firmwareVersion, { minApiVersion: '2.6', maxApiVersion: undefined, }); } } const canConfigJson = context.value; const canConfigApi = canConfigJsonToApi(canConfigJson); return context.service.target.putCanConfigurationCall(canConfigApi); default: return TapConfiguratorError.invalidConfiguration(`Target protocol "${protocolType}" is not supported by this version of the configurator`); } }, ɵ1 = (context) => { var _a; if (context.firmwareVersion) { if (!isTapFirmwareVersionGreaterThanOrEqual(context.firmwareVersion, '2.6')) { return new ConfigKeyNotSupportedByFirmwareVersion('slaveServer', context.firmwareVersion, { minApiVersion: '2.6', maxApiVersion: undefined, }); } } const protocolType = (_a = context.value) === null || _a === void 0 ? void 0 : _a.type; switch (protocolType) { case undefined: throw new Error(`Undefined property`); case 'SPI': return context.service.slaveServer.putSpiProtocolConfigurationCall(); case 'MODBUS_TCP': const modbusTcpConfig = context.value .config; return context.service.slaveServer.putModbusTcpProtocolConfigurationCall(modbusTcpConfig); case 'MODBUS_RTU': const tapnpassConfigJson = context.value .config; const tapnpassConfigApi = tapnpassConfigJsonToApi(tapnpassConfigJson); return context.service.slaveServer.putModbusRtuProtocolConfigurationCall(tapnpassConfigApi); case 'CAN': const canConfigJson = context.value.config; const canConfigApi = canConfigJsonToApi(canConfigJson); return context.service.slaveServer.putCanProtocolConfigurationCall(canConfigApi); default: return TapConfiguratorError.invalidConfiguration(`Slave server protocol "${protocolType}" is not supported by this version of the configurator`); } }, ɵ2 = (context) => { const loadJvmCodeCalls = WRITE_CONFIGURATOR_DEFAULT_CONFIG['jvm.code'](context); if (loadJvmCodeCalls instanceof Error) { return loadJvmCodeCalls; } else { const clearCodeCall = context.service.jvm.clearCodeCall(); clearCodeCall.body = Uint8Array.from([0]); return [clearCodeCall, ...loadJvmCodeCalls]; } }; const WRITE_CONFIGURATOR_CUSTOM_CONFIG = { 'target.protocol.config': ɵ0, slaveServer: ɵ1, 'jvm.code': ɵ2, }; export const WRITE_CONFIGURATOR_CONFIG = Object.assign(Object.assign({}, WRITE_CONFIGURATOR_DEFAULT_CONFIG), WRITE_CONFIGURATOR_CUSTOM_CONFIG); const DEFAULT_MODBUS_CONFIG = { offsetFirstRegister: false, slave: 0, }; const DEFAULT_USB_CONFIG = { aliases: [], }; function tapnpassConfigJsonToApi(jsonConfig) { return { modbus: jsonConfig.modbus || DEFAULT_MODBUS_CONFIG, serial: { baudRate: jsonConfig.serial.baudRate, bitParity: toEnum(jsonConfig.serial.bitParity, SerialSettings.BitParity), dataBits: toEnum(jsonConfig.serial.dataBits, SerialSettings.DataBits), handshakeDelimiter: toEnum(jsonConfig.serial.handshakeDelimiter, SerialSettings.HandshakeDelimiter), hardwareFlowControl: toEnum(jsonConfig.serial.hardwareFlowControl, SerialSettings.HardwareFlowControl), identification: jsonConfig.serial.identification, ledStatus: jsonConfig.serial.ledStatus, physicalPort: toEnum(jsonConfig.serial.physicalPort, SerialSettings.PhysicalPort), stopBits: toEnum(jsonConfig.serial.stopBits, SerialSettings.StopBits), timeout: jsonConfig.serial.timeout, }, usb: jsonConfig.usb || DEFAULT_USB_CONFIG, }; } function canConfigJsonToApi(canConfigJson) { const canConfigApi = { code: converters.uint32.decode(configValueToBytes(canConfigJson.code)), mask: converters.uint32.decode(configValueToBytes(canConfigJson.mask)), filter: toEnum(canConfigJson.filter, TargetCanProtocolConfiguration.Filter), frequency: canConfigJson.frequency, mode: toEnum(canConfigJson.mode, TargetCanProtocolConfiguration.Mode), }; return canConfigApi; } export { ɵ0, ɵ1, ɵ2 }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3JpdGUtY29uZmlndXJhdG9yLWNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2NvbmZpZ3VyYXRvci9zcmMvbGliL3dyaXRlLWNvbmZpZ3VyYXRvci1jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBWUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXRELE9BQU8sRUFDTCxjQUFjLEVBQ2QsOEJBQThCLEdBQy9CLE1BQU0saUNBQWlDLENBQUM7QUFFekMsT0FBTyxFQUNMLHNDQUFzQyxFQUN0QyxvQkFBb0IsR0FDckIsTUFBTSxVQUFVLENBQUM7QUFDbEIsT0FBTyxFQUVMLHlCQUF5QixJQUFJLGlDQUFpQyxHQUMvRCxNQUFNLHVDQUF1QyxDQUFDO0FBQy9DLE9BQU8sRUFDTCxrQkFBa0IsRUFDbEIsc0NBQXNDLEVBQ3RDLE1BQU0sR0FDUCxNQUFNLFFBQVEsQ0FBQztXQUdZLENBQ3hCLE9BQTJDLEVBQ1IsRUFBRTs7SUFDckMsTUFBTSxZQUFZLEdBQ2hCLENBQUEsTUFBQSxNQUFBLE9BQU8sQ0FBQyxNQUFNLDBDQUFFLE1BQU0sMENBQUUsSUFBSSxNQUFLLEtBQUs7UUFDcEMsQ0FBQyxDQUFDLE1BQUEsTUFBQSxNQUFBLE9BQU8sQ0FBQyxNQUFNLDBDQUFFLE1BQU0sMENBQUUsUUFBUSwwQ0FBRSxJQUFJO1FBQ3hDLENBQUMsQ0FBQyxRQUFRLENBQUM7SUFDZixRQUFRLFlBQVksRUFBRTtRQUNwQixLQUFLLE1BQU0sQ0FBQztRQUNaLEtBQUssS0FBSyxDQUFDO1FBQ1gsZUFBZTtRQUNmLEtBQUssTUFBTSxDQUFDO1FBQ1osS0FBSyxRQUFRO1lBQ1gsT0FBTyxvQkFBb0IsQ0FBQyxvQkFBb0IsQ0FDOUMsb0JBQW9CLFlBQVksZ0RBQWdELENBQ2pGLENBQUM7UUFDSixLQUFLLEtBQUs7WUFDUixPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLHVCQUF1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