You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@plc4x.apache.org by hu...@apache.org on 2021/03/31 08:15:19 UTC
[plc4x] 01/01: Merge pull request #230 from
apache/feature/string_enum_mspec
This is an automated email from the ASF dual-hosted git repository.
hutcheb pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/plc4x.git
commit 003c50ba4f7eb31c1402e2c55b86c8895bb6f713
Merge: a507848 1c311a0
Author: hutcheb <be...@gmail.com>
AuthorDate: Wed Mar 31 04:15:11 2021 -0400
Merge pull request #230 from apache/feature/string_enum_mspec
Feature/string enum mspec
.gitignore | 11 +
build-utils/language-base-freemarker/pom.xml | 6 +
.../BaseFreemarkerLanguageTemplateHelper.java | 64 +++-
build-utils/language-c/pom.xml | 35 +-
.../plc4x/language/c/CLanguageTemplateHelper.java | 134 ++++----
.../resources/templates/c/data-io-template-c.ftlh | 12 +-
.../resources/templates/c/enum-template-c.ftlh | 2 +-
.../resources/templates/c/enum-template-h.ftlh | 2 +-
.../resources/templates/c/pojo-template-c.ftlh | 108 ++++--
.../resources/templates/c/pojo-template-h.ftlh | 11 +
.../resources/integration-test}/CMakeLists.txt | 8 +-
.../generated-sources}/CMakeLists.txt | 23 +-
.../generated-sources/test}/CMakeLists.txt | 29 +-
.../src/test/resources/integration-test/pom.xml | 378 +++++++++++++++++++++
.../language-c/src/test/resources/settings.xml | 51 +++
build-utils/language-go/pom.xml | 94 ++++-
.../language/go/GoLanguageTemplateHelper.java | 45 ++-
.../resources/templates/go/data-io-template.ftlh | 10 +-
.../main/resources/templates/go/enum-template.ftlh | 12 +-
.../resources/templates/go/model-template.ftlh | 103 ++++--
.../language-go/src/test/resources/plc4go/go.mod | 11 +-
.../language-go/src/test/resources/plc4go/pom.xml | 291 ++++++++++++++++
.../language-go/src/test/resources/settings.xml | 51 +++
build-utils/language-java/pom.xml | 41 ++-
.../language/java/JavaLanguageTemplateHelper.java | 35 +-
.../resources/templates/java/data-io-template.ftlh | 33 +-
.../resources/templates/java/enum-template.ftlh | 2 +-
.../main/resources/templates/java/io-template.ftlh | 75 ++--
.../resources/templates/java/pojo-template.ftlh | 40 ++-
.../src/test/resources/integration-test/pom.xml | 205 +++++++++++
.../language-java/src/test/resources/settings.xml | 51 +++
build-utils/pom.xml | 23 +-
.../plugins/codegenerator/language/mspec/MSpec.g4 | 14 +-
.../definitions/DefaultDataIoTypeDefinition.java | 7 +
.../mspec/parser/MessageFormatListener.java | 12 +-
.../mspec/parser/MessageFormatParserTest.java | 3 +
.../src/test/resources/mspec.example | 47 +--
build-utils/protocol-test/pom.xml | 176 ++++++++--
.../src/main/resources/protocols/test/test.mspec | 340 ++++++++++++++++--
.../protocol-test/src/site/asciidoc/index.adoc | 4 +
go.mod | 5 +
go.sum | 79 +++++
.../internal/plc4go/ads/readwrite/model/AdsData.go | 40 +--
.../ads/readwrite/model/AdsMultiRequestItem.go | 6 +-
.../plc4go/ads/readwrite/model/AdsReadResponse.go | 1 +
.../ads/readwrite/model/AdsReadWriteRequest.go | 1 +
.../ads/readwrite/model/AdsReadWriteResponse.go | 1 +
.../ads/readwrite/model/AdsWriteControlRequest.go | 1 +
.../plc4go/ads/readwrite/model/AdsWriteRequest.go | 1 +
.../plc4go/ads/readwrite/model/AmsPacket.go | 3 +-
.../plc4go/ads/readwrite/model/AmsTCPPacket.go | 3 +-
.../plc4go/bacnetip/readwrite/model/APDU.go | 18 +-
.../readwrite/model/BACnetConfirmedServiceACK.go | 30 +-
.../model/BACnetConfirmedServiceRequest.go | 64 ++--
...firmedServiceRequestConfirmedCOVNotification.go | 14 +-
.../BACnetConfirmedServiceRequestReadProperty.go | 6 +-
.../BACnetConfirmedServiceRequestSubscribeCOV.go | 12 +-
.../BACnetConfirmedServiceRequestWriteProperty.go | 10 +-
.../plc4go/bacnetip/readwrite/model/BACnetError.go | 30 +-
.../readwrite/model/BACnetErrorReadProperty.go | 6 +-
.../bacnetip/readwrite/model/BACnetServiceAck.go | 30 +-
.../model/BACnetServiceAckReadProperty.go | 10 +-
.../plc4go/bacnetip/readwrite/model/BACnetTag.go | 30 +-
.../readwrite/model/BACnetTagWithContent.go | 6 +-
.../model/BACnetUnconfirmedServiceRequest.go | 26 +-
.../model/BACnetUnconfirmedServiceRequestIAm.go | 10 +-
...rmedServiceRequestUnconfirmedPrivateTransfer.go | 10 +-
.../model/BACnetUnconfirmedServiceRequestWhoHas.go | 9 +-
.../model/BACnetUnconfirmedServiceRequestWhoIs.go | 6 +-
.../plc4go/bacnetip/readwrite/model/BVLC.go | 33 +-
.../plc4go/bacnetip/readwrite/model/NLM.go | 6 +-
.../plc4go/knxnetip/readwrite/model/Apdu.go | 6 +-
.../plc4go/knxnetip/readwrite/model/ApduControl.go | 10 +-
.../plc4go/knxnetip/readwrite/model/ApduData.go | 34 +-
.../plc4go/knxnetip/readwrite/model/ApduDataExt.go | 84 ++---
.../ApduDataExtPropertyDescriptionResponse.go | 2 +-
.../readwrite/model/ApduDataMemoryResponse.go | 1 +
.../plc4go/knxnetip/readwrite/model/CEMI.go | 48 +--
.../readwrite/model/CEMIAdditionalInformation.go | 6 +-
.../CEMIAdditionalInformationBusmonitorInfo.go | 4 +-
.../CEMIAdditionalInformationRelativeTimestamp.go | 4 +-
.../knxnetip/readwrite/model/ComObjectTable.go | 6 +-
.../model/ConnectionRequestInformation.go | 9 +-
.../readwrite/model/ConnectionResponseDataBlock.go | 9 +-
.../knxnetip/readwrite/model/DIBDeviceInfo.go | 3 +-
.../knxnetip/readwrite/model/DIBSuppSvcFamilies.go | 1 +
.../model/DeviceConfigurationAckDataBlock.go | 3 +-
.../model/DeviceConfigurationRequestDataBlock.go | 3 +-
.../readwrite/model/HPAIControlEndpoint.go | 3 +-
.../knxnetip/readwrite/model/HPAIDataEndpoint.go | 3 +-
.../readwrite/model/HPAIDiscoveryEndpoint.go | 3 +-
.../knxnetip/readwrite/model/KnxDatapoint.go | 20 +-
.../knxnetip/readwrite/model/KnxGroupAddress.go | 6 +-
.../knxnetip/readwrite/model/KnxNetIpMessage.go | 42 +--
.../readwrite/model/KnxPropertyDataType.go | 6 +-
.../knxnetip/readwrite/model/LDataExtended.go | 1 +
.../plc4go/knxnetip/readwrite/model/LDataFrame.go | 10 +-
.../plc4go/knxnetip/readwrite/model/ServiceId.go | 16 +-
.../readwrite/model/TunnelingRequestDataBlock.go | 3 +-
.../readwrite/model/TunnelingResponseDataBlock.go | 3 +-
.../modbus/readwrite/model/ModbusConstants.go | 4 +-
.../plc4go/modbus/readwrite/model/ModbusPDU.go | 82 ++---
.../model/ModbusPDUGetComEventLogResponse.go | 1 +
.../readwrite/model/ModbusPDUReadCoilsResponse.go | 1 +
.../model/ModbusPDUReadDiscreteInputsResponse.go | 1 +
.../model/ModbusPDUReadFifoQueueResponse.go | 4 +-
.../model/ModbusPDUReadFileRecordRequest.go | 1 +
.../model/ModbusPDUReadFileRecordResponse.go | 1 +
.../model/ModbusPDUReadFileRecordResponseItem.go | 1 +
.../model/ModbusPDUReadHoldingRegistersResponse.go | 1 +
.../model/ModbusPDUReadInputRegistersResponse.go | 1 +
...sPDUReadWriteMultipleHoldingRegistersRequest.go | 1 +
...PDUReadWriteMultipleHoldingRegistersResponse.go | 1 +
.../model/ModbusPDUReportServerIdResponse.go | 1 +
.../model/ModbusPDUWriteFileRecordRequest.go | 1 +
.../model/ModbusPDUWriteFileRecordRequestItem.go | 1 +
.../model/ModbusPDUWriteFileRecordResponse.go | 1 +
.../model/ModbusPDUWriteFileRecordResponseItem.go | 1 +
.../model/ModbusPDUWriteMultipleCoilsRequest.go | 1 +
...odbusPDUWriteMultipleHoldingRegistersRequest.go | 1 +
.../plc4go/modbus/readwrite/model/ModbusTcpADU.go | 7 +-
.../plc4go/s7/readwrite/model/COTPPacket.go | 15 +-
.../plc4go/s7/readwrite/model/COTPParameter.go | 15 +-
.../plc4go/s7/readwrite/model/S7Address.go | 4 +-
.../plc4go/s7/readwrite/model/S7Message.go | 16 +-
.../plc4go/s7/readwrite/model/S7Parameter.go | 14 +-
.../readwrite/model/S7ParameterReadVarRequest.go | 1 +
.../s7/readwrite/model/S7ParameterUserData.go | 1 +
.../s7/readwrite/model/S7ParameterUserDataItem.go | 4 +-
.../model/S7ParameterUserDataItemCPUFunctions.go | 3 +-
.../readwrite/model/S7ParameterWriteVarRequest.go | 1 +
.../plc4go/s7/readwrite/model/S7Payload.go | 8 +-
.../s7/readwrite/model/S7PayloadUserDataItem.go | 7 +-
...ayloadUserDataItemCpuFunctionReadSzlResponse.go | 5 +-
.../s7/readwrite/model/S7VarPayloadDataItem.go | 1 +
.../readwrite/model/S7VarRequestParameterItem.go | 4 +-
.../model/S7VarRequestParameterItemAddress.go | 3 +-
.../plc4go/s7/readwrite/model/TPKTPacket.go | 5 +-
plc4go/internal/plc4go/spi/utils/ReadBuffer.go | 2 +-
pom.xml | 13 +-
.../resources/protocols/ads/ads-discovery.mspec | 8 +-
.../ads/src/main/resources/protocols/ads/ads.mspec | 53 +--
.../src/main/resources/protocols/can/canopen.mspec | 111 +++---
.../resources/protocols/knxnetip/knxnetip.mspec | 168 ++++-----
protocols/knxnetip/src/main/xslt/knx-types.xsl | 134 ++++----
.../main/resources/protocols/modbus/modbus.mspec | 68 ++--
.../src/main/resources/protocols/opcua/opcua.mspec | 4 +-
.../s7/src/main/resources/protocols/s7/s7.mspec | 66 ++--
.../resources/protocols/simulated/simulated.mspec | 8 +-
sandbox/plc4c/CMakeLists.txt | 2 +-
.../examples/hello-world-modbus/CMakeLists.txt | 1 +
.../generated-sources/modbus/include/modbus_pdu.h | 2 +-
.../plc4c/generated-sources/modbus/src/data_item.c | 72 ++--
.../generated-sources/modbus/src/modbus_pdu.c | 13 +-
.../generated-sources/s7/include/cotp_packet.h | 2 +-
.../generated-sources/s7/include/s7_address.h | 2 +-
.../s7/include/s7_parameter_user_data_item.h | 4 +-
.../s7/include/s7_payload_user_data_item.h | 4 +-
.../plc4c/generated-sources/s7/include/szl_id.h | 2 +-
.../plc4c/generated-sources/s7/src/cotp_packet.c | 8 +-
.../generated-sources/s7/src/cotp_parameter.c | 6 +-
sandbox/plc4c/generated-sources/s7/src/data_item.c | 52 +--
.../plc4c/generated-sources/s7/src/s7_address.c | 10 +-
.../plc4c/generated-sources/s7/src/s7_message.c | 6 +-
.../plc4c/generated-sources/s7/src/s7_parameter.c | 6 +-
.../s7/src/s7_parameter_user_data_item.c | 10 +-
.../plc4c/generated-sources/s7/src/s7_payload.c | 1 +
.../s7/src/s7_payload_user_data_item.c | 3 +-
.../s7/src/s7_var_request_parameter_item.c | 6 +-
sandbox/plc4c/generated-sources/s7/src/szl_id.c | 2 +-
.../transports/tcp/include/plc4c/transport_tcp.h | 6 +
171 files changed, 3305 insertions(+), 1226 deletions(-)
diff --cc build-utils/language-java/src/main/resources/templates/java/data-io-template.ftlh
index 3fe784c,9cd0307..bde0f7e
--- a/build-utils/language-java/src/main/resources/templates/java/data-io-template.ftlh
+++ b/build-utils/language-java/src/main/resources/templates/java/data-io-template.ftlh
@@@ -196,17 -197,12 +197,17 @@@ public class ${type.name}IO
<#if helper.isEnumField(field)>
// Enum field (${field.name})
- ${helper.getNonPrimitiveLanguageTypeNameForField(field)} ${field.name} = ${helper.getNonPrimitiveLanguageTypeNameForField(field)}.enumForValue(${helper.getReadBufferReadMethodCall(helper.getEnumBaseTypeReference(field.type))});
+ ${helper.getNonPrimitiveLanguageTypeNameForField(field)} ${field.name} = ${helper.getNonPrimitiveLanguageTypeNameForField(field)}.enumForValue(${helper.getReadBufferReadMethodCall(helper.getEnumBaseTypeReference(field.type), "", field)});
<#else>
// Simple Field (${field.name})
- ${helper.getNonPrimitiveLanguageTypeNameForField(field)} ${field.name} = <#if helper.isSimpleTypeReference(field.type)>${helper.getReadBufferReadMethodCall(field.type)}<#else>${field.type.name}IO.staticParse(io<#if field.params?has_content>, <#list field.params as parserArgument>(${helper.getLanguageTypeNameForTypeReference(helper.getArgumentType(field.type, parserArgument?index), true)}) (${helper.toParseExpression(field, parserArgument, type.parserArguments)})<#sep>, </#se [...]
+ ${helper.getNonPrimitiveLanguageTypeNameForField(field)} ${field.name} = <#if helper.isSimpleTypeReference(field.type)>${helper.getReadBufferReadMethodCall(field.type, "", field)}<#else>${field.type.name}IO.staticParse(io<#if field.params?has_content>, <#list field.params as parserArgument>(${helper.getLanguageTypeNameForTypeReference(helper.getArgumentType(field.type, parserArgument?index), true)}) (${helper.toParseExpression(field, parserArgument, type.parserArguments)})<# [...]
</#if>
- <#if case.name == "Struct" || ((case.name == "DATE_AND_TIME") && ((field.name == "year") || (field.name == "month") || (field.name == "day") || (field.name == "hour") || (field.name == "minutes") || (field.name == "seconds"))) || ((case.name == "DATE") && ((field.name == "year") || (field.name == "month") || (field.name == "day"))) || ((case.name == "TIME_OF_DAY") && ((field.name == "hour") || (field.name == "minutes") || (field.name == "seconds"))) || field.name [...]
+ <#if case.name == "Struct" ||
+ ((case.name == "DATE_AND_TIME") && ((field.name == "year") || (field.name == "month") || (field.name == "day") || (field.name == "hour") || (field.name == "minutes") || (field.name == "seconds"))) ||
+ ((case.name == "DATE_AND_TIME") && (field.name == "secondsSinceEpoch")) ||
+ ((case.name == "DATE") && ((field.name == "year") || (field.name == "month") || (field.name == "day"))) ||
+ ((case.name == "TIME_OF_DAY") && ((field.name == "hour") || (field.name == "minutes") || (field.name == "seconds"))) ||
+ field.name == "value">
<#assign valueDefined=true>
</#if>
<#break>