@iotize/tap
Version:
IoTize Device client for Javascript
222 lines • 20.7 kB
JavaScript
/**
* Generated file. Do not edit
*/
import { TargetS3PProtocolConfiguration } from './models';
import { TargetCanProtocolConfiguration } from './models';
import { ModbusOptions } from './models';
import { SerialSettings } from './models';
import { TapStreamReader } from '@iotize/tap/client/impl';
import { TapStreamWriter } from '@iotize/tap/client/impl';
import { enumKeyOrValueToNumber } from '@iotize/tap/client/impl';
import { VariableFormat } from '@iotize/tap';
TapStreamReader.prototype.readTargetComStats = function () {
const model = {};
model.nbFailCom = this.readUnsigned(4);
model.nbSuccessfulCom = this.readUnsigned(4);
return model;
};
TapStreamReader.prototype.readTargetSerialModbusProtocolConfiguration =
function () {
const model = {};
model.modbus = this.readTargetSerialModbusProtocolConfigurationModbus();
model.serial = this.readTargetSerialModbusProtocolConfigurationSerial();
return model;
};
TapStreamReader.prototype.readTargetSerialModbusProtocolConfigurationModbus =
function () {
const model = {};
model.slave = this.readUnsigned(1);
this.forwardBits(3);
model.offsetFirstRegister = this.readBoolean(1);
return model;
};
TapStreamReader.prototype.readTargetSerialModbusProtocolConfigurationSerial =
function () {
const model = {};
model.baudRate = this.readBits(20);
this.forwardBits(1);
this.forwardBits(1);
this.forwardBits(1);
this.forwardBits(1);
model.physicalPort = this.readBits(4);
model.stopBits = this.readBits(2);
model.bitParity = this.readBits(4);
model.dataBits = this.readBits(2);
model.handshakeDelimiter = this.readBits(4);
model.hardwareFlowControl = this.readBits(4);
model.timeout = this.readUnsigned(1);
return model;
};
TapStreamReader.prototype.readTargetS3PProtocolConfiguration =
function () {
const model = {};
model.delay = this.readUnsigned(1);
model.mode = this.readUnsigned(1);
return model;
};
TapStreamReader.prototype.readTargetModbusTcpProtocolConfiguration =
function () {
const model = {};
model.firstRegisterAddress = this.readUnsigned(1);
model.ip = this.readStringTerminator(':');
model.port = this.readStringTerminator(':');
model.timeout = this.readString();
return model;
};
TapStreamReader.prototype.readTargetCanProtocolConfiguration =
function () {
const model = {};
model.frequency = this.readUnsigned(2);
model.mode = this.readUnsigned(1);
model.filter = this.readUnsigned(1);
model.code = this.readUnsigned(4);
model.mask = this.readUnsigned(4);
return model;
};
TapStreamReader.prototype.readModbusWriteOptions =
function () {
const model = {};
model.options = this.readModbusOptions();
model.data = this.readBytes();
return model;
};
TapStreamReader.prototype.readModbusOptions = function () {
const model = {};
this.forwardBits(5);
model.objectType = this.readBits(3);
model.slave = this.readUnsigned(1);
model.address = this.readUnsigned(2);
model.length = this.readUnsigned(4);
model.format = this.readUnsigned(1);
return model;
};
TapStreamReader.prototype.readMemoryInfo = function () {
const model = {};
model.address = this.readUnsigned(4);
model.length = this.readUnsigned(4);
model.format = this.readUnsigned(1);
return model;
};
TapStreamReader.prototype.readMemoryWriteInfo = function () {
const model = {};
model.info = this.readMemoryInfo();
model.data = this.readBytes();
return model;
};
TapStreamReader.prototype.readSerialSettings = function () {
const model = {};
return model;
};
// TapStreamWriter.prototype.write(model: TargetComStats) : TapStreamWriter{
// return this.writeTargetComStats(model)
// }
TapStreamWriter.prototype.writeTargetComStats = function (model) {
this.writeUnsigned(model.nbFailCom, 4);
this.writeUnsigned(model.nbSuccessfulCom, 4);
return this;
};
// TapStreamWriter.prototype.write(model: TargetSerialModbusProtocolConfiguration) : TapStreamWriter{
// return this.writeTargetSerialModbusProtocolConfiguration(model)
// }
TapStreamWriter.prototype.writeTargetSerialModbusProtocolConfiguration =
function (model) {
this.writeTargetSerialModbusProtocolConfigurationModbus(model.modbus);
this.writeTargetSerialModbusProtocolConfigurationSerial(model.serial);
return this;
};
TapStreamWriter.prototype.writeTargetSerialModbusProtocolConfigurationModbus =
function (model) {
this.writeUnsigned(model.slave, 1);
this.forwardBits(3);
this.writeBoolean(model.offsetFirstRegister, 1);
return this;
};
TapStreamWriter.prototype.writeTargetSerialModbusProtocolConfigurationSerial =
function (model) {
this.writeBits(model.baudRate, 20);
this.forwardBits(1);
this.forwardBits(1);
this.forwardBits(1);
this.forwardBits(1);
this.writeBitsInt(enumKeyOrValueToNumber(model.physicalPort, SerialSettings.PhysicalPort), 4);
this.writeBitsInt(enumKeyOrValueToNumber(model.stopBits, SerialSettings.StopBits), 2);
this.writeBitsInt(enumKeyOrValueToNumber(model.bitParity, SerialSettings.BitParity), 4);
this.writeBitsInt(enumKeyOrValueToNumber(model.dataBits, SerialSettings.DataBits), 2);
this.writeBitsInt(enumKeyOrValueToNumber(model.handshakeDelimiter, SerialSettings.HandshakeDelimiter), 4);
this.writeBitsInt(enumKeyOrValueToNumber(model.hardwareFlowControl, SerialSettings.HardwareFlowControl), 4);
this.writeUnsigned(model.timeout, 1);
return this;
};
// TapStreamWriter.prototype.write(model: TargetS3PProtocolConfiguration) : TapStreamWriter{
// return this.writeTargetS3PProtocolConfiguration(model)
// }
TapStreamWriter.prototype.writeTargetS3PProtocolConfiguration = function (model) {
this.writeUnsigned(model.delay, 1);
this.writeBitsInt(enumKeyOrValueToNumber(model.mode, TargetS3PProtocolConfiguration.Mode), 8);
return this;
};
// TapStreamWriter.prototype.write(model: TargetModbusTcpProtocolConfiguration) : TapStreamWriter{
// return this.writeTargetModbusTcpProtocolConfiguration(model)
// }
TapStreamWriter.prototype.writeTargetModbusTcpProtocolConfiguration = function (model) {
this.writeUnsigned(model.firstRegisterAddress, 1);
this.writeString(model.ip + ':');
this.writeString(model.port + ':');
this.writeString(model.timeout);
return this;
};
// TapStreamWriter.prototype.write(model: TargetCanProtocolConfiguration) : TapStreamWriter{
// return this.writeTargetCanProtocolConfiguration(model)
// }
TapStreamWriter.prototype.writeTargetCanProtocolConfiguration = function (model) {
this.writeUnsigned(model.frequency, 2);
this.writeBitsInt(enumKeyOrValueToNumber(model.mode, TargetCanProtocolConfiguration.Mode), 8);
this.writeBitsInt(enumKeyOrValueToNumber(model.filter, TargetCanProtocolConfiguration.Filter), 8);
this.writeUnsigned(model.code, 4);
this.writeUnsigned(model.mask, 4);
return this;
};
// TapStreamWriter.prototype.write(model: ModbusWriteOptions) : TapStreamWriter{
// return this.writeModbusWriteOptions(model)
// }
TapStreamWriter.prototype.writeModbusWriteOptions = function (model) {
this.writeModbusOptions(model.options);
this.writeBytes(model.data);
return this;
};
// TapStreamWriter.prototype.write(model: ModbusOptions) : TapStreamWriter{
// return this.writeModbusOptions(model)
// }
TapStreamWriter.prototype.writeModbusOptions = function (model) {
this.forwardBits(5);
this.writeBitsInt(enumKeyOrValueToNumber(model.objectType, ModbusOptions.ObjectType), 3);
this.writeUnsigned(model.slave, 1);
this.writeUnsigned(model.address, 2);
this.writeUnsigned(model.length, 4);
this.writeBitsInt(enumKeyOrValueToNumber(model.format, VariableFormat), 8);
return this;
};
// TapStreamWriter.prototype.write(model: MemoryInfo) : TapStreamWriter{
// return this.writeMemoryInfo(model)
// }
TapStreamWriter.prototype.writeMemoryInfo = function (model) {
this.writeUnsigned(model.address, 4);
this.writeUnsigned(model.length, 4);
this.writeBitsInt(enumKeyOrValueToNumber(model.format, VariableFormat), 8);
return this;
};
// TapStreamWriter.prototype.write(model: MemoryWriteInfo) : TapStreamWriter{
// return this.writeMemoryWriteInfo(model)
// }
TapStreamWriter.prototype.writeMemoryWriteInfo = function (model) {
this.writeMemoryInfo(model.info);
this.writeBytes(model.data);
return this;
};
// TapStreamWriter.prototype.write(model: SerialSettings) : TapStreamWriter{
// return this.writeSerialSettings(model)
// }
TapStreamWriter.prototype.writeSerialSettings = function (model) {
return this;
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVydGVyLXN0cmVhbS1leHRlbnNpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zZXJ2aWNlL2ltcGwvdGFyZ2V0L3NyYy9saWIvZ2VuZXJhdGVkL2NvbnZlcnRlci1zdHJlYW0tZXh0ZW5zaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBTUgsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRTFELE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUUxRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBR3pDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDMUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzFELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUUxRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBbUU3QyxlQUFlLENBQUMsU0FBUyxDQUFDLGtCQUFrQixHQUFHO0lBQzdDLE1BQU0sS0FBSyxHQUE0QixFQUFFLENBQUM7SUFFMUMsS0FBSyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRXZDLEtBQUssQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUU3QyxPQUFPLEtBQXVCLENBQUM7QUFDakMsQ0FBQyxDQUFDO0FBRUYsZUFBZSxDQUFDLFNBQVMsQ0FBQywyQ0FBMkM7SUFDbkU7UUFDRSxNQUFNLEtBQUssR0FBcUQsRUFBRSxDQUFDO1FBRW5FLEtBQUssQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLGlEQUFpRCxFQUFFLENB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