You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@plc4x.apache.org by cd...@apache.org on 2020/10/29 21:47:06 UTC
[plc4x] branch feature/plc4go updated: - Changed the datatype names
in s7 from integer values to the IEC names
This is an automated email from the ASF dual-hosted git repository.
cdutz pushed a commit to branch feature/plc4go
in repository https://gitbox.apache.org/repos/asf/plc4x.git
The following commit(s) were added to refs/heads/feature/plc4go by this push:
new ea94a9d - Changed the datatype names in s7 from integer values to the IEC names
ea94a9d is described below
commit ea94a9d7ce665fc4fb0397933b0c8755a046182a
Author: Christofer Dutz <ch...@c-ware.de>
AuthorDate: Thu Oct 29 22:46:59 2020 +0100
- Changed the datatype names in s7 from integer values to the IEC names
---
.../s7/readwrite/protocol/S7ProtocolLogic.java | 6 +-
.../apache/plc4x/java/s7/utils/StaticHelper.java | 2 +-
.../s7/src/main/resources/protocols/s7/s7.mspec | 104 +-
.../plc4c/generated-sources/s7/include/data_item.h | 2 +-
.../generated-sources/s7/include/transport_size.h | 2 +-
sandbox/plc4c/generated-sources/s7/src/data_item.c | 52 +-
.../generated-sources/s7/src/transport_size.c | 34 +-
.../internal/plc4go/s7/readwrite/model/DataItem.go | 455 ++++---
.../plc4go/s7/readwrite/model/TransportSize.go | 1409 +++++++++++---------
9 files changed, 1119 insertions(+), 947 deletions(-)
diff --git a/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/protocol/S7ProtocolLogic.java b/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/protocol/S7ProtocolLogic.java
index 403d325..d0c4683 100644
--- a/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/protocol/S7ProtocolLogic.java
+++ b/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/protocol/S7ProtocolLogic.java
@@ -415,7 +415,11 @@ public class S7ProtocolLogic extends Plc4xProtocolBase<TPKTPacket> {
PlcValue plcValue = null;
ByteBuf data = Unpooled.wrappedBuffer(payloadItem.getData());
if (responseCode == PlcResponseCode.OK) {
- plcValue = parsePlcValue(field, data);
+ try {
+ plcValue = parsePlcValue(field, data);
+ } catch(Exception e) {
+ throw new PlcProtocolException("Error decoding PlcValue", e);
+ }
}
ResponseItem<PlcValue> result = new ResponseItem<>(responseCode, plcValue);
values.put(fieldName, result);
diff --git a/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/utils/StaticHelper.java b/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/utils/StaticHelper.java
index a489955..8db29a5 100644
--- a/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/utils/StaticHelper.java
+++ b/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/utils/StaticHelper.java
@@ -129,7 +129,7 @@ public class StaticHelper {
// This is the maximum number of bytes a string can be long.
short maxLength = io.readUnsignedShort(8);
// This is the total length of the string on the PLC (Not necessarily the number of characters read)
- short totalStringLength = io.readShort(8);
+ short totalStringLength = io.readUnsignedShort(8);
// Read the full size of the string.
String str = io.readString(stringLength * 8, (String) encoding);
// Cut off the parts that don't belong to it.
diff --git a/protocols/s7/src/main/resources/protocols/s7/s7.mspec b/protocols/s7/src/main/resources/protocols/s7/s7.mspec
index 5e1d329..ff31da4 100644
--- a/protocols/s7/src/main/resources/protocols/s7/s7.mspec
+++ b/protocols/s7/src/main/resources/protocols/s7/s7.mspec
@@ -258,12 +258,12 @@
]
]
-[dataIo 'DataItem' [uint 8 'dataProtocolId', int 32 'stringLength']
+[dataIo 'DataItem' [string 'dataProtocolId', int 32 'stringLength']
[typeSwitch 'dataProtocolId'
// -----------------------------------------
// Bit
// -----------------------------------------
- ['01' BOOL
+ ['IEC61131_BOOL' BOOL
[reserved uint 7 '0x00']
[simple bit 'value']
]
@@ -272,19 +272,19 @@
// Bit-strings
// -----------------------------------------
// 1 byte
- ['11' BOOL
+ ['IEC61131_BYTE' BOOL
[array bit 'value' count '8']
]
// 2 byte (16 bit)
- ['12' BOOL
+ ['IEC61131_WORD' BOOL
[array bit 'value' count '16']
]
// 4 byte (32 bit)
- ['13' BOOL
+ ['IEC61131_DWORD' BOOL
[array bit 'value' count '32']
]
// 8 byte (64 bit)
- ['14' BOOL
+ ['IEC61131_LWORD' BOOL
[array bit 'value' count '64']
]
@@ -292,80 +292,80 @@
// Integers
// -----------------------------------------
// 8 bit:
- ['21' SINT
+ ['IEC61131_SINT' SINT
[simple int 8 'value']
]
- ['22' USINT
+ ['IEC61131_USINT' USINT
[simple uint 8 'value']
]
// 16 bit:
- ['23' INT
+ ['IEC61131_INT' INT
[simple int 16 'value']
]
- ['24' UINT
+ ['IEC61131_UINT' UINT
[simple uint 16 'value']
]
// 32 bit:
- ['25' DINT
+ ['IEC61131_DINT' DINT
[simple int 32 'value']
]
- ['26' UDINT
+ ['IEC61131_UDINT' UDINT
[simple uint 32 'value']
]
// 64 bit:
- ['27' LINT
+ ['IEC61131_LINT' LINT
[simple int 64 'value']
]
- ['28' ULINT
+ ['IEC61131_ULINT' ULINT
[simple uint 64 'value']
]
// -----------------------------------------
// Floating point values
// -----------------------------------------
- ['31' REAL
+ ['IEC61131_REAL' REAL
[simple float 8.23 'value']
]
- ['32' LREAL
+ ['IEC61131_LREAL' LREAL
[simple float 11.52 'value']
]
// -----------------------------------------
// Characters & Strings
// -----------------------------------------
- ['41' CHAR
+ ['IEC61131_CHAR' CHAR
[manual string 'UTF-8' 'value' 'STATIC_CALL("org.apache.plc4x.java.s7.utils.StaticHelper.parseS7Char", io, _type.encoding)' 'STATIC_CALL("org.apache.plc4x.java.s7.utils.StaticHelper.serializeS7Char", io, _value, _type.encoding)' '1']
]
- ['42' CHAR
+ ['IEC61131_WCHAR' CHAR
[manual string 'UTF-16' 'value' 'STATIC_CALL("org.apache.plc4x.java.s7.utils.StaticHelper.parseS7Char", io, _type.encoding)' 'STATIC_CALL("org.apache.plc4x.java.s7.utils.StaticHelper.serializeS7Char", io, _value, _type.encoding)' '2']
]
- ['43' STRING
+ ['IEC61131_STRING' STRING
[manual string 'UTF-8' 'value' 'STATIC_CALL("org.apache.plc4x.java.s7.utils.StaticHelper.parseS7String", io, stringLength, _type.encoding)' 'STATIC_CALL("org.apache.plc4x.java.s7.utils.StaticHelper.serializeS7String", io, _value, stringLength, _type.encoding)' '_value.length + 2']
]
- ['44' STRING
+ ['IEC61131_WSTRING' STRING
[manual string 'UTF-16' 'value''STATIC_CALL("org.apache.plc4x.java.s7.utils.StaticHelper.parseS7String", io, stringLength, _type.encoding)' 'STATIC_CALL("org.apache.plc4x.java.s7.utils.StaticHelper.serializeS7String", io, _value, stringLength, _type.encoding)' '(_value.length * 2) + 2']
]
// -----------------------------------------
// TIA Date-Formats
// -----------------------------------------
- ['51' Time
+ ['IEC61131_TIME' Time
[manual time 'value' 'STATIC_CALL("org.apache.plc4x.java.s7.utils.StaticHelper.parseTiaTime", io)' 'STATIC_CALL("org.apache.plc4x.java.s7.utils.StaticHelper.serializeTiaTime", io, _value)' '4']
]
- ['52' Time
+ ['S7_S5TIME' Time
[manual time 'value' 'STATIC_CALL("org.apache.plc4x.java.s7.utils.StaticHelper.parseS5Time", io)' 'STATIC_CALL("org.apache.plc4x.java.s7.utils.StaticHelper.serializeS5Time", io, _value)' '4']
]
// TODO: Check if this is really 8 bytes
- ['53' Time
+ ['IEC61131_LTIME' Time
[manual time 'value' 'STATIC_CALL("org.apache.plc4x.java.s7.utils.StaticHelper.parseTiaLTime", io)' 'STATIC_CALL("org.apache.plc4x.java.s7.utils.StaticHelper.serializeTiaLTime", io, _value)' '8']
]
- ['54' Date
+ ['IEC61131_DATE' Date
[manual date 'value' 'STATIC_CALL("org.apache.plc4x.java.s7.utils.StaticHelper.parseTiaDate", io)' 'STATIC_CALL("org.apache.plc4x.java.s7.utils.StaticHelper.serializeTiaDate", io, _value)' '2']
]
- ['55' Time
+ ['IEC61131_TIME_OF_DAY' Time
[manual time 'value' 'STATIC_CALL("org.apache.plc4x.java.s7.utils.StaticHelper.parseTiaTimeOfDay", io)' 'STATIC_CALL("org.apache.plc4x.java.s7.utils.StaticHelper.serializeTiaTimeOfDay", io, _value)' '4']
]
- ['56' DateTime
+ ['IEC61131_DATE_AND_TIME' DateTime
[manual dateTime 'value' 'STATIC_CALL("org.apache.plc4x.java.s7.utils.StaticHelper.parseTiaDateTime", io)' 'STATIC_CALL("org.apache.plc4x.java.s7.utils.StaticHelper.serializeTiaDateTime", io, _value)' '8']
]
]
@@ -405,43 +405,43 @@
['0x03' OTHERS ]
]
-[enum int 8 'TransportSize' [uint 8 'sizeCode', uint 8 'sizeInBytes', TransportSize 'baseType', DataTransportSize 'dataTransportSize', uint 8 'dataProtocolId', bit 'supported_S7_300', bit 'supported_S7_400', bit 'supported_S7_1200', bit 'supported_S7_1500', bit 'supported_LOGO']
+[enum int 8 'TransportSize' [uint 8 'sizeCode', uint 8 'sizeInBytes', TransportSize 'baseType', DataTransportSize 'dataTransportSize', string 'dataProtocolId' , bit 'supported_S7_300', bit 'supported_S7_400', bit 'supported_S7_1200', bit 'supported_S7_1500', bit 'supported_LOGO']
// Bit Strings
- ['0x01' BOOL ['X' , '1' , 'null' , 'DataTransportSize.BIT' , '01' , 'true' , 'true' , 'true' , 'true' , 'true' ]]
- ['0x02' BYTE ['B' , '1' , 'null' , 'DataTransportSize.BYTE_WORD_DWORD' , '11' , 'true' , 'true' , 'true' , 'true' , 'true' ]]
- ['0x04' WORD ['W' , '2' , 'null' , 'DataTransportSize.BYTE_WORD_DWORD' , '12' , 'true' , 'true' , 'true' , 'true' , 'true' ]]
- ['0x06' DWORD ['D' , '4' , 'TransportSize.WORD' , 'DataTransportSize.BYTE_WORD_DWORD' , '13' , 'true' , 'true' , 'true' , 'true' , 'true' ]]
- ['0x00' LWORD ['X' , '8' , 'null' , 'null' , '14' , 'false' , 'false' , 'false' , 'true' , 'false' ]]
+ ['0x01' BOOL ['X' , '1' , 'null' , 'DataTransportSize.BIT' , 'IEC61131_BOOL' , 'true' , 'true' , 'true' , 'true' , 'true' ]]
+ ['0x02' BYTE ['B' , '1' , 'null' , 'DataTransportSize.BYTE_WORD_DWORD' , 'IEC61131_BYTE' , 'true' , 'true' , 'true' , 'true' , 'true' ]]
+ ['0x04' WORD ['W' , '2' , 'null' , 'DataTransportSize.BYTE_WORD_DWORD' , 'IEC61131_WORD' , 'true' , 'true' , 'true' , 'true' , 'true' ]]
+ ['0x06' DWORD ['D' , '4' , 'TransportSize.WORD' , 'DataTransportSize.BYTE_WORD_DWORD' , 'IEC61131_DWORD' , 'true' , 'true' , 'true' , 'true' , 'true' ]]
+ ['0x00' LWORD ['X' , '8' , 'null' , 'null' , 'IEC61131_LWORD' , 'false' , 'false' , 'false' , 'true' , 'false' ]]
// Integer values
// INT and UINT moved out of order as the enum constant INT needs to be generated before it's used in java
- ['0x05' INT ['W' , '2' , 'null' , 'DataTransportSize.INTEGER' , '23' , 'true' , 'true' , 'true' , 'true' , 'true' ]]
- ['0x05' UINT ['W' , '2' , 'TransportSize.INT' , 'DataTransportSize.INTEGER' , '24' , 'false' , 'false' , 'true' , 'true' , 'true' ]]
+ ['0x05' INT ['W' , '2' , 'null' , 'DataTransportSize.INTEGER' , 'IEC61131_INT' , 'true' , 'true' , 'true' , 'true' , 'true' ]]
+ ['0x05' UINT ['W' , '2' , 'TransportSize.INT' , 'DataTransportSize.INTEGER' , 'IEC61131_UINT' , 'false' , 'false' , 'true' , 'true' , 'true' ]]
// ...
- ['0x02' SINT ['B' , '1' , 'TransportSize.INT' , 'DataTransportSize.BYTE_WORD_DWORD' , '21' , 'false' , 'false' , 'true' , 'true' , 'true' ]]
- ['0x02' USINT ['B' , '1' , 'TransportSize.INT' , 'DataTransportSize.BYTE_WORD_DWORD' , '22' , 'false' , 'false' , 'true' , 'true' , 'true' ]]
- ['0x07' DINT ['D' , '4' , 'TransportSize.INT' , 'DataTransportSize.INTEGER' , '25' , 'true' , 'true' , 'true' , 'true' , 'true' ]]
- ['0x07' UDINT ['D' , '4' , 'TransportSize.INT' , 'DataTransportSize.INTEGER' , '26' , 'false' , 'false' , 'true' , 'true' , 'true' ]]
- ['0x00' LINT ['X' , '8' , 'TransportSize.INT' , 'null' , '27' , 'false' , 'false' , 'false' , 'true' , 'false' ]]
- ['0x00' ULINT ['X' , '16' , 'TransportSize.INT' , 'null' , '28' , 'false' , 'false' , 'false' , 'true' , 'false' ]]
+ ['0x02' SINT ['B' , '1' , 'TransportSize.INT' , 'DataTransportSize.BYTE_WORD_DWORD' , 'IEC61131_SINT' , 'false' , 'false' , 'true' , 'true' , 'true' ]]
+ ['0x02' USINT ['B' , '1' , 'TransportSize.INT' , 'DataTransportSize.BYTE_WORD_DWORD' , 'IEC61131_USINT' , 'false' , 'false' , 'true' , 'true' , 'true' ]]
+ ['0x07' DINT ['D' , '4' , 'TransportSize.INT' , 'DataTransportSize.INTEGER' , 'IEC61131_DINT' , 'true' , 'true' , 'true' , 'true' , 'true' ]]
+ ['0x07' UDINT ['D' , '4' , 'TransportSize.INT' , 'DataTransportSize.INTEGER' , 'IEC61131_UDINT' , 'false' , 'false' , 'true' , 'true' , 'true' ]]
+ ['0x00' LINT ['X' , '8' , 'TransportSize.INT' , 'null' , 'IEC61131_LINT' , 'false' , 'false' , 'false' , 'true' , 'false' ]]
+ ['0x00' ULINT ['X' , '16' , 'TransportSize.INT' , 'null' , 'IEC61131_ULINT' , 'false' , 'false' , 'false' , 'true' , 'false' ]]
// Floating point values
- ['0x08' REAL ['D' , '4' , 'null' , 'DataTransportSize.BYTE_WORD_DWORD' , '31' , 'true' , 'true' , 'true' , 'true' , 'true' ]]
- ['0x30' LREAL ['X' , '8' , 'TransportSize.REAL' , 'null' , '32' , 'false' , 'false' , 'true' , 'true' , 'false' ]]
+ ['0x08' REAL ['D' , '4' , 'null' , 'DataTransportSize.BYTE_WORD_DWORD' , 'IEC61131_REAL' , 'true' , 'true' , 'true' , 'true' , 'true' ]]
+ ['0x30' LREAL ['X' , '8' , 'TransportSize.REAL' , 'null' , 'IEC61131_LREAL' , 'false' , 'false' , 'true' , 'true' , 'false' ]]
// Characters and Strings
- ['0x03' CHAR ['B' , '1' , 'null' , 'DataTransportSize.BYTE_WORD_DWORD' , '41' , 'true' , 'true' , 'true' , 'true' , 'true' ]]
- ['0x13' WCHAR ['X' , '2' , 'null' , 'null' , '42' , 'false' , 'false' , 'true' , 'true' , 'true' ]]
- ['0x03' STRING ['X' , '1' , 'null' , 'DataTransportSize.BYTE_WORD_DWORD' , '43' , 'true' , 'true' , 'true' , 'true' , 'true' ]]
- ['0x00' WSTRING ['X' , '2' , 'null' , 'null' , '44' , 'false' , 'false' , 'true' , 'true' , 'true' ]]
+ ['0x03' CHAR ['B' , '1' , 'null' , 'DataTransportSize.BYTE_WORD_DWORD' , 'IEC61131_CHAR' , 'true' , 'true' , 'true' , 'true' , 'true' ]]
+ ['0x13' WCHAR ['X' , '2' , 'null' , 'null' , 'IEC61131_WCHAR' , 'false' , 'false' , 'true' , 'true' , 'true' ]]
+ ['0x03' STRING ['X' , '1' , 'null' , 'DataTransportSize.BYTE_WORD_DWORD' , 'IEC61131_STRING' , 'true' , 'true' , 'true' , 'true' , 'true' ]]
+ ['0x00' WSTRING ['X' , '2' , 'null' , 'null' , 'IEC61131_WSTRING' , 'false' , 'false' , 'true' , 'true' , 'true' ]]
// Dates and time values (Please note that we seem to have to reqite queries for these types to reading bytes or we'll get "Data type not supported" errors)
- ['0x0B' TIME ['X' , '4' , 'null' , 'null' , '51' , 'true' , 'true' , 'true' , 'true' , 'true' ]]
- ['0x0C' S5TIME ['X' , '4' , 'null' , 'null' , '52' , 'true' , 'true' , 'true' , 'true' , 'true' ]]
- ['0x00' LTIME ['X' , '8' , 'TransportSize.TIME' , 'null' , '53' , 'false' , 'false' , 'false' , 'true' , 'false' ]]
- ['0x09' DATE ['X' , '2' , 'null' , 'DataTransportSize.BYTE_WORD_DWORD' , '54' , 'true' , 'true' , 'true' , 'true' , 'true' ]]
- ['0x0A' TIME_OF_DAY ['X' , '4' , 'null' , 'DataTransportSize.BYTE_WORD_DWORD' , '55' , 'true' , 'true' , 'true' , 'true' , 'true' ]]
- ['0x0F' DATE_AND_TIME ['X' , '12' , 'null' , 'null' , '56' , 'true' , 'true' , 'false' , 'true' , 'false' ]]
+ ['0x0B' TIME ['X' , '4' , 'null' , 'null' , 'IEC61131_TIME' , 'true' , 'true' , 'true' , 'true' , 'true' ]]
+ ['0x0C' S5TIME ['X' , '4' , 'null' , 'null' , 'S7_S5TIME' , 'true' , 'true' , 'true' , 'true' , 'true' ]]
+ ['0x00' LTIME ['X' , '8' , 'TransportSize.TIME' , 'null' , 'IEC61131_LTIME' , 'false' , 'false' , 'false' , 'true' , 'false' ]]
+ ['0x09' DATE ['X' , '2' , 'null' , 'DataTransportSize.BYTE_WORD_DWORD' , 'IEC61131_DATE' , 'true' , 'true' , 'true' , 'true' , 'true' ]]
+ ['0x0A' TIME_OF_DAY ['X' , '4' , 'null' , 'DataTransportSize.BYTE_WORD_DWORD' , 'IEC61131_TIME_OF_DAY' , 'true' , 'true' , 'true' , 'true' , 'true' ]]
+ ['0x0F' DATE_AND_TIME ['X' , '12' , 'null' , 'null' , 'IEC61131_DATE_AND_TIME', 'true' , 'true' , 'false' , 'true' , 'false' ]]
]
[enum uint 8 'MemoryArea' [string 24 'shortName']
diff --git a/sandbox/plc4c/generated-sources/s7/include/data_item.h b/sandbox/plc4c/generated-sources/s7/include/data_item.h
index a0a5fa6..f32340e 100644
--- a/sandbox/plc4c/generated-sources/s7/include/data_item.h
+++ b/sandbox/plc4c/generated-sources/s7/include/data_item.h
@@ -29,7 +29,7 @@
extern "C" {
#endif
-plc4c_return_code plc4c_s7_read_write_data_item_parse(plc4c_spi_read_buffer* buf, uint8_t dataProtocolId, int32_t stringLength, plc4c_data** data_item);
+plc4c_return_code plc4c_s7_read_write_data_item_parse(plc4c_spi_read_buffer* buf, char* dataProtocolId, int32_t stringLength, plc4c_data** data_item);
plc4c_return_code plc4c_s7_read_write_data_item_serialize(plc4c_spi_write_buffer* buf, plc4c_data** data_item);
diff --git a/sandbox/plc4c/generated-sources/s7/include/transport_size.h b/sandbox/plc4c/generated-sources/s7/include/transport_size.h
index 9679277..344501c 100644
--- a/sandbox/plc4c/generated-sources/s7/include/transport_size.h
+++ b/sandbox/plc4c/generated-sources/s7/include/transport_size.h
@@ -85,7 +85,7 @@ plc4c_s7_read_write_data_transport_size plc4c_s7_read_write_transport_size_get_d
plc4c_s7_read_write_transport_size plc4c_s7_read_write_transport_size_get_base_type(plc4c_s7_read_write_transport_size value);
-uint8_t plc4c_s7_read_write_transport_size_get_data_protocol_id(plc4c_s7_read_write_transport_size value);
+char* plc4c_s7_read_write_transport_size_get_data_protocol_id(plc4c_s7_read_write_transport_size value);
#ifdef __cplusplus
}
diff --git a/sandbox/plc4c/generated-sources/s7/src/data_item.c b/sandbox/plc4c/generated-sources/s7/src/data_item.c
index db44784..534194e 100644
--- a/sandbox/plc4c/generated-sources/s7/src/data_item.c
+++ b/sandbox/plc4c/generated-sources/s7/src/data_item.c
@@ -26,12 +26,12 @@
#include "data_item.h"
// Parse function.
-plc4c_return_code plc4c_s7_read_write_data_item_parse(plc4c_spi_read_buffer* io, uint8_t dataProtocolId, int32_t stringLength, plc4c_data** data_item) {
+plc4c_return_code plc4c_s7_read_write_data_item_parse(plc4c_spi_read_buffer* io, char* dataProtocolId, int32_t stringLength, plc4c_data** data_item) {
uint16_t startPos = plc4c_spi_read_get_pos(io);
uint16_t curPos;
plc4c_return_code _res = OK;
- if(dataProtocolId == 01) { /* BOOL */
+ if(strcmp(dataProtocolId, "IEC61131_BOOL") == 0) { /* BOOL */
// Reserved Field (Compartmentalized so the "reserved" variable can't leak)
{
@@ -55,23 +55,23 @@ plc4c_return_code plc4c_s7_read_write_data_item_parse(plc4c_spi_read_buffer* io,
*data_item = plc4c_data_create_bool_data(value);
} else
- if(dataProtocolId == 11) { /* BOOL */
+ if(strcmp(dataProtocolId, "IEC61131_BYTE") == 0) { /* BOOL */
// Array field (value)
} else
- if(dataProtocolId == 12) { /* BOOL */
+ if(strcmp(dataProtocolId, "IEC61131_WORD") == 0) { /* BOOL */
// Array field (value)
} else
- if(dataProtocolId == 13) { /* BOOL */
+ if(strcmp(dataProtocolId, "IEC61131_DWORD") == 0) { /* BOOL */
// Array field (value)
} else
- if(dataProtocolId == 14) { /* BOOL */
+ if(strcmp(dataProtocolId, "IEC61131_LWORD") == 0) { /* BOOL */
// Array field (value)
} else
- if(dataProtocolId == 21) { /* SINT */
+ if(strcmp(dataProtocolId, "IEC61131_SINT") == 0) { /* SINT */
// Simple Field (value)
int8_t value = 0;
@@ -83,7 +83,7 @@ plc4c_return_code plc4c_s7_read_write_data_item_parse(plc4c_spi_read_buffer* io,
*data_item = plc4c_data_create_int8_t_data(value);
} else
- if(dataProtocolId == 22) { /* USINT */
+ if(strcmp(dataProtocolId, "IEC61131_USINT") == 0) { /* USINT */
// Simple Field (value)
uint8_t value = 0;
@@ -95,7 +95,7 @@ plc4c_return_code plc4c_s7_read_write_data_item_parse(plc4c_spi_read_buffer* io,
*data_item = plc4c_data_create_uint8_t_data(value);
} else
- if(dataProtocolId == 23) { /* INT */
+ if(strcmp(dataProtocolId, "IEC61131_INT") == 0) { /* INT */
// Simple Field (value)
int16_t value = 0;
@@ -107,7 +107,7 @@ plc4c_return_code plc4c_s7_read_write_data_item_parse(plc4c_spi_read_buffer* io,
*data_item = plc4c_data_create_int16_t_data(value);
} else
- if(dataProtocolId == 24) { /* UINT */
+ if(strcmp(dataProtocolId, "IEC61131_UINT") == 0) { /* UINT */
// Simple Field (value)
uint16_t value = 0;
@@ -119,7 +119,7 @@ plc4c_return_code plc4c_s7_read_write_data_item_parse(plc4c_spi_read_buffer* io,
*data_item = plc4c_data_create_uint16_t_data(value);
} else
- if(dataProtocolId == 25) { /* DINT */
+ if(strcmp(dataProtocolId, "IEC61131_DINT") == 0) { /* DINT */
// Simple Field (value)
int32_t value = 0;
@@ -131,7 +131,7 @@ plc4c_return_code plc4c_s7_read_write_data_item_parse(plc4c_spi_read_buffer* io,
*data_item = plc4c_data_create_int32_t_data(value);
} else
- if(dataProtocolId == 26) { /* UDINT */
+ if(strcmp(dataProtocolId, "IEC61131_UDINT") == 0) { /* UDINT */
// Simple Field (value)
uint32_t value = 0;
@@ -143,7 +143,7 @@ plc4c_return_code plc4c_s7_read_write_data_item_parse(plc4c_spi_read_buffer* io,
*data_item = plc4c_data_create_uint32_t_data(value);
} else
- if(dataProtocolId == 27) { /* LINT */
+ if(strcmp(dataProtocolId, "IEC61131_LINT") == 0) { /* LINT */
// Simple Field (value)
int64_t value = 0;
@@ -155,7 +155,7 @@ plc4c_return_code plc4c_s7_read_write_data_item_parse(plc4c_spi_read_buffer* io,
*data_item = plc4c_data_create_int64_t_data(value);
} else
- if(dataProtocolId == 28) { /* ULINT */
+ if(strcmp(dataProtocolId, "IEC61131_ULINT") == 0) { /* ULINT */
// Simple Field (value)
uint64_t value = 0;
@@ -167,7 +167,7 @@ plc4c_return_code plc4c_s7_read_write_data_item_parse(plc4c_spi_read_buffer* io,
*data_item = plc4c_data_create_uint64_t_data(value);
} else
- if(dataProtocolId == 31) { /* REAL */
+ if(strcmp(dataProtocolId, "IEC61131_REAL") == 0) { /* REAL */
// Simple Field (value)
float value = 0.0;
@@ -179,7 +179,7 @@ plc4c_return_code plc4c_s7_read_write_data_item_parse(plc4c_spi_read_buffer* io,
*data_item = plc4c_data_create_float_data(value);
} else
- if(dataProtocolId == 32) { /* LREAL */
+ if(strcmp(dataProtocolId, "IEC61131_LREAL") == 0) { /* LREAL */
// Simple Field (value)
double value = 0.0;
@@ -191,52 +191,52 @@ plc4c_return_code plc4c_s7_read_write_data_item_parse(plc4c_spi_read_buffer* io,
*data_item = plc4c_data_create_double_data(value);
} else
- if(dataProtocolId == 41) { /* CHAR */
+ if(strcmp(dataProtocolId, "IEC61131_CHAR") == 0) { /* CHAR */
// Manual Field (value)
char* value = (char*) (plc4c_s7_read_write_parse_s7_char(io, "UTF-8"));
} else
- if(dataProtocolId == 42) { /* CHAR */
+ if(strcmp(dataProtocolId, "IEC61131_WCHAR") == 0) { /* CHAR */
// Manual Field (value)
char* value = (char*) (plc4c_s7_read_write_parse_s7_char(io, "UTF-16"));
} else
- if(dataProtocolId == 43) { /* STRING */
+ if(strcmp(dataProtocolId, "IEC61131_STRING") == 0) { /* STRING */
// Manual Field (value)
char* value = (char*) (plc4c_s7_read_write_parse_s7_string(io, stringLength, "UTF-8"));
} else
- if(dataProtocolId == 44) { /* STRING */
+ if(strcmp(dataProtocolId, "IEC61131_WSTRING") == 0) { /* STRING */
// Manual Field (value)
char* value = (char*) (plc4c_s7_read_write_parse_s7_string(io, stringLength, "UTF-16"));
} else
- if(dataProtocolId == 51) { /* Time */
+ if(strcmp(dataProtocolId, "IEC61131_TIME") == 0) { /* Time */
// Manual Field (value)
time_t value = (time_t) (plc4c_s7_read_write_parse_tia_time(io));
} else
- if(dataProtocolId == 52) { /* Time */
+ if(strcmp(dataProtocolId, "S7_S5TIME") == 0) { /* Time */
// Manual Field (value)
time_t value = (time_t) (plc4c_s7_read_write_parse_s5_time(io));
} else
- if(dataProtocolId == 53) { /* Time */
+ if(strcmp(dataProtocolId, "IEC61131_LTIME") == 0) { /* Time */
// Manual Field (value)
time_t value = (time_t) (plc4c_s7_read_write_parse_tia_l_time(io));
} else
- if(dataProtocolId == 54) { /* Date */
+ if(strcmp(dataProtocolId, "IEC61131_DATE") == 0) { /* Date */
// Manual Field (value)
time_t value = (time_t) (plc4c_s7_read_write_parse_tia_date(io));
} else
- if(dataProtocolId == 55) { /* Time */
+ if(strcmp(dataProtocolId, "IEC61131_TIME_OF_DAY") == 0) { /* Time */
// Manual Field (value)
time_t value = (time_t) (plc4c_s7_read_write_parse_tia_time_of_day(io));
} else
- if(dataProtocolId == 56) { /* DateTime */
+ if(strcmp(dataProtocolId, "IEC61131_DATE_AND_TIME") == 0) { /* DateTime */
// Manual Field (value)
time_t value = (time_t) (plc4c_s7_read_write_parse_tia_date_time(io));
diff --git a/sandbox/plc4c/generated-sources/s7/src/transport_size.c b/sandbox/plc4c/generated-sources/s7/src/transport_size.c
index c2e1039..a7d8e17 100644
--- a/sandbox/plc4c/generated-sources/s7/src/transport_size.c
+++ b/sandbox/plc4c/generated-sources/s7/src/transport_size.c
@@ -646,55 +646,55 @@ plc4c_s7_read_write_transport_size plc4c_s7_read_write_transport_size_get_base_t
}
}
-uint8_t plc4c_s7_read_write_transport_size_get_data_protocol_id(plc4c_s7_read_write_transport_size value) {
+char* plc4c_s7_read_write_transport_size_get_data_protocol_id(plc4c_s7_read_write_transport_size value) {
switch(value) {
case plc4c_s7_read_write_transport_size_LWORD: { /* '0x00' */
- return 14;
+ return "IEC61131_LWORD";
}
case plc4c_s7_read_write_transport_size_BOOL: { /* '0x01' */
- return 01;
+ return "IEC61131_BOOL";
}
case plc4c_s7_read_write_transport_size_BYTE: { /* '0x02' */
- return 11;
+ return "IEC61131_BYTE";
}
case plc4c_s7_read_write_transport_size_CHAR: { /* '0x03' */
- return 41;
+ return "IEC61131_CHAR";
}
case plc4c_s7_read_write_transport_size_WORD: { /* '0x04' */
- return 12;
+ return "IEC61131_WORD";
}
case plc4c_s7_read_write_transport_size_INT: { /* '0x05' */
- return 23;
+ return "IEC61131_INT";
}
case plc4c_s7_read_write_transport_size_DWORD: { /* '0x06' */
- return 13;
+ return "IEC61131_DWORD";
}
case plc4c_s7_read_write_transport_size_DINT: { /* '0x07' */
- return 25;
+ return "IEC61131_DINT";
}
case plc4c_s7_read_write_transport_size_REAL: { /* '0x08' */
- return 31;
+ return "IEC61131_REAL";
}
case plc4c_s7_read_write_transport_size_DATE: { /* '0x09' */
- return 54;
+ return "IEC61131_DATE";
}
case plc4c_s7_read_write_transport_size_TIME_OF_DAY: { /* '0x0A' */
- return 55;
+ return "IEC61131_TIME_OF_DAY";
}
case plc4c_s7_read_write_transport_size_TIME: { /* '0x0B' */
- return 51;
+ return "IEC61131_TIME";
}
case plc4c_s7_read_write_transport_size_S5TIME: { /* '0x0C' */
- return 52;
+ return "S7_S5TIME";
}
case plc4c_s7_read_write_transport_size_DATE_AND_TIME: { /* '0x0F' */
- return 56;
+ return "IEC61131_DATE_AND_TIME";
}
case plc4c_s7_read_write_transport_size_WCHAR: { /* '0x13' */
- return 42;
+ return "IEC61131_WCHAR";
}
case plc4c_s7_read_write_transport_size_LREAL: { /* '0x30' */
- return 32;
+ return "IEC61131_LREAL";
}
default: {
return 0;
diff --git a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/DataItem.go b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/DataItem.go
index 8f80b6e..41e7ffe 100644
--- a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/DataItem.go
+++ b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/DataItem.go
@@ -19,234 +19,233 @@
package model
import (
- "errors"
- "plc4x.apache.org/plc4go-modbus-driver/v0/internal/plc4go/model/values"
- "plc4x.apache.org/plc4go-modbus-driver/v0/internal/plc4go/utils"
- api "plc4x.apache.org/plc4go-modbus-driver/v0/pkg/plc4go/values"
+ "errors"
+ "plc4x.apache.org/plc4go-modbus-driver/v0/internal/plc4go/model/values"
+ "plc4x.apache.org/plc4go-modbus-driver/v0/internal/plc4go/utils"
+ api "plc4x.apache.org/plc4go-modbus-driver/v0/pkg/plc4go/values"
)
-func DataItemParse(io *utils.ReadBuffer, dataProtocolId uint8, stringLength int32) (api.PlcValue, error) {
- switch {
- case dataProtocolId == 01: // BOOL
-
- // Reserved Field (Just skip the bytes)
- io.ReadUint8(7)
-
- // Simple Field (value)
- value, _valueErr := io.ReadBit()
- if _valueErr != nil {
- return nil, errors.New("Error parsing 'value' field " + _valueErr.Error())
- }
- return values.NewPlcBOOL(value), nil
- case dataProtocolId == 11: // BOOL
-
- // Array Field (value)
- var value []api.PlcValue
- for i := 0; i < int((8)); i++ {
- _item, _itemErr := DataItemParse(io, dataProtocolId, int32(1))
- if _itemErr != nil {
- return nil, errors.New("Error parsing 'value' field " + _itemErr.Error())
- }
- value = append(value, _item)
- }
- return values.NewPlcList(value), nil
- case dataProtocolId == 12: // BOOL
-
- // Array Field (value)
- var value []api.PlcValue
- for i := 0; i < int((16)); i++ {
- _item, _itemErr := DataItemParse(io, dataProtocolId, int32(1))
- if _itemErr != nil {
- return nil, errors.New("Error parsing 'value' field " + _itemErr.Error())
- }
- value = append(value, _item)
- }
- return values.NewPlcList(value), nil
- case dataProtocolId == 13: // BOOL
-
- // Array Field (value)
- var value []api.PlcValue
- for i := 0; i < int((32)); i++ {
- _item, _itemErr := DataItemParse(io, dataProtocolId, int32(1))
- if _itemErr != nil {
- return nil, errors.New("Error parsing 'value' field " + _itemErr.Error())
- }
- value = append(value, _item)
- }
- return values.NewPlcList(value), nil
- case dataProtocolId == 14: // BOOL
-
- // Array Field (value)
- var value []api.PlcValue
- for i := 0; i < int((64)); i++ {
- _item, _itemErr := DataItemParse(io, dataProtocolId, int32(1))
- if _itemErr != nil {
- return nil, errors.New("Error parsing 'value' field " + _itemErr.Error())
- }
- value = append(value, _item)
- }
- return values.NewPlcList(value), nil
- case dataProtocolId == 21: // SINT
-
- // Simple Field (value)
- value, _valueErr := io.ReadInt8(8)
- if _valueErr != nil {
- return nil, errors.New("Error parsing 'value' field " + _valueErr.Error())
- }
- return values.NewPlcSINT(value), nil
- case dataProtocolId == 22: // USINT
-
- // Simple Field (value)
- value, _valueErr := io.ReadUint8(8)
- if _valueErr != nil {
- return nil, errors.New("Error parsing 'value' field " + _valueErr.Error())
- }
- return values.NewPlcUSINT(value), nil
- case dataProtocolId == 23: // INT
-
- // Simple Field (value)
- value, _valueErr := io.ReadInt16(16)
- if _valueErr != nil {
- return nil, errors.New("Error parsing 'value' field " + _valueErr.Error())
- }
- return values.NewPlcINT(value), nil
- case dataProtocolId == 24: // UINT
-
- // Simple Field (value)
- value, _valueErr := io.ReadUint16(16)
- if _valueErr != nil {
- return nil, errors.New("Error parsing 'value' field " + _valueErr.Error())
- }
- return values.NewPlcUINT(value), nil
- case dataProtocolId == 25: // DINT
-
- // Simple Field (value)
- value, _valueErr := io.ReadInt32(32)
- if _valueErr != nil {
- return nil, errors.New("Error parsing 'value' field " + _valueErr.Error())
- }
- return values.NewPlcDINT(value), nil
- case dataProtocolId == 26: // UDINT
-
- // Simple Field (value)
- value, _valueErr := io.ReadUint32(32)
- if _valueErr != nil {
- return nil, errors.New("Error parsing 'value' field " + _valueErr.Error())
- }
- return values.NewPlcUDINT(value), nil
- case dataProtocolId == 27: // LINT
-
- // Simple Field (value)
- value, _valueErr := io.ReadInt64(64)
- if _valueErr != nil {
- return nil, errors.New("Error parsing 'value' field " + _valueErr.Error())
- }
- return values.NewPlcLINT(value), nil
- case dataProtocolId == 28: // ULINT
-
- // Simple Field (value)
- value, _valueErr := io.ReadUint64(64)
- if _valueErr != nil {
- return nil, errors.New("Error parsing 'value' field " + _valueErr.Error())
- }
- return values.NewPlcULINT(value), nil
- case dataProtocolId == 31: // REAL
-
- // Simple Field (value)
- value, _valueErr := io.ReadFloat32(32)
- if _valueErr != nil {
- return nil, errors.New("Error parsing 'value' field " + _valueErr.Error())
- }
- return values.NewPlcREAL(value), nil
- case dataProtocolId == 32: // LREAL
-
- // Simple Field (value)
- value, _valueErr := io.ReadFloat64(64)
- if _valueErr != nil {
- return nil, errors.New("Error parsing 'value' field " + _valueErr.Error())
- }
- return values.NewPlcLREAL(value), nil
- case dataProtocolId == 41: // CHAR
-
- // Manual Field (value)
- value, _valueErr := StaticHelperParseS7Char(io, "UTF-8")
- if _valueErr != nil {
- return nil, errors.New("Error parsing 'value' field " + _valueErr.Error())
- }
- return values.NewPlcCHAR(value), nil
- case dataProtocolId == 42: // CHAR
-
- // Manual Field (value)
- value, _valueErr := StaticHelperParseS7Char(io, "UTF-16")
- if _valueErr != nil {
- return nil, errors.New("Error parsing 'value' field " + _valueErr.Error())
- }
- return values.NewPlcCHAR(value), nil
- case dataProtocolId == 43: // STRING
-
- // Manual Field (value)
- value, _valueErr := StaticHelperParseS7String(io, stringLength, "UTF-8")
- if _valueErr != nil {
- return nil, errors.New("Error parsing 'value' field " + _valueErr.Error())
- }
- return values.NewPlcSTRING(value), nil
- case dataProtocolId == 44: // STRING
-
- // Manual Field (value)
- value, _valueErr := StaticHelperParseS7String(io, stringLength, "UTF-16")
- if _valueErr != nil {
- return nil, errors.New("Error parsing 'value' field " + _valueErr.Error())
- }
- return values.NewPlcSTRING(value), nil
- case dataProtocolId == 51: // Time
-
- // Manual Field (value)
- value, _valueErr := StaticHelperParseTiaTime(io)
- if _valueErr != nil {
- return nil, errors.New("Error parsing 'value' field " + _valueErr.Error())
- }
- return values.NewPlcTIME(value), nil
- case dataProtocolId == 52: // Time
-
- // Manual Field (value)
- value, _valueErr := StaticHelperParseS5Time(io)
- if _valueErr != nil {
- return nil, errors.New("Error parsing 'value' field " + _valueErr.Error())
- }
- return values.NewPlcTIME(value), nil
- case dataProtocolId == 53: // Time
-
- // Manual Field (value)
- value, _valueErr := StaticHelperParseTiaLTime(io)
- if _valueErr != nil {
- return nil, errors.New("Error parsing 'value' field " + _valueErr.Error())
- }
- return values.NewPlcTIME(value), nil
- case dataProtocolId == 54: // Date
-
- // Manual Field (value)
- value, _valueErr := StaticHelperParseTiaDate(io)
- if _valueErr != nil {
- return nil, errors.New("Error parsing 'value' field " + _valueErr.Error())
- }
- return values.NewPlcTIME(value), nil
- case dataProtocolId == 55: // Time
-
- // Manual Field (value)
- value, _valueErr := StaticHelperParseTiaTimeOfDay(io)
- if _valueErr != nil {
- return nil, errors.New("Error parsing 'value' field " + _valueErr.Error())
- }
- return values.NewPlcTIME(value), nil
- case dataProtocolId == 56: // DateTime
-
- // Manual Field (value)
- value, _valueErr := StaticHelperParseTiaDateTime(io)
- if _valueErr != nil {
- return nil, errors.New("Error parsing 'value' field " + _valueErr.Error())
- }
- return values.NewPlcTIME(value), nil
- }
- return nil, errors.New("unsupported type")
+func DataItemParse(io *utils.ReadBuffer, dataProtocolId string, stringLength int32) (api.PlcValue, error) {
+ switch {
+ case dataProtocolId == "IEC61131_BOOL": // BOOL
+
+ // Reserved Field (Just skip the bytes)
+ io.ReadUint8(7)
+
+ // Simple Field (value)
+ value, _valueErr := io.ReadBit()
+ if _valueErr != nil {
+ return nil, errors.New("Error parsing 'value' field " + _valueErr.Error())
+ }
+ return values.NewPlcBOOL(value), nil
+ case dataProtocolId == "IEC61131_BYTE": // BOOL
+
+ // Array Field (value)
+ var value []api.PlcValue
+ for i := 0; i < int((8)); i++ {
+ _item, _itemErr := DataItemParse(io, dataProtocolId, int32(1))
+ if _itemErr != nil {
+ return nil, errors.New("Error parsing 'value' field " + _itemErr.Error())
+ }
+ value = append(value, _item)
+ }
+ return values.NewPlcList(value), nil
+ case dataProtocolId == "IEC61131_WORD": // BOOL
+
+ // Array Field (value)
+ var value []api.PlcValue
+ for i := 0; i < int((16)); i++ {
+ _item, _itemErr := DataItemParse(io, dataProtocolId, int32(1))
+ if _itemErr != nil {
+ return nil, errors.New("Error parsing 'value' field " + _itemErr.Error())
+ }
+ value = append(value, _item)
+ }
+ return values.NewPlcList(value), nil
+ case dataProtocolId == "IEC61131_DWORD": // BOOL
+
+ // Array Field (value)
+ var value []api.PlcValue
+ for i := 0; i < int((32)); i++ {
+ _item, _itemErr := DataItemParse(io, dataProtocolId, int32(1))
+ if _itemErr != nil {
+ return nil, errors.New("Error parsing 'value' field " + _itemErr.Error())
+ }
+ value = append(value, _item)
+ }
+ return values.NewPlcList(value), nil
+ case dataProtocolId == "IEC61131_LWORD": // BOOL
+
+ // Array Field (value)
+ var value []api.PlcValue
+ for i := 0; i < int((64)); i++ {
+ _item, _itemErr := DataItemParse(io, dataProtocolId, int32(1))
+ if _itemErr != nil {
+ return nil, errors.New("Error parsing 'value' field " + _itemErr.Error())
+ }
+ value = append(value, _item)
+ }
+ return values.NewPlcList(value), nil
+ case dataProtocolId == "IEC61131_SINT": // SINT
+
+ // Simple Field (value)
+ value, _valueErr := io.ReadInt8(8)
+ if _valueErr != nil {
+ return nil, errors.New("Error parsing 'value' field " + _valueErr.Error())
+ }
+ return values.NewPlcSINT(value), nil
+ case dataProtocolId == "IEC61131_USINT": // USINT
+
+ // Simple Field (value)
+ value, _valueErr := io.ReadUint8(8)
+ if _valueErr != nil {
+ return nil, errors.New("Error parsing 'value' field " + _valueErr.Error())
+ }
+ return values.NewPlcUSINT(value), nil
+ case dataProtocolId == "IEC61131_INT": // INT
+
+ // Simple Field (value)
+ value, _valueErr := io.ReadInt16(16)
+ if _valueErr != nil {
+ return nil, errors.New("Error parsing 'value' field " + _valueErr.Error())
+ }
+ return values.NewPlcINT(value), nil
+ case dataProtocolId == "IEC61131_UINT": // UINT
+
+ // Simple Field (value)
+ value, _valueErr := io.ReadUint16(16)
+ if _valueErr != nil {
+ return nil, errors.New("Error parsing 'value' field " + _valueErr.Error())
+ }
+ return values.NewPlcUINT(value), nil
+ case dataProtocolId == "IEC61131_DINT": // DINT
+
+ // Simple Field (value)
+ value, _valueErr := io.ReadInt32(32)
+ if _valueErr != nil {
+ return nil, errors.New("Error parsing 'value' field " + _valueErr.Error())
+ }
+ return values.NewPlcDINT(value), nil
+ case dataProtocolId == "IEC61131_UDINT": // UDINT
+
+ // Simple Field (value)
+ value, _valueErr := io.ReadUint32(32)
+ if _valueErr != nil {
+ return nil, errors.New("Error parsing 'value' field " + _valueErr.Error())
+ }
+ return values.NewPlcUDINT(value), nil
+ case dataProtocolId == "IEC61131_LINT": // LINT
+
+ // Simple Field (value)
+ value, _valueErr := io.ReadInt64(64)
+ if _valueErr != nil {
+ return nil, errors.New("Error parsing 'value' field " + _valueErr.Error())
+ }
+ return values.NewPlcLINT(value), nil
+ case dataProtocolId == "IEC61131_ULINT": // ULINT
+
+ // Simple Field (value)
+ value, _valueErr := io.ReadUint64(64)
+ if _valueErr != nil {
+ return nil, errors.New("Error parsing 'value' field " + _valueErr.Error())
+ }
+ return values.NewPlcULINT(value), nil
+ case dataProtocolId == "IEC61131_REAL": // REAL
+
+ // Simple Field (value)
+ value, _valueErr := io.ReadFloat32(32)
+ if _valueErr != nil {
+ return nil, errors.New("Error parsing 'value' field " + _valueErr.Error())
+ }
+ return values.NewPlcREAL(value), nil
+ case dataProtocolId == "IEC61131_LREAL": // LREAL
+
+ // Simple Field (value)
+ value, _valueErr := io.ReadFloat64(64)
+ if _valueErr != nil {
+ return nil, errors.New("Error parsing 'value' field " + _valueErr.Error())
+ }
+ return values.NewPlcLREAL(value), nil
+ case dataProtocolId == "IEC61131_CHAR": // CHAR
+
+ // Manual Field (value)
+ value, _valueErr := StaticHelperParseS7Char(io, "UTF-8")
+ if _valueErr != nil {
+ return nil, errors.New("Error parsing 'value' field " + _valueErr.Error())
+ }
+ return values.NewPlcCHAR(value), nil
+ case dataProtocolId == "IEC61131_WCHAR": // CHAR
+
+ // Manual Field (value)
+ value, _valueErr := StaticHelperParseS7Char(io, "UTF-16")
+ if _valueErr != nil {
+ return nil, errors.New("Error parsing 'value' field " + _valueErr.Error())
+ }
+ return values.NewPlcCHAR(value), nil
+ case dataProtocolId == "IEC61131_STRING": // STRING
+
+ // Manual Field (value)
+ value, _valueErr := StaticHelperParseS7String(io, stringLength, "UTF-8")
+ if _valueErr != nil {
+ return nil, errors.New("Error parsing 'value' field " + _valueErr.Error())
+ }
+ return values.NewPlcSTRING(value), nil
+ case dataProtocolId == "IEC61131_WSTRING": // STRING
+
+ // Manual Field (value)
+ value, _valueErr := StaticHelperParseS7String(io, stringLength, "UTF-16")
+ if _valueErr != nil {
+ return nil, errors.New("Error parsing 'value' field " + _valueErr.Error())
+ }
+ return values.NewPlcSTRING(value), nil
+ case dataProtocolId == "IEC61131_TIME": // Time
+
+ // Manual Field (value)
+ value, _valueErr := StaticHelperParseTiaTime(io)
+ if _valueErr != nil {
+ return nil, errors.New("Error parsing 'value' field " + _valueErr.Error())
+ }
+ return values.NewPlcTIME(value), nil
+ case dataProtocolId == "S7_S5TIME": // Time
+
+ // Manual Field (value)
+ value, _valueErr := StaticHelperParseS5Time(io)
+ if _valueErr != nil {
+ return nil, errors.New("Error parsing 'value' field " + _valueErr.Error())
+ }
+ return values.NewPlcTIME(value), nil
+ case dataProtocolId == "IEC61131_LTIME": // Time
+
+ // Manual Field (value)
+ value, _valueErr := StaticHelperParseTiaLTime(io)
+ if _valueErr != nil {
+ return nil, errors.New("Error parsing 'value' field " + _valueErr.Error())
+ }
+ return values.NewPlcTIME(value), nil
+ case dataProtocolId == "IEC61131_DATE": // Date
+
+ // Manual Field (value)
+ value, _valueErr := StaticHelperParseTiaDate(io)
+ if _valueErr != nil {
+ return nil, errors.New("Error parsing 'value' field " + _valueErr.Error())
+ }
+ return values.NewPlcTIME(value), nil
+ case dataProtocolId == "IEC61131_TIME_OF_DAY": // Time
+
+ // Manual Field (value)
+ value, _valueErr := StaticHelperParseTiaTimeOfDay(io)
+ if _valueErr != nil {
+ return nil, errors.New("Error parsing 'value' field " + _valueErr.Error())
+ }
+ return values.NewPlcTIME(value), nil
+ case dataProtocolId == "IEC61131_DATE_AND_TIME": // DateTime
+
+ // Manual Field (value)
+ value, _valueErr := StaticHelperParseTiaDateTime(io)
+ if _valueErr != nil {
+ return nil, errors.New("Error parsing 'value' field " + _valueErr.Error())
+ }
+ return values.NewPlcTIME(value), nil
+ }
+ return nil, errors.New("unsupported type")
}
-
diff --git a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/TransportSize.go b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/TransportSize.go
index e37341f..ca624b5 100644
--- a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/TransportSize.go
+++ b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/TransportSize.go
@@ -19,677 +19,846 @@
package model
import (
- "plc4x.apache.org/plc4go-modbus-driver/v0/internal/plc4go/spi"
- "plc4x.apache.org/plc4go-modbus-driver/v0/internal/plc4go/utils"
+ "plc4x.apache.org/plc4go-modbus-driver/v0/internal/plc4go/spi"
+ "plc4x.apache.org/plc4go-modbus-driver/v0/internal/plc4go/utils"
)
type TransportSize int8
type ITransportSize interface {
- spi.Message
- Supported_S7_300() bool
- Supported_LOGO() bool
- SizeInBytes() uint8
- Supported_S7_400() bool
- Supported_S7_1200() bool
- SizeCode() uint8
- Supported_S7_1500() bool
- DataTransportSize() DataTransportSize
- BaseType() TransportSize
- DataProtocolId() uint8
- Serialize(io utils.WriteBuffer) error
+ spi.Message
+ Supported_S7_300() bool
+ Supported_LOGO() bool
+ SizeInBytes() uint8
+ Supported_S7_400() bool
+ Supported_S7_1200() bool
+ SizeCode() uint8
+ Supported_S7_1500() bool
+ DataTransportSize() DataTransportSize
+ BaseType() TransportSize
+ DataProtocolId() string
+ Serialize(io utils.WriteBuffer) error
}
-const(
- TransportSize_BOOL TransportSize = 0x01
- TransportSize_BYTE TransportSize = 0x02
- TransportSize_WORD TransportSize = 0x04
- TransportSize_DWORD TransportSize = 0x06
- TransportSize_LWORD TransportSize = 0x00
- TransportSize_INT TransportSize = 0x05
- TransportSize_UINT TransportSize = 0x05
- TransportSize_SINT TransportSize = 0x02
- TransportSize_USINT TransportSize = 0x02
- TransportSize_DINT TransportSize = 0x07
- TransportSize_UDINT TransportSize = 0x07
- TransportSize_LINT TransportSize = 0x00
- TransportSize_ULINT TransportSize = 0x00
- TransportSize_REAL TransportSize = 0x08
- TransportSize_LREAL TransportSize = 0x30
- TransportSize_CHAR TransportSize = 0x03
- TransportSize_WCHAR TransportSize = 0x13
- TransportSize_STRING TransportSize = 0x03
- TransportSize_WSTRING TransportSize = 0x00
- TransportSize_TIME TransportSize = 0x0B
- TransportSize_S5TIME TransportSize = 0x0C
- TransportSize_LTIME TransportSize = 0x00
- TransportSize_DATE TransportSize = 0x09
- TransportSize_TIME_OF_DAY TransportSize = 0x0A
- TransportSize_DATE_AND_TIME TransportSize = 0x0F
+const (
+ TransportSize_BOOL TransportSize = 0x01
+ TransportSize_BYTE TransportSize = 0x02
+ TransportSize_WORD TransportSize = 0x04
+ TransportSize_DWORD TransportSize = 0x06
+ TransportSize_LWORD TransportSize = 0x00
+ TransportSize_INT TransportSize = 0x05
+ TransportSize_UINT TransportSize = 0x05
+ TransportSize_SINT TransportSize = 0x02
+ TransportSize_USINT TransportSize = 0x02
+ TransportSize_DINT TransportSize = 0x07
+ TransportSize_UDINT TransportSize = 0x07
+ TransportSize_LINT TransportSize = 0x00
+ TransportSize_ULINT TransportSize = 0x00
+ TransportSize_REAL TransportSize = 0x08
+ TransportSize_LREAL TransportSize = 0x30
+ TransportSize_CHAR TransportSize = 0x03
+ TransportSize_WCHAR TransportSize = 0x13
+ TransportSize_STRING TransportSize = 0x03
+ TransportSize_WSTRING TransportSize = 0x00
+ TransportSize_TIME TransportSize = 0x0B
+ TransportSize_S5TIME TransportSize = 0x0C
+ TransportSize_LTIME TransportSize = 0x00
+ TransportSize_DATE TransportSize = 0x09
+ TransportSize_TIME_OF_DAY TransportSize = 0x0A
+ TransportSize_DATE_AND_TIME TransportSize = 0x0F
)
-
func (e TransportSize) Supported_S7_300() bool {
- switch e {
- case 0x00: { /* '0x00' */
- return false
- }
- case 0x01: { /* '0x01' */
- return true
- }
- case 0x02: { /* '0x02' */
- return true
- }
- case 0x03: { /* '0x03' */
- return true
- }
- case 0x04: { /* '0x04' */
- return true
- }
- case 0x05: { /* '0x05' */
- return true
- }
- case 0x06: { /* '0x06' */
- return true
- }
- case 0x07: { /* '0x07' */
- return true
- }
- case 0x08: { /* '0x08' */
- return true
- }
- case 0x09: { /* '0x09' */
- return true
- }
- case 0x0A: { /* '0x0A' */
- return true
- }
- case 0x0B: { /* '0x0B' */
- return true
- }
- case 0x0C: { /* '0x0C' */
- return true
- }
- case 0x0F: { /* '0x0F' */
- return true
- }
- case 0x13: { /* '0x13' */
- return false
- }
- case 0x30: { /* '0x30' */
- return false
- }
- default: {
- return false
- }
- }
+ switch e {
+ case 0x00:
+ { /* '0x00' */
+ return false
+ }
+ case 0x01:
+ { /* '0x01' */
+ return true
+ }
+ case 0x02:
+ { /* '0x02' */
+ return true
+ }
+ case 0x03:
+ { /* '0x03' */
+ return true
+ }
+ case 0x04:
+ { /* '0x04' */
+ return true
+ }
+ case 0x05:
+ { /* '0x05' */
+ return true
+ }
+ case 0x06:
+ { /* '0x06' */
+ return true
+ }
+ case 0x07:
+ { /* '0x07' */
+ return true
+ }
+ case 0x08:
+ { /* '0x08' */
+ return true
+ }
+ case 0x09:
+ { /* '0x09' */
+ return true
+ }
+ case 0x0A:
+ { /* '0x0A' */
+ return true
+ }
+ case 0x0B:
+ { /* '0x0B' */
+ return true
+ }
+ case 0x0C:
+ { /* '0x0C' */
+ return true
+ }
+ case 0x0F:
+ { /* '0x0F' */
+ return true
+ }
+ case 0x13:
+ { /* '0x13' */
+ return false
+ }
+ case 0x30:
+ { /* '0x30' */
+ return false
+ }
+ default:
+ {
+ return false
+ }
+ }
}
func (e TransportSize) Supported_LOGO() bool {
- switch e {
- case 0x00: { /* '0x00' */
- return false
- }
- case 0x01: { /* '0x01' */
- return true
- }
- case 0x02: { /* '0x02' */
- return true
- }
- case 0x03: { /* '0x03' */
- return true
- }
- case 0x04: { /* '0x04' */
- return true
- }
- case 0x05: { /* '0x05' */
- return true
- }
- case 0x06: { /* '0x06' */
- return true
- }
- case 0x07: { /* '0x07' */
- return true
- }
- case 0x08: { /* '0x08' */
- return true
- }
- case 0x09: { /* '0x09' */
- return true
- }
- case 0x0A: { /* '0x0A' */
- return true
- }
- case 0x0B: { /* '0x0B' */
- return true
- }
- case 0x0C: { /* '0x0C' */
- return true
- }
- case 0x0F: { /* '0x0F' */
- return false
- }
- case 0x13: { /* '0x13' */
- return true
- }
- case 0x30: { /* '0x30' */
- return false
- }
- default: {
- return false
- }
- }
+ switch e {
+ case 0x00:
+ { /* '0x00' */
+ return false
+ }
+ case 0x01:
+ { /* '0x01' */
+ return true
+ }
+ case 0x02:
+ { /* '0x02' */
+ return true
+ }
+ case 0x03:
+ { /* '0x03' */
+ return true
+ }
+ case 0x04:
+ { /* '0x04' */
+ return true
+ }
+ case 0x05:
+ { /* '0x05' */
+ return true
+ }
+ case 0x06:
+ { /* '0x06' */
+ return true
+ }
+ case 0x07:
+ { /* '0x07' */
+ return true
+ }
+ case 0x08:
+ { /* '0x08' */
+ return true
+ }
+ case 0x09:
+ { /* '0x09' */
+ return true
+ }
+ case 0x0A:
+ { /* '0x0A' */
+ return true
+ }
+ case 0x0B:
+ { /* '0x0B' */
+ return true
+ }
+ case 0x0C:
+ { /* '0x0C' */
+ return true
+ }
+ case 0x0F:
+ { /* '0x0F' */
+ return false
+ }
+ case 0x13:
+ { /* '0x13' */
+ return true
+ }
+ case 0x30:
+ { /* '0x30' */
+ return false
+ }
+ default:
+ {
+ return false
+ }
+ }
}
func (e TransportSize) SizeInBytes() uint8 {
- switch e {
- case 0x00: { /* '0x00' */
- return 8
- }
- case 0x01: { /* '0x01' */
- return 1
- }
- case 0x02: { /* '0x02' */
- return 1
- }
- case 0x03: { /* '0x03' */
- return 1
- }
- case 0x04: { /* '0x04' */
- return 2
- }
- case 0x05: { /* '0x05' */
- return 2
- }
- case 0x06: { /* '0x06' */
- return 4
- }
- case 0x07: { /* '0x07' */
- return 4
- }
- case 0x08: { /* '0x08' */
- return 4
- }
- case 0x09: { /* '0x09' */
- return 2
- }
- case 0x0A: { /* '0x0A' */
- return 4
- }
- case 0x0B: { /* '0x0B' */
- return 4
- }
- case 0x0C: { /* '0x0C' */
- return 4
- }
- case 0x0F: { /* '0x0F' */
- return 12
- }
- case 0x13: { /* '0x13' */
- return 2
- }
- case 0x30: { /* '0x30' */
- return 8
- }
- default: {
- return 0
- }
- }
+ switch e {
+ case 0x00:
+ { /* '0x00' */
+ return 8
+ }
+ case 0x01:
+ { /* '0x01' */
+ return 1
+ }
+ case 0x02:
+ { /* '0x02' */
+ return 1
+ }
+ case 0x03:
+ { /* '0x03' */
+ return 1
+ }
+ case 0x04:
+ { /* '0x04' */
+ return 2
+ }
+ case 0x05:
+ { /* '0x05' */
+ return 2
+ }
+ case 0x06:
+ { /* '0x06' */
+ return 4
+ }
+ case 0x07:
+ { /* '0x07' */
+ return 4
+ }
+ case 0x08:
+ { /* '0x08' */
+ return 4
+ }
+ case 0x09:
+ { /* '0x09' */
+ return 2
+ }
+ case 0x0A:
+ { /* '0x0A' */
+ return 4
+ }
+ case 0x0B:
+ { /* '0x0B' */
+ return 4
+ }
+ case 0x0C:
+ { /* '0x0C' */
+ return 4
+ }
+ case 0x0F:
+ { /* '0x0F' */
+ return 12
+ }
+ case 0x13:
+ { /* '0x13' */
+ return 2
+ }
+ case 0x30:
+ { /* '0x30' */
+ return 8
+ }
+ default:
+ {
+ return 0
+ }
+ }
}
func (e TransportSize) Supported_S7_400() bool {
- switch e {
- case 0x00: { /* '0x00' */
- return false
- }
- case 0x01: { /* '0x01' */
- return true
- }
- case 0x02: { /* '0x02' */
- return true
- }
- case 0x03: { /* '0x03' */
- return true
- }
- case 0x04: { /* '0x04' */
- return true
- }
- case 0x05: { /* '0x05' */
- return true
- }
- case 0x06: { /* '0x06' */
- return true
- }
- case 0x07: { /* '0x07' */
- return true
- }
- case 0x08: { /* '0x08' */
- return true
- }
- case 0x09: { /* '0x09' */
- return true
- }
- case 0x0A: { /* '0x0A' */
- return true
- }
- case 0x0B: { /* '0x0B' */
- return true
- }
- case 0x0C: { /* '0x0C' */
- return true
- }
- case 0x0F: { /* '0x0F' */
- return true
- }
- case 0x13: { /* '0x13' */
- return false
- }
- case 0x30: { /* '0x30' */
- return false
- }
- default: {
- return false
- }
- }
+ switch e {
+ case 0x00:
+ { /* '0x00' */
+ return false
+ }
+ case 0x01:
+ { /* '0x01' */
+ return true
+ }
+ case 0x02:
+ { /* '0x02' */
+ return true
+ }
+ case 0x03:
+ { /* '0x03' */
+ return true
+ }
+ case 0x04:
+ { /* '0x04' */
+ return true
+ }
+ case 0x05:
+ { /* '0x05' */
+ return true
+ }
+ case 0x06:
+ { /* '0x06' */
+ return true
+ }
+ case 0x07:
+ { /* '0x07' */
+ return true
+ }
+ case 0x08:
+ { /* '0x08' */
+ return true
+ }
+ case 0x09:
+ { /* '0x09' */
+ return true
+ }
+ case 0x0A:
+ { /* '0x0A' */
+ return true
+ }
+ case 0x0B:
+ { /* '0x0B' */
+ return true
+ }
+ case 0x0C:
+ { /* '0x0C' */
+ return true
+ }
+ case 0x0F:
+ { /* '0x0F' */
+ return true
+ }
+ case 0x13:
+ { /* '0x13' */
+ return false
+ }
+ case 0x30:
+ { /* '0x30' */
+ return false
+ }
+ default:
+ {
+ return false
+ }
+ }
}
func (e TransportSize) Supported_S7_1200() bool {
- switch e {
- case 0x00: { /* '0x00' */
- return false
- }
- case 0x01: { /* '0x01' */
- return true
- }
- case 0x02: { /* '0x02' */
- return true
- }
- case 0x03: { /* '0x03' */
- return true
- }
- case 0x04: { /* '0x04' */
- return true
- }
- case 0x05: { /* '0x05' */
- return true
- }
- case 0x06: { /* '0x06' */
- return true
- }
- case 0x07: { /* '0x07' */
- return true
- }
- case 0x08: { /* '0x08' */
- return true
- }
- case 0x09: { /* '0x09' */
- return true
- }
- case 0x0A: { /* '0x0A' */
- return true
- }
- case 0x0B: { /* '0x0B' */
- return true
- }
- case 0x0C: { /* '0x0C' */
- return true
- }
- case 0x0F: { /* '0x0F' */
- return false
- }
- case 0x13: { /* '0x13' */
- return true
- }
- case 0x30: { /* '0x30' */
- return true
- }
- default: {
- return false
- }
- }
+ switch e {
+ case 0x00:
+ { /* '0x00' */
+ return false
+ }
+ case 0x01:
+ { /* '0x01' */
+ return true
+ }
+ case 0x02:
+ { /* '0x02' */
+ return true
+ }
+ case 0x03:
+ { /* '0x03' */
+ return true
+ }
+ case 0x04:
+ { /* '0x04' */
+ return true
+ }
+ case 0x05:
+ { /* '0x05' */
+ return true
+ }
+ case 0x06:
+ { /* '0x06' */
+ return true
+ }
+ case 0x07:
+ { /* '0x07' */
+ return true
+ }
+ case 0x08:
+ { /* '0x08' */
+ return true
+ }
+ case 0x09:
+ { /* '0x09' */
+ return true
+ }
+ case 0x0A:
+ { /* '0x0A' */
+ return true
+ }
+ case 0x0B:
+ { /* '0x0B' */
+ return true
+ }
+ case 0x0C:
+ { /* '0x0C' */
+ return true
+ }
+ case 0x0F:
+ { /* '0x0F' */
+ return false
+ }
+ case 0x13:
+ { /* '0x13' */
+ return true
+ }
+ case 0x30:
+ { /* '0x30' */
+ return true
+ }
+ default:
+ {
+ return false
+ }
+ }
}
func (e TransportSize) SizeCode() uint8 {
- switch e {
- case 0x00: { /* '0x00' */
- return 'X'
- }
- case 0x01: { /* '0x01' */
- return 'X'
- }
- case 0x02: { /* '0x02' */
- return 'B'
- }
- case 0x03: { /* '0x03' */
- return 'B'
- }
- case 0x04: { /* '0x04' */
- return 'W'
- }
- case 0x05: { /* '0x05' */
- return 'W'
- }
- case 0x06: { /* '0x06' */
- return 'D'
- }
- case 0x07: { /* '0x07' */
- return 'D'
- }
- case 0x08: { /* '0x08' */
- return 'D'
- }
- case 0x09: { /* '0x09' */
- return 'X'
- }
- case 0x0A: { /* '0x0A' */
- return 'X'
- }
- case 0x0B: { /* '0x0B' */
- return 'X'
- }
- case 0x0C: { /* '0x0C' */
- return 'X'
- }
- case 0x0F: { /* '0x0F' */
- return 'X'
- }
- case 0x13: { /* '0x13' */
- return 'X'
- }
- case 0x30: { /* '0x30' */
- return 'X'
- }
- default: {
- return 0
- }
- }
+ switch e {
+ case 0x00:
+ { /* '0x00' */
+ return 'X'
+ }
+ case 0x01:
+ { /* '0x01' */
+ return 'X'
+ }
+ case 0x02:
+ { /* '0x02' */
+ return 'B'
+ }
+ case 0x03:
+ { /* '0x03' */
+ return 'B'
+ }
+ case 0x04:
+ { /* '0x04' */
+ return 'W'
+ }
+ case 0x05:
+ { /* '0x05' */
+ return 'W'
+ }
+ case 0x06:
+ { /* '0x06' */
+ return 'D'
+ }
+ case 0x07:
+ { /* '0x07' */
+ return 'D'
+ }
+ case 0x08:
+ { /* '0x08' */
+ return 'D'
+ }
+ case 0x09:
+ { /* '0x09' */
+ return 'X'
+ }
+ case 0x0A:
+ { /* '0x0A' */
+ return 'X'
+ }
+ case 0x0B:
+ { /* '0x0B' */
+ return 'X'
+ }
+ case 0x0C:
+ { /* '0x0C' */
+ return 'X'
+ }
+ case 0x0F:
+ { /* '0x0F' */
+ return 'X'
+ }
+ case 0x13:
+ { /* '0x13' */
+ return 'X'
+ }
+ case 0x30:
+ { /* '0x30' */
+ return 'X'
+ }
+ default:
+ {
+ return 0
+ }
+ }
}
func (e TransportSize) Supported_S7_1500() bool {
- switch e {
- case 0x00: { /* '0x00' */
- return true
- }
- case 0x01: { /* '0x01' */
- return true
- }
- case 0x02: { /* '0x02' */
- return true
- }
- case 0x03: { /* '0x03' */
- return true
- }
- case 0x04: { /* '0x04' */
- return true
- }
- case 0x05: { /* '0x05' */
- return true
- }
- case 0x06: { /* '0x06' */
- return true
- }
- case 0x07: { /* '0x07' */
- return true
- }
- case 0x08: { /* '0x08' */
- return true
- }
- case 0x09: { /* '0x09' */
- return true
- }
- case 0x0A: { /* '0x0A' */
- return true
- }
- case 0x0B: { /* '0x0B' */
- return true
- }
- case 0x0C: { /* '0x0C' */
- return true
- }
- case 0x0F: { /* '0x0F' */
- return true
- }
- case 0x13: { /* '0x13' */
- return true
- }
- case 0x30: { /* '0x30' */
- return true
- }
- default: {
- return false
- }
- }
+ switch e {
+ case 0x00:
+ { /* '0x00' */
+ return true
+ }
+ case 0x01:
+ { /* '0x01' */
+ return true
+ }
+ case 0x02:
+ { /* '0x02' */
+ return true
+ }
+ case 0x03:
+ { /* '0x03' */
+ return true
+ }
+ case 0x04:
+ { /* '0x04' */
+ return true
+ }
+ case 0x05:
+ { /* '0x05' */
+ return true
+ }
+ case 0x06:
+ { /* '0x06' */
+ return true
+ }
+ case 0x07:
+ { /* '0x07' */
+ return true
+ }
+ case 0x08:
+ { /* '0x08' */
+ return true
+ }
+ case 0x09:
+ { /* '0x09' */
+ return true
+ }
+ case 0x0A:
+ { /* '0x0A' */
+ return true
+ }
+ case 0x0B:
+ { /* '0x0B' */
+ return true
+ }
+ case 0x0C:
+ { /* '0x0C' */
+ return true
+ }
+ case 0x0F:
+ { /* '0x0F' */
+ return true
+ }
+ case 0x13:
+ { /* '0x13' */
+ return true
+ }
+ case 0x30:
+ { /* '0x30' */
+ return true
+ }
+ default:
+ {
+ return false
+ }
+ }
}
func (e TransportSize) DataTransportSize() DataTransportSize {
- switch e {
- case 0x00: { /* '0x00' */
- return 0
- }
- case 0x01: { /* '0x01' */
- return DataTransportSize_BIT
- }
- case 0x02: { /* '0x02' */
- return DataTransportSize_BYTE_WORD_DWORD
- }
- case 0x03: { /* '0x03' */
- return DataTransportSize_BYTE_WORD_DWORD
- }
- case 0x04: { /* '0x04' */
- return DataTransportSize_BYTE_WORD_DWORD
- }
- case 0x05: { /* '0x05' */
- return DataTransportSize_INTEGER
- }
- case 0x06: { /* '0x06' */
- return DataTransportSize_BYTE_WORD_DWORD
- }
- case 0x07: { /* '0x07' */
- return DataTransportSize_INTEGER
- }
- case 0x08: { /* '0x08' */
- return DataTransportSize_BYTE_WORD_DWORD
- }
- case 0x09: { /* '0x09' */
- return DataTransportSize_BYTE_WORD_DWORD
- }
- case 0x0A: { /* '0x0A' */
- return DataTransportSize_BYTE_WORD_DWORD
- }
- case 0x0B: { /* '0x0B' */
- return 0
- }
- case 0x0C: { /* '0x0C' */
- return 0
- }
- case 0x0F: { /* '0x0F' */
- return 0
- }
- case 0x13: { /* '0x13' */
- return 0
- }
- case 0x30: { /* '0x30' */
- return 0
- }
- default: {
- return 0
- }
- }
+ switch e {
+ case 0x00:
+ { /* '0x00' */
+ return 0
+ }
+ case 0x01:
+ { /* '0x01' */
+ return DataTransportSize_BIT
+ }
+ case 0x02:
+ { /* '0x02' */
+ return DataTransportSize_BYTE_WORD_DWORD
+ }
+ case 0x03:
+ { /* '0x03' */
+ return DataTransportSize_BYTE_WORD_DWORD
+ }
+ case 0x04:
+ { /* '0x04' */
+ return DataTransportSize_BYTE_WORD_DWORD
+ }
+ case 0x05:
+ { /* '0x05' */
+ return DataTransportSize_INTEGER
+ }
+ case 0x06:
+ { /* '0x06' */
+ return DataTransportSize_BYTE_WORD_DWORD
+ }
+ case 0x07:
+ { /* '0x07' */
+ return DataTransportSize_INTEGER
+ }
+ case 0x08:
+ { /* '0x08' */
+ return DataTransportSize_BYTE_WORD_DWORD
+ }
+ case 0x09:
+ { /* '0x09' */
+ return DataTransportSize_BYTE_WORD_DWORD
+ }
+ case 0x0A:
+ { /* '0x0A' */
+ return DataTransportSize_BYTE_WORD_DWORD
+ }
+ case 0x0B:
+ { /* '0x0B' */
+ return 0
+ }
+ case 0x0C:
+ { /* '0x0C' */
+ return 0
+ }
+ case 0x0F:
+ { /* '0x0F' */
+ return 0
+ }
+ case 0x13:
+ { /* '0x13' */
+ return 0
+ }
+ case 0x30:
+ { /* '0x30' */
+ return 0
+ }
+ default:
+ {
+ return 0
+ }
+ }
}
func (e TransportSize) BaseType() TransportSize {
- switch e {
- case 0x00: { /* '0x00' */
- return 0
- }
- case 0x01: { /* '0x01' */
- return 0
- }
- case 0x02: { /* '0x02' */
- return 0
- }
- case 0x03: { /* '0x03' */
- return 0
- }
- case 0x04: { /* '0x04' */
- return 0
- }
- case 0x05: { /* '0x05' */
- return 0
- }
- case 0x06: { /* '0x06' */
- return TransportSize_WORD
- }
- case 0x07: { /* '0x07' */
- return TransportSize_INT
- }
- case 0x08: { /* '0x08' */
- return 0
- }
- case 0x09: { /* '0x09' */
- return 0
- }
- case 0x0A: { /* '0x0A' */
- return 0
- }
- case 0x0B: { /* '0x0B' */
- return 0
- }
- case 0x0C: { /* '0x0C' */
- return 0
- }
- case 0x0F: { /* '0x0F' */
- return 0
- }
- case 0x13: { /* '0x13' */
- return 0
- }
- case 0x30: { /* '0x30' */
- return TransportSize_REAL
- }
- default: {
- return 0
- }
- }
+ switch e {
+ case 0x00:
+ { /* '0x00' */
+ return 0
+ }
+ case 0x01:
+ { /* '0x01' */
+ return 0
+ }
+ case 0x02:
+ { /* '0x02' */
+ return 0
+ }
+ case 0x03:
+ { /* '0x03' */
+ return 0
+ }
+ case 0x04:
+ { /* '0x04' */
+ return 0
+ }
+ case 0x05:
+ { /* '0x05' */
+ return 0
+ }
+ case 0x06:
+ { /* '0x06' */
+ return TransportSize_WORD
+ }
+ case 0x07:
+ { /* '0x07' */
+ return TransportSize_INT
+ }
+ case 0x08:
+ { /* '0x08' */
+ return 0
+ }
+ case 0x09:
+ { /* '0x09' */
+ return 0
+ }
+ case 0x0A:
+ { /* '0x0A' */
+ return 0
+ }
+ case 0x0B:
+ { /* '0x0B' */
+ return 0
+ }
+ case 0x0C:
+ { /* '0x0C' */
+ return 0
+ }
+ case 0x0F:
+ { /* '0x0F' */
+ return 0
+ }
+ case 0x13:
+ { /* '0x13' */
+ return 0
+ }
+ case 0x30:
+ { /* '0x30' */
+ return TransportSize_REAL
+ }
+ default:
+ {
+ return 0
+ }
+ }
}
-func (e TransportSize) DataProtocolId() uint8 {
- switch e {
- case 0x00: { /* '0x00' */
- return 14
- }
- case 0x01: { /* '0x01' */
- return 01
- }
- case 0x02: { /* '0x02' */
- return 11
- }
- case 0x03: { /* '0x03' */
- return 41
- }
- case 0x04: { /* '0x04' */
- return 12
- }
- case 0x05: { /* '0x05' */
- return 23
- }
- case 0x06: { /* '0x06' */
- return 13
- }
- case 0x07: { /* '0x07' */
- return 25
- }
- case 0x08: { /* '0x08' */
- return 31
- }
- case 0x09: { /* '0x09' */
- return 54
- }
- case 0x0A: { /* '0x0A' */
- return 55
- }
- case 0x0B: { /* '0x0B' */
- return 51
- }
- case 0x0C: { /* '0x0C' */
- return 52
- }
- case 0x0F: { /* '0x0F' */
- return 56
- }
- case 0x13: { /* '0x13' */
- return 42
- }
- case 0x30: { /* '0x30' */
- return 32
- }
- default: {
- return 0
- }
- }
+func (e TransportSize) DataProtocolId() string {
+ switch e {
+ case 0x00:
+ { /* '0x00' */
+ return "IEC61131_LWORD"
+ }
+ case 0x01:
+ { /* '0x01' */
+ return "IEC61131_BOOL"
+ }
+ case 0x02:
+ { /* '0x02' */
+ return "IEC61131_BYTE"
+ }
+ case 0x03:
+ { /* '0x03' */
+ return "IEC61131_CHAR"
+ }
+ case 0x04:
+ { /* '0x04' */
+ return "IEC61131_WORD"
+ }
+ case 0x05:
+ { /* '0x05' */
+ return "IEC61131_INT"
+ }
+ case 0x06:
+ { /* '0x06' */
+ return "IEC61131_DWORD"
+ }
+ case 0x07:
+ { /* '0x07' */
+ return "IEC61131_DINT"
+ }
+ case 0x08:
+ { /* '0x08' */
+ return "IEC61131_REAL"
+ }
+ case 0x09:
+ { /* '0x09' */
+ return "IEC61131_DATE"
+ }
+ case 0x0A:
+ { /* '0x0A' */
+ return "IEC61131_TIME_OF_DAY"
+ }
+ case 0x0B:
+ { /* '0x0B' */
+ return "IEC61131_TIME"
+ }
+ case 0x0C:
+ { /* '0x0C' */
+ return "S7_S5TIME"
+ }
+ case 0x0F:
+ { /* '0x0F' */
+ return "IEC61131_DATE_AND_TIME"
+ }
+ case 0x13:
+ { /* '0x13' */
+ return "IEC61131_WCHAR"
+ }
+ case 0x30:
+ { /* '0x30' */
+ return "IEC61131_LREAL"
+ }
+ default:
+ {
+ return ""
+ }
+ }
}
func TransportSizeValueOf(value int8) TransportSize {
- switch value {
- case 0x00:
- return TransportSize_LWORD
- case 0x01:
- return TransportSize_BOOL
- case 0x02:
- return TransportSize_BYTE
- case 0x03:
- return TransportSize_CHAR
- case 0x04:
- return TransportSize_WORD
- case 0x05:
- return TransportSize_INT
- case 0x06:
- return TransportSize_DWORD
- case 0x07:
- return TransportSize_DINT
- case 0x08:
- return TransportSize_REAL
- case 0x09:
- return TransportSize_DATE
- case 0x0A:
- return TransportSize_TIME_OF_DAY
- case 0x0B:
- return TransportSize_TIME
- case 0x0C:
- return TransportSize_S5TIME
- case 0x0F:
- return TransportSize_DATE_AND_TIME
- case 0x13:
- return TransportSize_WCHAR
- case 0x30:
- return TransportSize_LREAL
- }
- return 0
+ switch value {
+ case 0x00:
+ return TransportSize_LWORD
+ case 0x01:
+ return TransportSize_BOOL
+ case 0x02:
+ return TransportSize_BYTE
+ case 0x03:
+ return TransportSize_CHAR
+ case 0x04:
+ return TransportSize_WORD
+ case 0x05:
+ return TransportSize_INT
+ case 0x06:
+ return TransportSize_DWORD
+ case 0x07:
+ return TransportSize_DINT
+ case 0x08:
+ return TransportSize_REAL
+ case 0x09:
+ return TransportSize_DATE
+ case 0x0A:
+ return TransportSize_TIME_OF_DAY
+ case 0x0B:
+ return TransportSize_TIME
+ case 0x0C:
+ return TransportSize_S5TIME
+ case 0x0F:
+ return TransportSize_DATE_AND_TIME
+ case 0x13:
+ return TransportSize_WCHAR
+ case 0x30:
+ return TransportSize_LREAL
+ }
+ return 0
}
func CastTransportSize(structType interface{}) TransportSize {
- castFunc := func(typ interface{}) TransportSize {
- if sTransportSize, ok := typ.(TransportSize); ok {
- return sTransportSize
- }
- return 0
- }
- return castFunc(structType)
+ castFunc := func(typ interface{}) TransportSize {
+ if sTransportSize, ok := typ.(TransportSize); ok {
+ return sTransportSize
+ }
+ return 0
+ }
+ return castFunc(structType)
}
func (m TransportSize) LengthInBits() uint16 {
- return 8
+ return 8
}
func (m TransportSize) LengthInBytes() uint16 {
- return m.LengthInBits() / 8
+ return m.LengthInBits() / 8
}
func TransportSizeParse(io *utils.ReadBuffer) (TransportSize, error) {
- // TODO: Implement ...
- return 0, nil
+ // TODO: Implement ...
+ return 0, nil
}
func (e TransportSize) Serialize(io utils.WriteBuffer) error {
- // TODO: Implement ...
- return nil
+ // TODO: Implement ...
+ return nil
}