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