This is an automated email from the ASF dual-hosted git repository. cdutz pushed a commit to branch feat/code-gen-1.9 in repository https://gitbox.apache.org/repos/asf/plc4x.git
The following commit(s) were added to refs/heads/feat/code-gen-1.9 by this push: new 04c02127da feat: Updated the mspec parser to allow using mspec keywords as id expressions (names of fields) 04c02127da is described below commit 04c02127daa4cb8218a8a39b46fe8af543b3dd88 Author: Christofer Dutz <christofer.d...@c-ware.de> AuthorDate: Thu Aug 28 13:53:19 2025 +0200 feat: Updated the mspec parser to allow using mspec keywords as id expressions (names of fields) feat: Added support for "constants" types. --- .../freemarker/FreemarkerLanguageOutput.java | 46 +++++- .../plc4x/language/java/JavaLanguageOutput.java | 5 + .../templates/java/constants-template.java.ftlh | 84 +++++++++++ .../plugins/codegenerator/language/mspec/MSpec.g4 | 166 +++++++++++++++------ .../DefaultConstantsTypeDefinition.java | 63 ++++++++ .../mspec/model/fields/DefaultStateField.java | 60 ++++++++ .../mspec/parser/MessageFormatListener.java | 160 ++++++++++++++------ .../discovery/readwrite/AdsDiscoveryConstants.java | 127 ---------------- .../java/ads/discovery/readwrite/Constants.java | 42 ++++++ .../plc4x/java/ads/readwrite/AdsConstants.java | 122 --------------- .../apache/plc4x/java/ads/readwrite/Constants.java | 42 ++++++ .../AdsTcpTransportConfiguration.java | 4 +- .../plc4x/java/ads/discovery/AdsPlcDiscoverer.java | 7 +- .../plc4x/java/ads/protocol/AdsProtocolLogic.java | 5 +- .../protocol/ads/ProbeAdsDiscoveryCommands.java | 4 +- .../java/bacnetip/readwrite/BACnetVendorId.java | 8 + .../java/bacnetip/readwrite/BacnetConstants.java | 125 ---------------- .../plc4x/java/bacnetip/readwrite/Constants.java | 42 ++++++ .../BacNetPcapReplayTransportConfiguration.java | 4 +- .../BacNetRawSocketTransportConfiguration.java | 4 +- .../BacNetUdpTransportConfiguration.java | 4 +- .../plc4x/java/cbus/readwrite/CBusConstants.java | 124 --------------- .../plc4x/java/cbus/readwrite/Constants.java | 42 ++++++ .../CBusTcpTransportConfiguration.java | 4 +- .../apache/plc4x/java/eip/readwrite/Constants.java | 43 ++++++ .../plc4x/java/eip/readwrite/EipConstants.java | 142 ------------------ .../java/eip/base/discovery/EipPlcDiscoverer.java | 6 +- .../java/iec608705104/readwrite/Constants.java | 42 ++++++ .../readwrite/IEC608705104Constants.java | 122 --------------- .../Iec608705014TcpTransportConfiguration.java | 4 +- .../java/knxnetip/readwrite/KnxManufacturer.java | 10 +- .../plc4x/java/modbus/readwrite/Constants.java | 42 ++++++ .../java/modbus/readwrite/ModbusConstants.java | 125 ---------------- .../config/ModbusTcpTransportConfiguration.java | 4 +- .../modbus/tcp/discovery/ModbusPlcDiscoverer.java | 2 +- .../java/openprotocol/readwrite/Constants.java | 81 +--------- .../plc4x/java/plc4x/readwrite/Constants.java | 42 ++++++ .../plc4x/java/plc4x/readwrite/Plc4xConstants.java | 124 --------------- .../config/Plc4xTcpTransportConfiguration.java | 4 +- .../server/bacnet/BacnetServerModule.java | 4 +- .../simulator/server/cbus/CBusServerModule.java | 4 +- pom.xml | 2 +- .../resources/protocols/ads/ads-discovery.mspec | 2 +- .../ads/src/main/resources/protocols/ads/ads.mspec | 2 +- .../protocols/bacnetip/bacnet-vendorids.mspec | 7 + .../resources/protocols/bacnetip/bacnet-tags.mspec | 2 + .../resources/protocols/bacnetip/bacnetip.mspec | 2 +- .../src/main/resources/protocols/cbus/c-bus.mspec | 31 +++- .../eip/src/main/resources/protocols/eip/eip.mspec | 2 +- .../protocols/iec608705104/iec-60870-5-104.mspec | 2 +- .../protocols/knxnetip/knx-master-data.mspec | 10 +- .../main/resources/protocols/modbus/modbus.mspec | 2 +- .../protocols/openprotocol/open-protocol.mspec | 2 +- .../main/resources/protocols/plc4x/v0/plc4x.mspec | 2 +- .../src/main/resources/protocols/umas/umas.mspec | 2 +- 55 files changed, 925 insertions(+), 1240 deletions(-) diff --git a/code-generation/language-base-freemarker/src/main/java/org/apache/plc4x/plugins/codegenerator/protocol/freemarker/FreemarkerLanguageOutput.java b/code-generation/language-base-freemarker/src/main/java/org/apache/plc4x/plugins/codegenerator/protocol/freemarker/FreemarkerLanguageOutput.java index 8e1390ba0f..2fcb68002c 100644 --- a/code-generation/language-base-freemarker/src/main/java/org/apache/plc4x/plugins/codegenerator/protocol/freemarker/FreemarkerLanguageOutput.java +++ b/code-generation/language-base-freemarker/src/main/java/org/apache/plc4x/plugins/codegenerator/protocol/freemarker/FreemarkerLanguageOutput.java @@ -21,6 +21,7 @@ package org.apache.plc4x.plugins.codegenerator.protocol.freemarker; import freemarker.cache.ClassTemplateLoader; import freemarker.template.*; import org.apache.plc4x.plugins.codegenerator.language.LanguageOutput; +import org.apache.plc4x.plugins.codegenerator.types.definitions.ConstantsTypeDefinition; import org.apache.plc4x.plugins.codegenerator.types.definitions.EnumTypeDefinition; import org.apache.plc4x.plugins.codegenerator.types.definitions.DataIoTypeDefinition; import org.apache.plc4x.plugins.codegenerator.types.definitions.TypeDefinition; @@ -31,10 +32,7 @@ import org.slf4j.LoggerFactory; import java.io.*; import java.nio.charset.StandardCharsets; import java.nio.file.Files; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; public abstract class FreemarkerLanguageOutput implements LanguageOutput { @@ -53,13 +51,15 @@ public abstract class FreemarkerLanguageOutput implements LanguageOutput { freemarkerConfiguration.setTemplateLoader(classTemplateLoader); // Initialize all templates - List<Template> specTemplates; + List<Template> specTemplatesList; + List<Template> constantsTemplateList; List<Template> complexTypesTemplateList; List<Template> enumTypesTemplateList; List<Template> dataIoTemplateList; List<Template> miscTemplateList; try { - specTemplates = getSpecTemplates(freemarkerConfiguration); + specTemplatesList = getSpecTemplates(freemarkerConfiguration); + constantsTemplateList = getConstantsTemplates(freemarkerConfiguration); complexTypesTemplateList = getComplexTypeTemplates(freemarkerConfiguration); enumTypesTemplateList = getEnumTypeTemplates(freemarkerConfiguration); dataIoTemplateList = getDataIoTemplates(freemarkerConfiguration); @@ -69,7 +69,7 @@ public abstract class FreemarkerLanguageOutput implements LanguageOutput { } // Generate output that's global for the entire mspec - if (!specTemplates.isEmpty()) { + if (!specTemplatesList.isEmpty()) { Map<String, Object> typeContext = new HashMap<>(); typeContext.put("languageName", languageName); typeContext.put("protocolName", protocolName); @@ -78,7 +78,7 @@ public abstract class FreemarkerLanguageOutput implements LanguageOutput { typeContext.put("tracer", Tracer.start("global")); typeContext.putAll(options); - for (Template template : specTemplates) { + for (Template template : specTemplatesList) { try { renderTemplate(outputDir, template, typeContext); } catch (IOException | TemplateException e) { @@ -87,8 +87,36 @@ public abstract class FreemarkerLanguageOutput implements LanguageOutput { } } + // Generate constants types + Optional<TypeDefinition> constantsTypeDefinition = types.values().stream().filter(type -> type instanceof ConstantsTypeDefinition).findFirst(); + if (!constantsTemplateList.isEmpty() && constantsTypeDefinition.isPresent()) { + TypeDefinition typeDefinition = constantsTypeDefinition.get(); + Map<String, Object> typeContext = new HashMap<>(); + typeContext.put("languageName", languageName); + typeContext.put("protocolName", protocolName); + typeContext.put("outputFlavor", outputFlavor); + typeContext.put("typeName", typeDefinition.getName()); + typeContext.put("type", typeDefinition); + typeContext.put("helper", getHelper(null, protocolName, outputFlavor, types, options)); + typeContext.put("tracer", Tracer.start("global")); + typeContext.putAll(options); + + for (Template template : constantsTemplateList) { + try { + renderTemplate(outputDir, template, typeContext); + } catch (IOException | TemplateException e) { + throw new GenerationException("Error generating constants.", e); + } + } + } + // Iterate over the types and have content generated for each one for (Map.Entry<String, TypeDefinition> typeEntry : types.entrySet()) { + // "Constants" types are handled separately. + if (typeEntry.getValue() instanceof ConstantsTypeDefinition) { + continue; + } + // Prepare a new generation context Map<String, Object> typeContext = new HashMap<>(); typeContext.put("languageName", languageName); @@ -202,6 +230,8 @@ public abstract class FreemarkerLanguageOutput implements LanguageOutput { protected abstract List<Template> getSpecTemplates(Configuration freemarkerConfiguration) throws IOException; + protected abstract List<Template> getConstantsTemplates(Configuration freemarkerConfiguration) throws IOException; + protected abstract List<Template> getComplexTypeTemplates(Configuration freemarkerConfiguration) throws IOException; protected abstract List<Template> getEnumTypeTemplates(Configuration freemarkerConfiguration) throws IOException; diff --git a/code-generation/language/java/src/main/java/org/apache/plc4x/language/java/JavaLanguageOutput.java b/code-generation/language/java/src/main/java/org/apache/plc4x/language/java/JavaLanguageOutput.java index a65f8b7765..aa3b2ddc5e 100644 --- a/code-generation/language/java/src/main/java/org/apache/plc4x/language/java/JavaLanguageOutput.java +++ b/code-generation/language/java/src/main/java/org/apache/plc4x/language/java/JavaLanguageOutput.java @@ -68,6 +68,11 @@ public class JavaLanguageOutput extends FreemarkerLanguageOutput { return Collections.emptyList(); } + @Override + protected List<Template> getConstantsTemplates(Configuration freemarkerConfiguration) throws IOException { + return List.of(freemarkerConfiguration.getTemplate("templates/java/constants-template.java.ftlh")); + } + @Override protected List<Template> getComplexTypeTemplates(Configuration freemarkerConfiguration) throws IOException { return List.of(freemarkerConfiguration.getTemplate("templates/java/complex-type-template.java.ftlh")); diff --git a/code-generation/language/java/src/main/resources/templates/java/constants-template.java.ftlh b/code-generation/language/java/src/main/resources/templates/java/constants-template.java.ftlh new file mode 100644 index 0000000000..66d0562191 --- /dev/null +++ b/code-generation/language/java/src/main/resources/templates/java/constants-template.java.ftlh @@ -0,0 +1,84 @@ +<#-- + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you under the Apache License, Version 2.0 (the + "License"); you may not use this file except in compliance + with the License. You may obtain a copy of the License at + + https://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, + software distributed under the License is distributed on an + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the + specific language governing permissions and limitations + under the License. +--> +<#-- Prevent freemarker from escaping stuff --> +<#outputformat "undefined"> +<#-- Declare the name and type of variables passed in to the template --> +<#-- @ftlvariable name="languageName" type="java.lang.String" --> +<#-- @ftlvariable name="protocolName" type="java.lang.String" --> +<#-- @ftlvariable name="outputFlavor" type="java.lang.String" --> +<#-- @ftlvariable name="helper" type="org.apache.plc4x.language.java.JavaLanguageTemplateHelper" --> +<#-- @ftlvariable name="tracer" type="org.apache.plc4x.plugins.codegenerator.protocol.freemarker.Tracer" --> +<#-- @ftlvariable name="type" type="org.apache.plc4x.plugins.codegenerator.types.definitions.ComplexTypeDefinition" --> +<#-- Declare the name and type of variables declared locally inside the template --> +${helper.packageName(protocolName, languageName, outputFlavor)?replace(".", "/")}/${type.name}.java +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package ${helper.packageName(protocolName, languageName, outputFlavor)}; + +import static org.apache.plc4x.java.spi.generation.StaticHelper.*; +import static org.apache.plc4x.java.spi.codegen.io.DataReaderFactory.*; +import static org.apache.plc4x.java.spi.codegen.io.DataWriterFactory.*; +import static org.apache.plc4x.java.spi.codegen.fields.FieldReaderFactory.*; +import static org.apache.plc4x.java.spi.codegen.fields.FieldWriterFactory.*; + +import org.apache.plc4x.java.spi.codegen.*; +import org.apache.plc4x.java.spi.codegen.io.*; +import org.apache.plc4x.java.spi.codegen.fields.*; +import org.apache.plc4x.java.api.exceptions.*; +import org.apache.plc4x.java.spi.generation.*; +import org.apache.plc4x.java.api.value.*; + +import java.time.*; +import java.util.*; +import java.math.BigInteger; +${helper.getExternalTypeImports()} + +// Code generated by code-generation. DO NOT EDIT. + +<#-- TODO: the code below implies that parserArguments will be null if not present... not pretty --> +<#if type.parserArguments.isPresent()><#assign parserArguments=type.allParserArguments.orElseThrow()></#if> +public class ${type.name} { + +<#-- If the current type contains "const" fields, generate some java constants for holing their values --> +<#if type.constFields?has_content> + + // Constant values. + <#list type.constFields as field> + public static final ${helper.getLanguageTypeNameForTypeReference(field.type)} ${field.name?upper_case} = ${helper.toParseExpression(field, field.type, field.referenceValue, parserArguments)}; + </#list> +</#if> + +} +</#outputformat> \ No newline at end of file diff --git a/code-generation/protocol-base-mspec/src/main/antlr4/org/apache/plc4x/plugins/codegenerator/language/mspec/MSpec.g4 b/code-generation/protocol-base-mspec/src/main/antlr4/org/apache/plc4x/plugins/codegenerator/language/mspec/MSpec.g4 index 404925638d..16f1a0c3f1 100644 --- a/code-generation/protocol-base-mspec/src/main/antlr4/org/apache/plc4x/plugins/codegenerator/language/mspec/MSpec.g4 +++ b/code-generation/protocol-base-mspec/src/main/antlr4/org/apache/plc4x/plugins/codegenerator/language/mspec/MSpec.g4 @@ -19,7 +19,19 @@ grammar MSpec; */ file - : complexTypeDefinition* EOF + : contantsDefinition? globalsDefinition? contextDefintion? complexTypeDefinition* EOF + ; + +contantsDefinition + : LBRACKET CONSTANTS (LBRACKET constField RBRACKET)* RBRACKET + ; + +globalsDefinition + : LBRACKET GLOBALS fieldDefinition* RBRACKET + ; + +contextDefintion + : LBRACKET CONTEXT fieldDefinition* RBRACKET ; complexTypeDefinition @@ -27,10 +39,10 @@ complexTypeDefinition ; complexType - : 'type' name=idExpression (LRBRACKET params=argumentList RRBRACKET)? attributes=attributeList (fieldDefinition|batchSetDefinition)* - | 'discriminatedType' name=idExpression (LRBRACKET params=argumentList RRBRACKET)? attributes=attributeList (fieldDefinition|batchSetDefinition)* - | 'enum' (type=dataType)? name=idExpression (LRBRACKET params=argumentList RRBRACKET)? attributes=attributeList enumValues=enumValueDefinition* - | 'dataIo' name=idExpression (LRBRACKET params=argumentList RRBRACKET)? (attributes=attributeList) dataIoTypeSwitch=dataIoDefinition + : TYPE name=idExpression (LRBRACKET params=argumentList RRBRACKET)? attributes=attributeList (fieldDefinition|batchSetDefinition)* + | DISCRIMINATEDTYPE name=idExpression (LRBRACKET params=argumentList RRBRACKET)? attributes=attributeList (fieldDefinition|batchSetDefinition)* + | ENUM (type=dataType)? name=idExpression (LRBRACKET params=argumentList RRBRACKET)? attributes=attributeList enumValues=enumValueDefinition* + | DATAIO name=idExpression (LRBRACKET params=argumentList RRBRACKET)? (attributes=attributeList) dataIoTypeSwitch=dataIoDefinition ; fieldDefinition @@ -38,11 +50,11 @@ fieldDefinition ; batchSetDefinition - : LBRACKET 'batchSet' attributes=attributeList fieldDefinition+ RBRACKET + : LBRACKET BATCHSET attributes=attributeList fieldDefinition+ RBRACKET ; dataIoDefinition -// TODO: remove typeSwitchField as it's a unnecessary indirection +// TODO: possibly alow more fields than just one typeSwitch field. : LBRACKET typeSwitchField (LBRACKET params=multipleExpressions RBRACKET)? RBRACKET ; @@ -59,89 +71,94 @@ field | manualField | optionalField | paddingField + | peekField | reservedField | simpleField + | stateField | typeSwitchField | unknownField - | virtualField | validationField - | peekField + | virtualField ; abstractField - : 'abstract' type=typeReference name=idExpression + : ABSTRACT type=typeReference name=idExpression ; arrayField - : 'array' type=typeReference name=idExpression loopType=ARRAY_LOOP_TYPE loopExpression=expression + : ARRAY type=typeReference name=idExpression loopType=ARRAY_LOOP_TYPE loopExpression=expression ; assertField - : 'assert' type=typeReference name=idExpression condition=expression + : ASSERT type=typeReference name=idExpression condition=expression ; checksumField - : 'checksum' type=dataType name=idExpression checksumExpression=expression + : CHECKSUM type=dataType name=idExpression checksumExpression=expression ; constField - : 'const' type=typeReference name=idExpression expected=valueLiteral + : CONST type=typeReference name=idExpression expected=valueLiteral ; discriminatorField - : 'discriminator' type=typeReference name=idExpression + : DISCRIMINATOR type=typeReference name=idExpression ; enumField - : 'enum' type=typeReference name=idExpression fieldName=idExpression + : ENUM type=typeReference name=idExpression fieldName=idExpression ; implicitField - : 'implicit' type=dataType name=idExpression serializeExpression=expression + : IMPLICIT type=dataType name=idExpression serializeExpression=expression ; manualArrayField - : 'manualArray' type=typeReference name=idExpression loopType=ARRAY_LOOP_TYPE loopExpression=expression parseExpression=expression serializeExpression=expression lengthExpression=expression + : MANUALARRAY type=typeReference name=idExpression loopType=ARRAY_LOOP_TYPE loopExpression=expression parseExpression=expression serializeExpression=expression lengthExpression=expression ; manualField - : 'manual' type=typeReference name=idExpression parseExpression=expression serializeExpression=expression lengthExpression=expression + : MANUAL type=typeReference name=idExpression parseExpression=expression serializeExpression=expression lengthExpression=expression ; optionalField - : 'optional' type=typeReference name=idExpression (condition=expression)? + : OPTIONAL type=typeReference name=idExpression (condition=expression)? ; paddingField - : 'padding' type=dataType name=idExpression paddingValue=expression timesPadding=expression + : PADDING type=dataType name=idExpression paddingValue=expression timesPadding=expression + ; + +peekField + : PEEK type=typeReference name=idExpression (offset=expression)? ; reservedField - : 'reserved' type=dataType expected=expression + : RESERVED type=dataType expected=expression ; simpleField - : 'simple' type=typeReference name=idExpression + : SIMPLE type=typeReference name=idExpression ; -typeSwitchField - : 'typeSwitch' discriminators=multipleVariableLiterals caseStatement* +stateField + : STATE type=typeReference name=idExpression valueExpression=expression ; -unknownField - : 'unknown' type=dataType +typeSwitchField + : TYPESWITCH discriminators=multipleVariableLiterals caseStatement* ; -virtualField - : 'virtual' type=typeReference name=idExpression valueExpression=expression +unknownField + : UNKNOWN type=dataType ; validationField - : 'validation' validationExpression=expression (description=STRING_LITERAL)? ('shouldFail='shouldFail=BOOLEAN_LITERAL)? + : VALIDATION validationExpression=expression (description=STRING_LITERAL)? (SHOULD_FAIL '=' shouldFail=BOOLEAN_LITERAL)? ; -peekField - : 'peek' type=typeReference name=idExpression (offset=expression)? +virtualField + : VIRTUAL type=typeReference name=idExpression valueExpression=expression ; enumValueDefinition @@ -158,19 +175,19 @@ caseStatement ; dataType - : base='bit' - | base='byte' - | base='int' size=INTEGER_LITERAL - | base='vint' - | base='uint' size=INTEGER_LITERAL - | base='vuint' - | base='float' size=INTEGER_LITERAL - | base='ufloat' size=INTEGER_LITERAL - | base='string' size=INTEGER_LITERAL - | base='vstring' (length=expression)? - | base='time' - | base='date' - | base='dateTime' + : base=BIT + | base=BYTE + | base=INT size=INTEGER_LITERAL + | base=VINT + | base=UINT size=INTEGER_LITERAL + | base=VUINT + | base=FLOAT size=INTEGER_LITERAL + | base=UFLOAT size=INTEGER_LITERAL + | base=STRING size=INTEGER_LITERAL + | base=VSTRING (length=expression)? + | base=TIME + | base=DATE + | base=DATETIME ; attribute @@ -233,8 +250,16 @@ valueLiteral idExpression : id=IDENTIFIER_LITERAL - // Explicitly allow the loop type keywords in id-expressions + // Explicitly allow keywords in id-expressions | id=ARRAY_LOOP_TYPE + | id=CONSTANTS | id=GLOBALS | id=CONTEXT | id=TYPE | id=DISCRIMINATEDTYPE | id=DATAIO + | id=ENUM | id=BATCHSET | id=ABSTRACT | id=ARRAY | id=ASSERT | id=CHECKSUM | id=CONST + | id=DISCRIMINATOR | id=IMPLICIT | id=MANUALARRAY | id=MANUAL | id=OPTIONAL | id=PADDING + | id=PEEK | id=RESERVED | id=SIMPLE | id=STATE | id=TYPESWITCH | id=UNKNOWN | id=VALIDATION + | id=VIRTUAL + | id=BIT | id=BYTE | id=INT | id=VINT | id=UINT | id=VUINT + | id=FLOAT | id=UFLOAT | id=STRING | id=VSTRING | id=TIME | id=DATE | id=DATETIME + | id=SHOULD_FAIL ; binaryOperator @@ -268,6 +293,55 @@ RCBRACKET : '}'; ASTERISK : '*'; +// Keywords used for higher level constructs +CONSTANTS : 'constants'; +GLOBALS : 'globals'; +CONTEXT : 'context'; +TYPE : 'type'; +DISCRIMINATEDTYPE : 'discriminatedType'; +DATAIO : 'dataIo'; +ENUM : 'enum'; +BATCHSET : 'batchSet'; + +// Keywords used for fields +ABSTRACT : 'abstract'; +ARRAY : 'array'; +ASSERT : 'assert'; +CHECKSUM : 'checksum'; +CONST : 'const'; +DISCRIMINATOR : 'discriminator'; +IMPLICIT : 'implicit'; +MANUALARRAY : 'manualArray'; +MANUAL : 'manual'; +OPTIONAL : 'optional'; +PADDING : 'padding'; +PEEK : 'peek'; +RESERVED : 'reserved'; +SIMPLE : 'simple'; +STATE : 'state'; +TYPESWITCH : 'typeSwitch'; +UNKNOWN : 'unknown'; +VALIDATION : 'validation'; +VIRTUAL : 'virtual'; + +// Keywords for types +BIT : 'bit'; +BYTE : 'byte'; +INT : 'int'; +VINT : 'vint'; +UINT : 'uint'; +VUINT : 'vuint'; +FLOAT : 'float'; +UFLOAT : 'ufloat'; +STRING : 'string'; +VSTRING : 'vstring'; +TIME : 'time'; +DATE : 'date'; +DATETIME : 'dateTime'; + +// Keywords used elsewhere +SHOULD_FAIL : 'shouldFail'; + ARRAY_LOOP_TYPE : 'count' | 'length' diff --git a/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/definitions/DefaultConstantsTypeDefinition.java b/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/definitions/DefaultConstantsTypeDefinition.java new file mode 100644 index 0000000000..2b90e4430b --- /dev/null +++ b/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/definitions/DefaultConstantsTypeDefinition.java @@ -0,0 +1,63 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.plc4x.plugins.codegenerator.language.mspec.model.definitions; + +import org.apache.plc4x.plugins.codegenerator.types.definitions.Argument; +import org.apache.plc4x.plugins.codegenerator.types.definitions.ConstantsTypeDefinition; +import org.apache.plc4x.plugins.codegenerator.types.fields.ConstField; +import org.apache.plc4x.plugins.codegenerator.types.fields.Field; +import org.apache.plc4x.plugins.codegenerator.types.fields.PropertyField; +import org.apache.plc4x.plugins.codegenerator.types.fields.VirtualField; +import org.apache.plc4x.plugins.codegenerator.types.terms.Term; + +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +public class DefaultConstantsTypeDefinition extends DefaultTypeDefinition implements ConstantsTypeDefinition { + + private final List<Field> fields; + + public DefaultConstantsTypeDefinition(String name, Map<String, Term> attributes, List<Argument> parserArguments, List<Field> fields) { + super(name, attributes, parserArguments); + this.fields = fields; + } + + @Override + public List<Field> getFields() { + return fields; + } + + @Override + public List<ConstField> getConstFields() { + return fields.stream() + .filter(ConstField.class::isInstance) + .map(ConstField.class::cast) + .collect(Collectors.toList()); + } + + @Override + public List<PropertyField> getPropertyFields() { + return fields.stream() + .filter(PropertyField.class::isInstance) + .filter(field -> !(field instanceof ConstField) && !(field instanceof VirtualField)) + .map(PropertyField.class::cast) + .collect(Collectors.toList()); + } +} diff --git a/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/fields/DefaultStateField.java b/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/fields/DefaultStateField.java new file mode 100644 index 0000000000..95b0f21096 --- /dev/null +++ b/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/fields/DefaultStateField.java @@ -0,0 +1,60 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.plc4x.plugins.codegenerator.language.mspec.model.fields; + +import org.apache.plc4x.plugins.codegenerator.types.fields.StateField; +import org.apache.plc4x.plugins.codegenerator.types.terms.Term; + +import java.util.Map; +import java.util.Objects; + +public class DefaultStateField extends DefaultTypedNamedField implements StateField { + + private final Term valueExpression; + + public DefaultStateField(Map<String, Term> attributes, String name, Term valueExpression) { + super(attributes, name); + this.valueExpression = Objects.requireNonNull(valueExpression); + } + + public Term getValueExpression() { + return valueExpression; + } + + @Override + public String toString() { + return "DefaultStateField{" + + "valueExpression=" + valueExpression + + "} " + super.toString(); + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + if (!super.equals(o)) return false; + DefaultStateField that = (DefaultStateField) o; + return Objects.equals(valueExpression, that.valueExpression); + } + + @Override + public int hashCode() { + return Objects.hash(super.hashCode(), valueExpression); + } +} diff --git a/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/parser/MessageFormatListener.java b/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/parser/MessageFormatListener.java index 209bc7a656..495ea249a3 100644 --- a/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/parser/MessageFormatListener.java +++ b/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/parser/MessageFormatListener.java @@ -91,6 +91,56 @@ public class MessageFormatListener extends MSpecBaseListener implements LazyType enumContexts = new LinkedList<>(); } + @Override + public void enterContantsDefinition(MSpecParser.ContantsDefinitionContext ctx) { + currentTypeName.push("Constants"); + // Set a map of attributes that should be set for all fields. + Map<String, Term> curBatchSetAttributes = new HashMap<>(); + // Make the new Map the top of the stack. + batchSetAttributes.push(curBatchSetAttributes); + + List<Field> parserContext = new LinkedList<>(); + parserContexts.push(parserContext); + super.enterContantsDefinition(ctx); + } + + @Override + public void exitContantsDefinition(MSpecParser.ContantsDefinitionContext ctx) { + String typeName = "Constants"; + + // If the type has subtypes, it's an abstract type. + final List<Field> fields = parserContexts.pop(); + DefaultConstantsTypeDefinition type = new DefaultConstantsTypeDefinition( + typeName, Collections.emptyMap(), Collections.emptyList(), fields); + // Link the fields and the complex types. + if (fields != null) { + fields.forEach(field -> ((DefaultField) field).setOwner(type)); + } + dispatchType(typeName, type); + + currentTypeName.pop(); + } + + @Override + public void enterGlobalsDefinition(MSpecParser.GlobalsDefinitionContext ctx) { + super.enterGlobalsDefinition(ctx); + } + + @Override + public void exitGlobalsDefinition(MSpecParser.GlobalsDefinitionContext ctx) { + super.exitGlobalsDefinition(ctx); + } + + @Override + public void enterContextDefintion(MSpecParser.ContextDefintionContext ctx) { + super.enterContextDefintion(ctx); + } + + @Override + public void exitContextDefintion(MSpecParser.ContextDefintionContext ctx) { + super.exitContextDefintion(ctx); + } + @Override public void enterComplexType(MSpecParser.ComplexTypeContext ctx) { currentTypeName.push(getIdString(ctx.name)); @@ -240,6 +290,24 @@ public class MessageFormatListener extends MSpecBaseListener implements LazyType } } + @Override + public void enterAssertField(MSpecParser.AssertFieldContext ctx) { + String name = getIdString(ctx.name); + Term conditionExpression = getExpressionTerm(ctx.condition); + DefaultAssertField field = new DefaultAssertField(getAttributes(ctx), name, conditionExpression); + getTypeReference(ctx.type).whenComplete((typeReference, throwable) -> { + if (throwable != null) { + // TODO: proper error collection in type context error bucket + LOGGER.debug("Error setting type for {}", field, throwable); + return; + } + field.setType(typeReference); + }); + if (parserContexts.peek() != null) { + parserContexts.peek().add(field); + } + } + @Override public void enterChecksumField(MSpecParser.ChecksumFieldContext ctx) { SimpleTypeReference type = getSimpleTypeReference(ctx.type); @@ -316,24 +384,6 @@ public class MessageFormatListener extends MSpecBaseListener implements LazyType } } - @Override - public void enterAssertField(MSpecParser.AssertFieldContext ctx) { - String name = getIdString(ctx.name); - Term conditionExpression = getExpressionTerm(ctx.condition); - DefaultAssertField field = new DefaultAssertField(getAttributes(ctx), name, conditionExpression); - getTypeReference(ctx.type).whenComplete((typeReference, throwable) -> { - if (throwable != null) { - // TODO: proper error collection in type context error bucket - LOGGER.debug("Error setting type for {}", field, throwable); - return; - } - field.setType(typeReference); - }); - if (parserContexts.peek() != null) { - parserContexts.peek().add(field); - } - } - @Override public void enterManualArrayField(MSpecParser.ManualArrayFieldContext ctx) { String name = getIdString(ctx.name); @@ -400,6 +450,18 @@ public class MessageFormatListener extends MSpecBaseListener implements LazyType } } + @Override + public void enterPaddingField(MSpecParser.PaddingFieldContext ctx) { + SimpleTypeReference type = getSimpleTypeReference(ctx.type); + String name = getIdString(ctx.name); + Term paddingValue = getExpressionTerm(ctx.paddingValue); + Term timesPadding = getExpressionTerm(ctx.timesPadding); + Field field = new DefaultPaddingField(getAttributes(ctx), type, name, paddingValue, timesPadding); + if (parserContexts.peek() != null) { + parserContexts.peek().add(field); + } + } + @Override public void enterPeekField(MSpecParser.PeekFieldContext ctx) { String name = getIdString(ctx.name); @@ -422,31 +484,37 @@ public class MessageFormatListener extends MSpecBaseListener implements LazyType } @Override - public void enterPaddingField(MSpecParser.PaddingFieldContext ctx) { + public void enterReservedField(MSpecParser.ReservedFieldContext ctx) { SimpleTypeReference type = getSimpleTypeReference(ctx.type); - String name = getIdString(ctx.name); - Term paddingValue = getExpressionTerm(ctx.paddingValue); - Term timesPadding = getExpressionTerm(ctx.timesPadding); - Field field = new DefaultPaddingField(getAttributes(ctx), type, name, paddingValue, timesPadding); + String expected = getExprString(ctx.expected); + Field field = new DefaultReservedField(getAttributes(ctx), type, expected); if (parserContexts.peek() != null) { parserContexts.peek().add(field); } } @Override - public void enterReservedField(MSpecParser.ReservedFieldContext ctx) { - SimpleTypeReference type = getSimpleTypeReference(ctx.type); - String expected = getExprString(ctx.expected); - Field field = new DefaultReservedField(getAttributes(ctx), type, expected); + public void enterSimpleField(MSpecParser.SimpleFieldContext ctx) { + String name = getIdString(ctx.name); + DefaultSimpleField field = new DefaultSimpleField(getAttributes(ctx), name); + getTypeReference(ctx.type).whenComplete((typeReference, throwable) -> { + if (throwable != null) { + // TODO: proper error collection in type context error bucket + LOGGER.debug("Error setting type for {}", field, throwable); + return; + } + field.setType(typeReference); + }); if (parserContexts.peek() != null) { parserContexts.peek().add(field); } } @Override - public void enterSimpleField(MSpecParser.SimpleFieldContext ctx) { + public void enterStateField(MSpecParser.StateFieldContext ctx) { String name = getIdString(ctx.name); - DefaultSimpleField field = new DefaultSimpleField(getAttributes(ctx), name); + Term valueExpression = getExpressionTerm(ctx.valueExpression); + DefaultStateField field = new DefaultStateField(getAttributes(ctx), name, valueExpression); getTypeReference(ctx.type).whenComplete((typeReference, throwable) -> { if (throwable != null) { // TODO: proper error collection in type context error bucket @@ -480,6 +548,23 @@ public class MessageFormatListener extends MSpecBaseListener implements LazyType } } + @Override + public void enterValidationField(MSpecParser.ValidationFieldContext ctx) { + Term validationExpression = getExpressionTerm(ctx.validationExpression); + boolean shouldFail = true; + if (ctx.shouldFail != null) { + shouldFail = "true".equalsIgnoreCase(ctx.shouldFail.getText()); + } + String description = null; + if (ctx.description != null) { + description = ctx.description.getText(); + } + Field field = new DefaultValidationField(getAttributes(ctx), validationExpression, description, shouldFail); + if (parserContexts.peek() != null) { + parserContexts.peek().add(field); + } + } + @Override public void enterVirtualField(MSpecParser.VirtualFieldContext ctx) { String name = getIdString(ctx.name); @@ -498,23 +583,6 @@ public class MessageFormatListener extends MSpecBaseListener implements LazyType } } - @Override - public void enterValidationField(MSpecParser.ValidationFieldContext ctx) { - Term validationExpression = getExpressionTerm(ctx.validationExpression); - boolean shouldFail = true; - if (ctx.shouldFail != null) { - shouldFail = "true".equalsIgnoreCase(ctx.shouldFail.getText()); - } - String description = null; - if (ctx.description != null) { - description = ctx.description.getText(); - } - Field field = new DefaultValidationField(getAttributes(ctx), validationExpression, description, shouldFail); - if (parserContexts.peek() != null) { - parserContexts.peek().add(field); - } - } - @Override public void enterCaseStatement(MSpecParser.CaseStatementContext ctx) { List<Field> parserContext = new LinkedList<>(); diff --git a/plc4j/drivers/ads/src/main/generated/org/apache/plc4x/java/ads/discovery/readwrite/AdsDiscoveryConstants.java b/plc4j/drivers/ads/src/main/generated/org/apache/plc4x/java/ads/discovery/readwrite/AdsDiscoveryConstants.java deleted file mode 100644 index 0db2e08b57..0000000000 --- a/plc4j/drivers/ads/src/main/generated/org/apache/plc4x/java/ads/discovery/readwrite/AdsDiscoveryConstants.java +++ /dev/null @@ -1,127 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.apache.plc4x.java.ads.discovery.readwrite; - -import static org.apache.plc4x.java.spi.codegen.fields.FieldReaderFactory.*; -import static org.apache.plc4x.java.spi.codegen.fields.FieldWriterFactory.*; -import static org.apache.plc4x.java.spi.codegen.io.DataReaderFactory.*; -import static org.apache.plc4x.java.spi.codegen.io.DataWriterFactory.*; -import static org.apache.plc4x.java.spi.generation.StaticHelper.*; - -import java.time.*; -import java.util.*; -import org.apache.plc4x.java.api.exceptions.*; -import org.apache.plc4x.java.api.value.*; -import org.apache.plc4x.java.spi.codegen.*; -import org.apache.plc4x.java.spi.codegen.fields.*; -import org.apache.plc4x.java.spi.codegen.io.*; -import org.apache.plc4x.java.spi.generation.*; - -// Code generated by code-generation. DO NOT EDIT. - -public class AdsDiscoveryConstants implements Message { - - // Constant values. - public static final Integer ADSDISCOVERYUDPDEFAULTPORT = 48899; - - public AdsDiscoveryConstants() { - super(); - } - - public int getAdsDiscoveryUdpDefaultPort() { - return ADSDISCOVERYUDPDEFAULTPORT; - } - - public void serialize(WriteBuffer writeBuffer) throws SerializationException { - PositionAware positionAware = writeBuffer; - boolean _lastItem = ThreadLocalHelper.lastItemThreadLocal.get(); - writeBuffer.pushContext("AdsDiscoveryConstants"); - - // Const Field (adsDiscoveryUdpDefaultPort) - writeConstField( - "adsDiscoveryUdpDefaultPort", - ADSDISCOVERYUDPDEFAULTPORT, - writeUnsignedInt(writeBuffer, 16)); - - writeBuffer.popContext("AdsDiscoveryConstants"); - } - - @Override - public int getLengthInBytes() { - return (int) Math.ceil((float) getLengthInBits() / 8.0); - } - - @Override - public int getLengthInBits() { - int lengthInBits = 0; - AdsDiscoveryConstants _value = this; - boolean _lastItem = ThreadLocalHelper.lastItemThreadLocal.get(); - - // Const Field (adsDiscoveryUdpDefaultPort) - lengthInBits += 16; - - return lengthInBits; - } - - public static AdsDiscoveryConstants staticParse(ReadBuffer readBuffer) throws ParseException { - readBuffer.pullContext("AdsDiscoveryConstants"); - PositionAware positionAware = readBuffer; - boolean _lastItem = ThreadLocalHelper.lastItemThreadLocal.get(); - - int adsDiscoveryUdpDefaultPort = - readConstField( - "adsDiscoveryUdpDefaultPort", - readUnsignedInt(readBuffer, 16), - AdsDiscoveryConstants.ADSDISCOVERYUDPDEFAULTPORT); - - readBuffer.closeContext("AdsDiscoveryConstants"); - // Create the instance - AdsDiscoveryConstants _adsDiscoveryConstants; - _adsDiscoveryConstants = new AdsDiscoveryConstants(); - return _adsDiscoveryConstants; - } - - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (!(o instanceof AdsDiscoveryConstants)) { - return false; - } - AdsDiscoveryConstants that = (AdsDiscoveryConstants) o; - return true; - } - - @Override - public int hashCode() { - return Objects.hash(); - } - - @Override - public String toString() { - WriteBufferBoxBased writeBufferBoxBased = new WriteBufferBoxBased(true, true); - try { - writeBufferBoxBased.writeSerializable(this); - } catch (SerializationException e) { - throw new RuntimeException(e); - } - return "\n" + writeBufferBoxBased.getBox().toString() + "\n"; - } -} diff --git a/plc4j/drivers/ads/src/main/generated/org/apache/plc4x/java/ads/discovery/readwrite/Constants.java b/plc4j/drivers/ads/src/main/generated/org/apache/plc4x/java/ads/discovery/readwrite/Constants.java new file mode 100644 index 0000000000..c3b03243bc --- /dev/null +++ b/plc4j/drivers/ads/src/main/generated/org/apache/plc4x/java/ads/discovery/readwrite/Constants.java @@ -0,0 +1,42 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.plc4x.java.ads.discovery.readwrite; + +import static org.apache.plc4x.java.spi.codegen.fields.FieldReaderFactory.*; +import static org.apache.plc4x.java.spi.codegen.fields.FieldWriterFactory.*; +import static org.apache.plc4x.java.spi.codegen.io.DataReaderFactory.*; +import static org.apache.plc4x.java.spi.codegen.io.DataWriterFactory.*; +import static org.apache.plc4x.java.spi.generation.StaticHelper.*; + +import java.time.*; +import java.util.*; +import org.apache.plc4x.java.api.exceptions.*; +import org.apache.plc4x.java.api.value.*; +import org.apache.plc4x.java.spi.codegen.*; +import org.apache.plc4x.java.spi.codegen.fields.*; +import org.apache.plc4x.java.spi.codegen.io.*; +import org.apache.plc4x.java.spi.generation.*; + +// Code generated by code-generation. DO NOT EDIT. + +public class Constants { + + // Constant values. + public static final Integer ADSDISCOVERYUDPDEFAULTPORT = 48899; +} diff --git a/plc4j/drivers/ads/src/main/generated/org/apache/plc4x/java/ads/readwrite/AdsConstants.java b/plc4j/drivers/ads/src/main/generated/org/apache/plc4x/java/ads/readwrite/AdsConstants.java deleted file mode 100644 index 664b244736..0000000000 --- a/plc4j/drivers/ads/src/main/generated/org/apache/plc4x/java/ads/readwrite/AdsConstants.java +++ /dev/null @@ -1,122 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.apache.plc4x.java.ads.readwrite; - -import static org.apache.plc4x.java.spi.codegen.fields.FieldReaderFactory.*; -import static org.apache.plc4x.java.spi.codegen.fields.FieldWriterFactory.*; -import static org.apache.plc4x.java.spi.codegen.io.DataReaderFactory.*; -import static org.apache.plc4x.java.spi.codegen.io.DataWriterFactory.*; -import static org.apache.plc4x.java.spi.generation.StaticHelper.*; - -import java.time.*; -import java.util.*; -import org.apache.plc4x.java.api.exceptions.*; -import org.apache.plc4x.java.api.value.*; -import org.apache.plc4x.java.spi.codegen.*; -import org.apache.plc4x.java.spi.codegen.fields.*; -import org.apache.plc4x.java.spi.codegen.io.*; -import org.apache.plc4x.java.spi.generation.*; - -// Code generated by code-generation. DO NOT EDIT. - -public class AdsConstants implements Message { - - // Constant values. - public static final Integer ADSTCPDEFAULTPORT = 48898; - - public AdsConstants() { - super(); - } - - public int getAdsTcpDefaultPort() { - return ADSTCPDEFAULTPORT; - } - - public void serialize(WriteBuffer writeBuffer) throws SerializationException { - PositionAware positionAware = writeBuffer; - boolean _lastItem = ThreadLocalHelper.lastItemThreadLocal.get(); - writeBuffer.pushContext("AdsConstants"); - - // Const Field (adsTcpDefaultPort) - writeConstField("adsTcpDefaultPort", ADSTCPDEFAULTPORT, writeUnsignedInt(writeBuffer, 16)); - - writeBuffer.popContext("AdsConstants"); - } - - @Override - public int getLengthInBytes() { - return (int) Math.ceil((float) getLengthInBits() / 8.0); - } - - @Override - public int getLengthInBits() { - int lengthInBits = 0; - AdsConstants _value = this; - boolean _lastItem = ThreadLocalHelper.lastItemThreadLocal.get(); - - // Const Field (adsTcpDefaultPort) - lengthInBits += 16; - - return lengthInBits; - } - - public static AdsConstants staticParse(ReadBuffer readBuffer) throws ParseException { - readBuffer.pullContext("AdsConstants"); - PositionAware positionAware = readBuffer; - boolean _lastItem = ThreadLocalHelper.lastItemThreadLocal.get(); - - int adsTcpDefaultPort = - readConstField( - "adsTcpDefaultPort", readUnsignedInt(readBuffer, 16), AdsConstants.ADSTCPDEFAULTPORT); - - readBuffer.closeContext("AdsConstants"); - // Create the instance - AdsConstants _adsConstants; - _adsConstants = new AdsConstants(); - return _adsConstants; - } - - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (!(o instanceof AdsConstants)) { - return false; - } - AdsConstants that = (AdsConstants) o; - return true; - } - - @Override - public int hashCode() { - return Objects.hash(); - } - - @Override - public String toString() { - WriteBufferBoxBased writeBufferBoxBased = new WriteBufferBoxBased(true, true); - try { - writeBufferBoxBased.writeSerializable(this); - } catch (SerializationException e) { - throw new RuntimeException(e); - } - return "\n" + writeBufferBoxBased.getBox().toString() + "\n"; - } -} diff --git a/plc4j/drivers/ads/src/main/generated/org/apache/plc4x/java/ads/readwrite/Constants.java b/plc4j/drivers/ads/src/main/generated/org/apache/plc4x/java/ads/readwrite/Constants.java new file mode 100644 index 0000000000..298ab7a814 --- /dev/null +++ b/plc4j/drivers/ads/src/main/generated/org/apache/plc4x/java/ads/readwrite/Constants.java @@ -0,0 +1,42 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.plc4x.java.ads.readwrite; + +import static org.apache.plc4x.java.spi.codegen.fields.FieldReaderFactory.*; +import static org.apache.plc4x.java.spi.codegen.fields.FieldWriterFactory.*; +import static org.apache.plc4x.java.spi.codegen.io.DataReaderFactory.*; +import static org.apache.plc4x.java.spi.codegen.io.DataWriterFactory.*; +import static org.apache.plc4x.java.spi.generation.StaticHelper.*; + +import java.time.*; +import java.util.*; +import org.apache.plc4x.java.api.exceptions.*; +import org.apache.plc4x.java.api.value.*; +import org.apache.plc4x.java.spi.codegen.*; +import org.apache.plc4x.java.spi.codegen.fields.*; +import org.apache.plc4x.java.spi.codegen.io.*; +import org.apache.plc4x.java.spi.generation.*; + +// Code generated by code-generation. DO NOT EDIT. + +public class Constants { + + // Constant values. + public static final Integer ADSTCPDEFAULTPORT = 48898; +} diff --git a/plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/ads/configuration/AdsTcpTransportConfiguration.java b/plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/ads/configuration/AdsTcpTransportConfiguration.java index d902487674..db0b5078c3 100644 --- a/plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/ads/configuration/AdsTcpTransportConfiguration.java +++ b/plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/ads/configuration/AdsTcpTransportConfiguration.java @@ -19,14 +19,14 @@ package org.apache.plc4x.java.ads.configuration; -import org.apache.plc4x.java.ads.readwrite.AdsConstants; +import org.apache.plc4x.java.ads.readwrite.Constants; import org.apache.plc4x.java.transport.tcp.DefaultTcpTransportConfiguration; public class AdsTcpTransportConfiguration extends DefaultTcpTransportConfiguration { @Override public int getDefaultPort() { - return AdsConstants.ADSTCPDEFAULTPORT; + return Constants.ADSTCPDEFAULTPORT; } } diff --git a/plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/ads/discovery/AdsPlcDiscoverer.java b/plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/ads/discovery/AdsPlcDiscoverer.java index 43ad586bea..9313f4e8ae 100644 --- a/plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/ads/discovery/AdsPlcDiscoverer.java +++ b/plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/ads/discovery/AdsPlcDiscoverer.java @@ -19,7 +19,6 @@ package org.apache.plc4x.java.ads.discovery; import org.apache.plc4x.java.ads.discovery.readwrite.*; -import org.apache.plc4x.java.ads.readwrite.AdsConstants; import org.apache.plc4x.java.api.messages.PlcDiscoveryItem; import org.apache.plc4x.java.api.messages.PlcDiscoveryItemHandler; import org.apache.plc4x.java.api.messages.PlcDiscoveryRequest; @@ -63,7 +62,7 @@ public class AdsPlcDiscoverer implements PlcDiscoverer { if ((interfaceAddress.getBroadcast() != null) && (interfaceAddress.getAddress() instanceof Inet4Address)) { Inet4Address inet4Address = (Inet4Address) interfaceAddress.getAddress(); // Open a listening socket on the AMS discovery default port for taking in responses. - DatagramSocket adsDiscoverySocket = new DatagramSocket(AdsDiscoveryConstants.ADSDISCOVERYUDPDEFAULTPORT, inet4Address); + DatagramSocket adsDiscoverySocket = new DatagramSocket(Constants.ADSDISCOVERYUDPDEFAULTPORT, inet4Address); adsDiscoverySocket.setBroadcast(true); openSockets.add(adsDiscoverySocket); @@ -133,7 +132,7 @@ public class AdsPlcDiscoverer implements PlcDiscoverer { // Add an entry to the results. PlcDiscoveryItem plcDiscoveryItem = new DefaultPlcDiscoveryItem( "ads", "tcp", - plcAddress.getHostAddress() + ":" + AdsConstants.ADSTCPDEFAULTPORT, + plcAddress.getHostAddress() + ":" + org.apache.plc4x.java.ads.readwrite.Constants.ADSTCPDEFAULTPORT, options, hostNameBlock.getHostName().getText(), attributes); // If we've got an explicit handler, pass the new item to that. @@ -174,7 +173,7 @@ public class AdsPlcDiscoverer implements PlcDiscoverer { InetAddress broadcastAddress = interfaceAddress.getBroadcast(); // Create the UDP packet to the broadcast address. - DatagramPacket discoveryRequestPacket = new DatagramPacket(writeBuffer.getBytes(), writeBuffer.getBytes().length, broadcastAddress, AdsDiscoveryConstants.ADSDISCOVERYUDPDEFAULTPORT); + DatagramPacket discoveryRequestPacket = new DatagramPacket(writeBuffer.getBytes(), writeBuffer.getBytes().length, broadcastAddress, Constants.ADSDISCOVERYUDPDEFAULTPORT); adsDiscoverySocket.send(discoveryRequestPacket); } catch (SerializationException e) { logger.error("Error serializing ADS discovery request", e); diff --git a/plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/ads/protocol/AdsProtocolLogic.java b/plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/ads/protocol/AdsProtocolLogic.java index 9d8e59afe1..1ca0279f13 100644 --- a/plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/ads/protocol/AdsProtocolLogic.java +++ b/plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/ads/protocol/AdsProtocolLogic.java @@ -21,6 +21,7 @@ package org.apache.plc4x.java.ads.protocol; import org.apache.plc4x.java.ads.configuration.AdsConfiguration; import org.apache.plc4x.java.ads.discovery.readwrite.AmsNetId; import org.apache.plc4x.java.ads.discovery.readwrite.*; +import org.apache.plc4x.java.ads.discovery.readwrite.Constants; import org.apache.plc4x.java.ads.model.AdsSubscriptionHandle; import org.apache.plc4x.java.ads.readwrite.*; import org.apache.plc4x.java.ads.tag.AdsTag; @@ -281,7 +282,7 @@ public class AdsProtocolLogic extends Plc4xProtocolBase<AmsTCPPacket> implements new AdsDiscoveryBlockHostName(new AmsString(localAddress.getHostAddress())))); // Send the request to the PLC using a UDP socket. - try (DatagramSocket adsDiscoverySocket = new DatagramSocket(AdsDiscoveryConstants.ADSDISCOVERYUDPDEFAULTPORT)) { + try (DatagramSocket adsDiscoverySocket = new DatagramSocket(Constants.ADSDISCOVERYUDPDEFAULTPORT)) { // Serialize the message. WriteBufferByteBased writeBuffer = new WriteBufferByteBased( addOrUpdateRouteRequest.getLengthInBytes(), ByteOrder.LITTLE_ENDIAN); @@ -294,7 +295,7 @@ public class AdsProtocolLogic extends Plc4xProtocolBase<AmsTCPPacket> implements // Create the UDP packet to the broadcast address. DatagramPacket discoveryRequestPacket = new DatagramPacket( writeBuffer.getBytes(), writeBuffer.getBytes().length, - remoteAddress, AdsDiscoveryConstants.ADSDISCOVERYUDPDEFAULTPORT); + remoteAddress, Constants.ADSDISCOVERYUDPDEFAULTPORT); adsDiscoverySocket.send(discoveryRequestPacket); // The actual length would be 32, but better be prepared for a more verbose response diff --git a/plc4j/drivers/ads/src/test/java/org/apache/plc4x/protocol/ads/ProbeAdsDiscoveryCommands.java b/plc4j/drivers/ads/src/test/java/org/apache/plc4x/protocol/ads/ProbeAdsDiscoveryCommands.java index 76369733a8..201e6c9df7 100644 --- a/plc4j/drivers/ads/src/test/java/org/apache/plc4x/protocol/ads/ProbeAdsDiscoveryCommands.java +++ b/plc4j/drivers/ads/src/test/java/org/apache/plc4x/protocol/ads/ProbeAdsDiscoveryCommands.java @@ -43,7 +43,7 @@ public class ProbeAdsDiscoveryCommands { new AdsDiscoveryBlockAmsNetId(new AmsNetId((byte) 192, (byte) 168, (byte) 23, (byte) 20, (byte) 1, (byte) 1)) )); - try (DatagramSocket adsDiscoverySocket = new DatagramSocket(AdsDiscoveryConstants.ADSDISCOVERYUDPDEFAULTPORT)) { + try (DatagramSocket adsDiscoverySocket = new DatagramSocket(Constants.ADSDISCOVERYUDPDEFAULTPORT)) { // Serialize the message. WriteBufferByteBased writeBuffer = new WriteBufferByteBased(discoveryRequestMessage.getLengthInBytes(), ByteOrder.LITTLE_ENDIAN); discoveryRequestMessage.serialize(writeBuffer); @@ -52,7 +52,7 @@ public class ProbeAdsDiscoveryCommands { InetAddress address = InetAddress.getByAddress(new byte[]{(byte) 192, (byte) 168, (byte) 23, (byte) 20}); // Create the UDP packet to the broadcast address. - DatagramPacket discoveryRequestPacket = new DatagramPacket(writeBuffer.getBytes(), writeBuffer.getBytes().length, address, AdsDiscoveryConstants.ADSDISCOVERYUDPDEFAULTPORT); + DatagramPacket discoveryRequestPacket = new DatagramPacket(writeBuffer.getBytes(), writeBuffer.getBytes().length, address, Constants.ADSDISCOVERYUDPDEFAULTPORT); adsDiscoverySocket.send(discoveryRequestPacket); } catch (Exception e) { e.printStackTrace(); diff --git a/plc4j/drivers/bacnet/src/main/generated/org/apache/plc4x/java/bacnetip/readwrite/BACnetVendorId.java b/plc4j/drivers/bacnet/src/main/generated/org/apache/plc4x/java/bacnetip/readwrite/BACnetVendorId.java index 055e243d9f..0de17686f2 100644 --- a/plc4j/drivers/bacnet/src/main/generated/org/apache/plc4x/java/bacnetip/readwrite/BACnetVendorId.java +++ b/plc4j/drivers/bacnet/src/main/generated/org/apache/plc4x/java/bacnetip/readwrite/BACnetVendorId.java @@ -1790,6 +1790,14 @@ public enum BACnetVendorId { ZAPHIREAS((int) 1557, (int) 1557, (String) "Zaphire AS"), AJ_MANUFACTURING((int) 1558, (int) 1558, (String) "AJ Manufacturing"), FUTURE_MOTORS_LTD((int) 1559, (int) 1559, (String) "Future Motors Ltd."), + HIMEL_HONG_KONG_LIMITED((int) 1560, (int) 1560, (String) "Himel Hong Kong Limited"), + SHENZHEN_SUNRICHER_TECHNOLOGY_CO_LTD( + (int) 1561, (int) 1561, (String) "Shenzhen Sunricher Technology Co., Ltd."), + ACTILITYSA((int) 1562, (int) 1562, (String) "Actility S.A."), + OY_HALTON_GROUP_LTD((int) 1563, (int) 1563, (String) "Oy Halton Group Ltd."), + AVTECH_SOFTWARE_INC((int) 1564, (int) 1564, (String) "AVTECH Software, Inc."), + IN_CONTROL_ENGINEERINGLLC((int) 1565, (int) 1565, (String) "InControl Engineering LLC"), + SOUND_WATER_TECHNOLOGIESLLC((int) 1566, (int) 1566, (String) "SoundWater Technologies LLC"), UNKNOWN_VENDOR((int) 0xFFFF, (int) 0xFFFF, (String) "Unknown"); private static final Map<Integer, BACnetVendorId> map; diff --git a/plc4j/drivers/bacnet/src/main/generated/org/apache/plc4x/java/bacnetip/readwrite/BacnetConstants.java b/plc4j/drivers/bacnet/src/main/generated/org/apache/plc4x/java/bacnetip/readwrite/BacnetConstants.java deleted file mode 100644 index 79667d2c39..0000000000 --- a/plc4j/drivers/bacnet/src/main/generated/org/apache/plc4x/java/bacnetip/readwrite/BacnetConstants.java +++ /dev/null @@ -1,125 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.apache.plc4x.java.bacnetip.readwrite; - -import static org.apache.plc4x.java.spi.codegen.fields.FieldReaderFactory.*; -import static org.apache.plc4x.java.spi.codegen.fields.FieldWriterFactory.*; -import static org.apache.plc4x.java.spi.codegen.io.DataReaderFactory.*; -import static org.apache.plc4x.java.spi.codegen.io.DataWriterFactory.*; -import static org.apache.plc4x.java.spi.generation.StaticHelper.*; - -import java.time.*; -import java.util.*; -import org.apache.plc4x.java.api.exceptions.*; -import org.apache.plc4x.java.api.value.*; -import org.apache.plc4x.java.spi.codegen.*; -import org.apache.plc4x.java.spi.codegen.fields.*; -import org.apache.plc4x.java.spi.codegen.io.*; -import org.apache.plc4x.java.spi.generation.*; - -// Code generated by code-generation. DO NOT EDIT. - -public class BacnetConstants implements Message { - - // Constant values. - public static final Integer BACNETUDPDEFAULTPORT = 47808; - - public BacnetConstants() { - super(); - } - - public int getBacnetUdpDefaultPort() { - return BACNETUDPDEFAULTPORT; - } - - public void serialize(WriteBuffer writeBuffer) throws SerializationException { - PositionAware positionAware = writeBuffer; - boolean _lastItem = ThreadLocalHelper.lastItemThreadLocal.get(); - writeBuffer.pushContext("BacnetConstants"); - - // Const Field (bacnetUdpDefaultPort) - writeConstField( - "bacnetUdpDefaultPort", BACNETUDPDEFAULTPORT, writeUnsignedInt(writeBuffer, 16)); - - writeBuffer.popContext("BacnetConstants"); - } - - @Override - public int getLengthInBytes() { - return (int) Math.ceil((float) getLengthInBits() / 8.0); - } - - @Override - public int getLengthInBits() { - int lengthInBits = 0; - BacnetConstants _value = this; - boolean _lastItem = ThreadLocalHelper.lastItemThreadLocal.get(); - - // Const Field (bacnetUdpDefaultPort) - lengthInBits += 16; - - return lengthInBits; - } - - public static BacnetConstants staticParse(ReadBuffer readBuffer) throws ParseException { - readBuffer.pullContext("BacnetConstants"); - PositionAware positionAware = readBuffer; - boolean _lastItem = ThreadLocalHelper.lastItemThreadLocal.get(); - - int bacnetUdpDefaultPort = - readConstField( - "bacnetUdpDefaultPort", - readUnsignedInt(readBuffer, 16), - BacnetConstants.BACNETUDPDEFAULTPORT); - - readBuffer.closeContext("BacnetConstants"); - // Create the instance - BacnetConstants _bacnetConstants; - _bacnetConstants = new BacnetConstants(); - return _bacnetConstants; - } - - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (!(o instanceof BacnetConstants)) { - return false; - } - BacnetConstants that = (BacnetConstants) o; - return true; - } - - @Override - public int hashCode() { - return Objects.hash(); - } - - @Override - public String toString() { - WriteBufferBoxBased writeBufferBoxBased = new WriteBufferBoxBased(true, true); - try { - writeBufferBoxBased.writeSerializable(this); - } catch (SerializationException e) { - throw new RuntimeException(e); - } - return "\n" + writeBufferBoxBased.getBox().toString() + "\n"; - } -} diff --git a/plc4j/drivers/bacnet/src/main/generated/org/apache/plc4x/java/bacnetip/readwrite/Constants.java b/plc4j/drivers/bacnet/src/main/generated/org/apache/plc4x/java/bacnetip/readwrite/Constants.java new file mode 100644 index 0000000000..211f7c1009 --- /dev/null +++ b/plc4j/drivers/bacnet/src/main/generated/org/apache/plc4x/java/bacnetip/readwrite/Constants.java @@ -0,0 +1,42 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.plc4x.java.bacnetip.readwrite; + +import static org.apache.plc4x.java.spi.codegen.fields.FieldReaderFactory.*; +import static org.apache.plc4x.java.spi.codegen.fields.FieldWriterFactory.*; +import static org.apache.plc4x.java.spi.codegen.io.DataReaderFactory.*; +import static org.apache.plc4x.java.spi.codegen.io.DataWriterFactory.*; +import static org.apache.plc4x.java.spi.generation.StaticHelper.*; + +import java.time.*; +import java.util.*; +import org.apache.plc4x.java.api.exceptions.*; +import org.apache.plc4x.java.api.value.*; +import org.apache.plc4x.java.spi.codegen.*; +import org.apache.plc4x.java.spi.codegen.fields.*; +import org.apache.plc4x.java.spi.codegen.io.*; +import org.apache.plc4x.java.spi.generation.*; + +// Code generated by code-generation. DO NOT EDIT. + +public class Constants { + + // Constant values. + public static final Integer BACNETUDPDEFAULTPORT = 47808; +} diff --git a/plc4j/drivers/bacnet/src/main/java/org/apache/plc4x/java/bacnetip/configuration/BacNetPcapReplayTransportConfiguration.java b/plc4j/drivers/bacnet/src/main/java/org/apache/plc4x/java/bacnetip/configuration/BacNetPcapReplayTransportConfiguration.java index 62a65487c6..36bfad13be 100644 --- a/plc4j/drivers/bacnet/src/main/java/org/apache/plc4x/java/bacnetip/configuration/BacNetPcapReplayTransportConfiguration.java +++ b/plc4j/drivers/bacnet/src/main/java/org/apache/plc4x/java/bacnetip/configuration/BacNetPcapReplayTransportConfiguration.java @@ -19,7 +19,7 @@ package org.apache.plc4x.java.bacnetip.configuration; -import org.apache.plc4x.java.bacnetip.readwrite.BacnetConstants; +import org.apache.plc4x.java.bacnetip.readwrite.Constants; import org.apache.plc4x.java.spi.configuration.annotations.ConfigurationParameter; import org.apache.plc4x.java.spi.configuration.annotations.Description; import org.apache.plc4x.java.spi.configuration.annotations.defaults.BooleanDefaultValue; @@ -45,7 +45,7 @@ public class BacNetPcapReplayTransportConfiguration extends DefaultPcapReplayTra @Override public int getDefaultPort() { - return BacnetConstants.BACNETUDPDEFAULTPORT; + return Constants.BACNETUDPDEFAULTPORT; } /** diff --git a/plc4j/drivers/bacnet/src/main/java/org/apache/plc4x/java/bacnetip/configuration/BacNetRawSocketTransportConfiguration.java b/plc4j/drivers/bacnet/src/main/java/org/apache/plc4x/java/bacnetip/configuration/BacNetRawSocketTransportConfiguration.java index 7f34273239..5922ea7845 100644 --- a/plc4j/drivers/bacnet/src/main/java/org/apache/plc4x/java/bacnetip/configuration/BacNetRawSocketTransportConfiguration.java +++ b/plc4j/drivers/bacnet/src/main/java/org/apache/plc4x/java/bacnetip/configuration/BacNetRawSocketTransportConfiguration.java @@ -19,7 +19,7 @@ package org.apache.plc4x.java.bacnetip.configuration; -import org.apache.plc4x.java.bacnetip.readwrite.BacnetConstants; +import org.apache.plc4x.java.bacnetip.readwrite.Constants; import org.apache.plc4x.java.spi.configuration.annotations.ConfigurationParameter; import org.apache.plc4x.java.spi.configuration.annotations.Description; import org.apache.plc4x.java.spi.configuration.annotations.defaults.BooleanDefaultValue; @@ -45,7 +45,7 @@ public class BacNetRawSocketTransportConfiguration extends DefaultRawSocketTrans @Override public int getDefaultPort() { - return BacnetConstants.BACNETUDPDEFAULTPORT; + return Constants.BACNETUDPDEFAULTPORT; } /** diff --git a/plc4j/drivers/bacnet/src/main/java/org/apache/plc4x/java/bacnetip/configuration/BacNetUdpTransportConfiguration.java b/plc4j/drivers/bacnet/src/main/java/org/apache/plc4x/java/bacnetip/configuration/BacNetUdpTransportConfiguration.java index e8692e3cfb..9e059bc0f2 100644 --- a/plc4j/drivers/bacnet/src/main/java/org/apache/plc4x/java/bacnetip/configuration/BacNetUdpTransportConfiguration.java +++ b/plc4j/drivers/bacnet/src/main/java/org/apache/plc4x/java/bacnetip/configuration/BacNetUdpTransportConfiguration.java @@ -19,14 +19,14 @@ package org.apache.plc4x.java.bacnetip.configuration; -import org.apache.plc4x.java.bacnetip.readwrite.BacnetConstants; +import org.apache.plc4x.java.bacnetip.readwrite.Constants; import org.apache.plc4x.java.transport.udp.DefaultUdpTransportConfiguration; public class BacNetUdpTransportConfiguration extends DefaultUdpTransportConfiguration { @Override public int getDefaultPort() { - return BacnetConstants.BACNETUDPDEFAULTPORT; + return Constants.BACNETUDPDEFAULTPORT; } } diff --git a/plc4j/drivers/c-bus/src/main/generated/org/apache/plc4x/java/cbus/readwrite/CBusConstants.java b/plc4j/drivers/c-bus/src/main/generated/org/apache/plc4x/java/cbus/readwrite/CBusConstants.java deleted file mode 100644 index 776bbf504d..0000000000 --- a/plc4j/drivers/c-bus/src/main/generated/org/apache/plc4x/java/cbus/readwrite/CBusConstants.java +++ /dev/null @@ -1,124 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.apache.plc4x.java.cbus.readwrite; - -import static org.apache.plc4x.java.spi.codegen.fields.FieldReaderFactory.*; -import static org.apache.plc4x.java.spi.codegen.fields.FieldWriterFactory.*; -import static org.apache.plc4x.java.spi.codegen.io.DataReaderFactory.*; -import static org.apache.plc4x.java.spi.codegen.io.DataWriterFactory.*; -import static org.apache.plc4x.java.spi.generation.StaticHelper.*; - -import java.time.*; -import java.util.*; -import org.apache.plc4x.java.api.exceptions.*; -import org.apache.plc4x.java.api.value.*; -import org.apache.plc4x.java.spi.codegen.*; -import org.apache.plc4x.java.spi.codegen.fields.*; -import org.apache.plc4x.java.spi.codegen.io.*; -import org.apache.plc4x.java.spi.generation.*; - -// Code generated by code-generation. DO NOT EDIT. - -public class CBusConstants implements Message { - - // Constant values. - public static final Integer CBUSTCPDEFAULTPORT = 10001; - - public CBusConstants() { - super(); - } - - public int getCbusTcpDefaultPort() { - return CBUSTCPDEFAULTPORT; - } - - public void serialize(WriteBuffer writeBuffer) throws SerializationException { - PositionAware positionAware = writeBuffer; - boolean _lastItem = ThreadLocalHelper.lastItemThreadLocal.get(); - writeBuffer.pushContext("CBusConstants"); - - // Const Field (cbusTcpDefaultPort) - writeConstField("cbusTcpDefaultPort", CBUSTCPDEFAULTPORT, writeUnsignedInt(writeBuffer, 16)); - - writeBuffer.popContext("CBusConstants"); - } - - @Override - public int getLengthInBytes() { - return (int) Math.ceil((float) getLengthInBits() / 8.0); - } - - @Override - public int getLengthInBits() { - int lengthInBits = 0; - CBusConstants _value = this; - boolean _lastItem = ThreadLocalHelper.lastItemThreadLocal.get(); - - // Const Field (cbusTcpDefaultPort) - lengthInBits += 16; - - return lengthInBits; - } - - public static CBusConstants staticParse(ReadBuffer readBuffer) throws ParseException { - readBuffer.pullContext("CBusConstants"); - PositionAware positionAware = readBuffer; - boolean _lastItem = ThreadLocalHelper.lastItemThreadLocal.get(); - - int cbusTcpDefaultPort = - readConstField( - "cbusTcpDefaultPort", - readUnsignedInt(readBuffer, 16), - CBusConstants.CBUSTCPDEFAULTPORT); - - readBuffer.closeContext("CBusConstants"); - // Create the instance - CBusConstants _cBusConstants; - _cBusConstants = new CBusConstants(); - return _cBusConstants; - } - - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (!(o instanceof CBusConstants)) { - return false; - } - CBusConstants that = (CBusConstants) o; - return true; - } - - @Override - public int hashCode() { - return Objects.hash(); - } - - @Override - public String toString() { - WriteBufferBoxBased writeBufferBoxBased = new WriteBufferBoxBased(true, true); - try { - writeBufferBoxBased.writeSerializable(this); - } catch (SerializationException e) { - throw new RuntimeException(e); - } - return "\n" + writeBufferBoxBased.getBox().toString() + "\n"; - } -} diff --git a/plc4j/drivers/c-bus/src/main/generated/org/apache/plc4x/java/cbus/readwrite/Constants.java b/plc4j/drivers/c-bus/src/main/generated/org/apache/plc4x/java/cbus/readwrite/Constants.java new file mode 100644 index 0000000000..9a52c1706c --- /dev/null +++ b/plc4j/drivers/c-bus/src/main/generated/org/apache/plc4x/java/cbus/readwrite/Constants.java @@ -0,0 +1,42 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.plc4x.java.cbus.readwrite; + +import static org.apache.plc4x.java.spi.codegen.fields.FieldReaderFactory.*; +import static org.apache.plc4x.java.spi.codegen.fields.FieldWriterFactory.*; +import static org.apache.plc4x.java.spi.codegen.io.DataReaderFactory.*; +import static org.apache.plc4x.java.spi.codegen.io.DataWriterFactory.*; +import static org.apache.plc4x.java.spi.generation.StaticHelper.*; + +import java.time.*; +import java.util.*; +import org.apache.plc4x.java.api.exceptions.*; +import org.apache.plc4x.java.api.value.*; +import org.apache.plc4x.java.spi.codegen.*; +import org.apache.plc4x.java.spi.codegen.fields.*; +import org.apache.plc4x.java.spi.codegen.io.*; +import org.apache.plc4x.java.spi.generation.*; + +// Code generated by code-generation. DO NOT EDIT. + +public class Constants { + + // Constant values. + public static final Integer CBUSTCPDEFAULTPORT = 10001; +} diff --git a/plc4j/drivers/c-bus/src/main/java/org/apache/plc4x/java/cbus/configuration/CBusTcpTransportConfiguration.java b/plc4j/drivers/c-bus/src/main/java/org/apache/plc4x/java/cbus/configuration/CBusTcpTransportConfiguration.java index b7af063213..125eb28da6 100644 --- a/plc4j/drivers/c-bus/src/main/java/org/apache/plc4x/java/cbus/configuration/CBusTcpTransportConfiguration.java +++ b/plc4j/drivers/c-bus/src/main/java/org/apache/plc4x/java/cbus/configuration/CBusTcpTransportConfiguration.java @@ -19,14 +19,14 @@ package org.apache.plc4x.java.cbus.configuration; -import org.apache.plc4x.java.cbus.readwrite.CBusConstants; +import org.apache.plc4x.java.cbus.readwrite.Constants; import org.apache.plc4x.java.transport.tcp.DefaultTcpTransportConfiguration; public class CBusTcpTransportConfiguration extends DefaultTcpTransportConfiguration { @Override public int getDefaultPort() { - return CBusConstants.CBUSTCPDEFAULTPORT; + return Constants.CBUSTCPDEFAULTPORT; } } diff --git a/plc4j/drivers/eip/src/main/generated/org/apache/plc4x/java/eip/readwrite/Constants.java b/plc4j/drivers/eip/src/main/generated/org/apache/plc4x/java/eip/readwrite/Constants.java new file mode 100644 index 0000000000..d75719b001 --- /dev/null +++ b/plc4j/drivers/eip/src/main/generated/org/apache/plc4x/java/eip/readwrite/Constants.java @@ -0,0 +1,43 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.plc4x.java.eip.readwrite; + +import static org.apache.plc4x.java.spi.codegen.fields.FieldReaderFactory.*; +import static org.apache.plc4x.java.spi.codegen.fields.FieldWriterFactory.*; +import static org.apache.plc4x.java.spi.codegen.io.DataReaderFactory.*; +import static org.apache.plc4x.java.spi.codegen.io.DataWriterFactory.*; +import static org.apache.plc4x.java.spi.generation.StaticHelper.*; + +import java.time.*; +import java.util.*; +import org.apache.plc4x.java.api.exceptions.*; +import org.apache.plc4x.java.api.value.*; +import org.apache.plc4x.java.spi.codegen.*; +import org.apache.plc4x.java.spi.codegen.fields.*; +import org.apache.plc4x.java.spi.codegen.io.*; +import org.apache.plc4x.java.spi.generation.*; + +// Code generated by code-generation. DO NOT EDIT. + +public class Constants { + + // Constant values. + public static final Integer EIPUDPDISCOVERYDEFAULTPORT = 44818; + public static final Integer EIPTCPDEFAULTPORT = 44818; +} diff --git a/plc4j/drivers/eip/src/main/generated/org/apache/plc4x/java/eip/readwrite/EipConstants.java b/plc4j/drivers/eip/src/main/generated/org/apache/plc4x/java/eip/readwrite/EipConstants.java deleted file mode 100644 index 1f4ee4f1ff..0000000000 --- a/plc4j/drivers/eip/src/main/generated/org/apache/plc4x/java/eip/readwrite/EipConstants.java +++ /dev/null @@ -1,142 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.apache.plc4x.java.eip.readwrite; - -import static org.apache.plc4x.java.spi.codegen.fields.FieldReaderFactory.*; -import static org.apache.plc4x.java.spi.codegen.fields.FieldWriterFactory.*; -import static org.apache.plc4x.java.spi.codegen.io.DataReaderFactory.*; -import static org.apache.plc4x.java.spi.codegen.io.DataWriterFactory.*; -import static org.apache.plc4x.java.spi.generation.StaticHelper.*; - -import java.time.*; -import java.util.*; -import org.apache.plc4x.java.api.exceptions.*; -import org.apache.plc4x.java.api.value.*; -import org.apache.plc4x.java.spi.codegen.*; -import org.apache.plc4x.java.spi.codegen.fields.*; -import org.apache.plc4x.java.spi.codegen.io.*; -import org.apache.plc4x.java.spi.generation.*; - -// Code generated by code-generation. DO NOT EDIT. - -public class EipConstants implements Message { - - // Constant values. - public static final Integer EIPUDPDISCOVERYDEFAULTPORT = 44818; - public static final Integer EIPTCPDEFAULTPORT = 44818; - - public EipConstants() { - super(); - } - - public int getEipUdpDiscoveryDefaultPort() { - return EIPUDPDISCOVERYDEFAULTPORT; - } - - public int getEipTcpDefaultPort() { - return EIPTCPDEFAULTPORT; - } - - public void serialize(WriteBuffer writeBuffer) throws SerializationException { - PositionAware positionAware = writeBuffer; - boolean _lastItem = ThreadLocalHelper.lastItemThreadLocal.get(); - writeBuffer.pushContext("EipConstants"); - - // Const Field (eipUdpDiscoveryDefaultPort) - writeConstField( - "eipUdpDiscoveryDefaultPort", - EIPUDPDISCOVERYDEFAULTPORT, - writeUnsignedInt(writeBuffer, 16)); - - // Const Field (eipTcpDefaultPort) - writeConstField("eipTcpDefaultPort", EIPTCPDEFAULTPORT, writeUnsignedInt(writeBuffer, 16)); - - writeBuffer.popContext("EipConstants"); - } - - @Override - public int getLengthInBytes() { - return (int) Math.ceil((float) getLengthInBits() / 8.0); - } - - @Override - public int getLengthInBits() { - int lengthInBits = 0; - EipConstants _value = this; - boolean _lastItem = ThreadLocalHelper.lastItemThreadLocal.get(); - - // Const Field (eipUdpDiscoveryDefaultPort) - lengthInBits += 16; - - // Const Field (eipTcpDefaultPort) - lengthInBits += 16; - - return lengthInBits; - } - - public static EipConstants staticParse(ReadBuffer readBuffer) throws ParseException { - readBuffer.pullContext("EipConstants"); - PositionAware positionAware = readBuffer; - boolean _lastItem = ThreadLocalHelper.lastItemThreadLocal.get(); - - int eipUdpDiscoveryDefaultPort = - readConstField( - "eipUdpDiscoveryDefaultPort", - readUnsignedInt(readBuffer, 16), - EipConstants.EIPUDPDISCOVERYDEFAULTPORT); - - int eipTcpDefaultPort = - readConstField( - "eipTcpDefaultPort", readUnsignedInt(readBuffer, 16), EipConstants.EIPTCPDEFAULTPORT); - - readBuffer.closeContext("EipConstants"); - // Create the instance - EipConstants _eipConstants; - _eipConstants = new EipConstants(); - return _eipConstants; - } - - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (!(o instanceof EipConstants)) { - return false; - } - EipConstants that = (EipConstants) o; - return true; - } - - @Override - public int hashCode() { - return Objects.hash(); - } - - @Override - public String toString() { - WriteBufferBoxBased writeBufferBoxBased = new WriteBufferBoxBased(true, true); - try { - writeBufferBoxBased.writeSerializable(this); - } catch (SerializationException e) { - throw new RuntimeException(e); - } - return "\n" + writeBufferBoxBased.getBox().toString() + "\n"; - } -} diff --git a/plc4j/drivers/eip/src/main/java/org/apache/plc4x/java/eip/base/discovery/EipPlcDiscoverer.java b/plc4j/drivers/eip/src/main/java/org/apache/plc4x/java/eip/base/discovery/EipPlcDiscoverer.java index a4a0f20d15..e08ccee43d 100644 --- a/plc4j/drivers/eip/src/main/java/org/apache/plc4x/java/eip/base/discovery/EipPlcDiscoverer.java +++ b/plc4j/drivers/eip/src/main/java/org/apache/plc4x/java/eip/base/discovery/EipPlcDiscoverer.java @@ -60,7 +60,7 @@ public class EipPlcDiscoverer implements PlcDiscoverer { if ((interfaceAddress.getBroadcast() != null) && (interfaceAddress.getAddress() instanceof Inet4Address)) { Inet4Address inet4Address = (Inet4Address) interfaceAddress.getAddress(); // Open a listening socket on the AMS discovery default port for taking in responses. - DatagramSocket discoverySocket = new DatagramSocket(EipConstants.EIPUDPDISCOVERYDEFAULTPORT, inet4Address); + DatagramSocket discoverySocket = new DatagramSocket(Constants.EIPUDPDISCOVERYDEFAULTPORT, inet4Address); discoverySocket.setBroadcast(true); openSockets.add(discoverySocket); @@ -89,7 +89,7 @@ public class EipPlcDiscoverer implements PlcDiscoverer { // Add an entry to the results. PlcDiscoveryItem plcDiscoveryItem = new DefaultPlcDiscoveryItem( "eip", "tcp", - plcAddress.getHostAddress() + ":" + EipConstants.EIPTCPDEFAULTPORT, + plcAddress.getHostAddress() + ":" + Constants.EIPTCPDEFAULTPORT, Collections.emptyMap(), identityItem.getProductName(), Collections.emptyMap()); // If we've got an explicit handler, pass the new item to that. @@ -131,7 +131,7 @@ public class EipPlcDiscoverer implements PlcDiscoverer { InetAddress broadcastAddress = interfaceAddress.getBroadcast(); // Create the UDP packet to the broadcast address. - DatagramPacket discoveryRequestPacket = new DatagramPacket(writeBuffer.getBytes(), writeBuffer.getBytes().length, broadcastAddress, EipConstants.EIPUDPDISCOVERYDEFAULTPORT); + DatagramPacket discoveryRequestPacket = new DatagramPacket(writeBuffer.getBytes(), writeBuffer.getBytes().length, broadcastAddress, Constants.EIPUDPDISCOVERYDEFAULTPORT); discoverySocket.send(discoveryRequestPacket); } catch (SerializationException e) { logger.error("Error serializing EIP discovery request", e); diff --git a/plc4j/drivers/iec-60870/src/main/generated/org/apache/plc4x/java/iec608705104/readwrite/Constants.java b/plc4j/drivers/iec-60870/src/main/generated/org/apache/plc4x/java/iec608705104/readwrite/Constants.java new file mode 100644 index 0000000000..7b5d5ff43d --- /dev/null +++ b/plc4j/drivers/iec-60870/src/main/generated/org/apache/plc4x/java/iec608705104/readwrite/Constants.java @@ -0,0 +1,42 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.plc4x.java.iec608705104.readwrite; + +import static org.apache.plc4x.java.spi.codegen.fields.FieldReaderFactory.*; +import static org.apache.plc4x.java.spi.codegen.fields.FieldWriterFactory.*; +import static org.apache.plc4x.java.spi.codegen.io.DataReaderFactory.*; +import static org.apache.plc4x.java.spi.codegen.io.DataWriterFactory.*; +import static org.apache.plc4x.java.spi.generation.StaticHelper.*; + +import java.time.*; +import java.util.*; +import org.apache.plc4x.java.api.exceptions.*; +import org.apache.plc4x.java.api.value.*; +import org.apache.plc4x.java.spi.codegen.*; +import org.apache.plc4x.java.spi.codegen.fields.*; +import org.apache.plc4x.java.spi.codegen.io.*; +import org.apache.plc4x.java.spi.generation.*; + +// Code generated by code-generation. DO NOT EDIT. + +public class Constants { + + // Constant values. + public static final Integer DEFAULTPORT = 2404; +} diff --git a/plc4j/drivers/iec-60870/src/main/generated/org/apache/plc4x/java/iec608705104/readwrite/IEC608705104Constants.java b/plc4j/drivers/iec-60870/src/main/generated/org/apache/plc4x/java/iec608705104/readwrite/IEC608705104Constants.java deleted file mode 100644 index c69fdace61..0000000000 --- a/plc4j/drivers/iec-60870/src/main/generated/org/apache/plc4x/java/iec608705104/readwrite/IEC608705104Constants.java +++ /dev/null @@ -1,122 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.apache.plc4x.java.iec608705104.readwrite; - -import static org.apache.plc4x.java.spi.codegen.fields.FieldReaderFactory.*; -import static org.apache.plc4x.java.spi.codegen.fields.FieldWriterFactory.*; -import static org.apache.plc4x.java.spi.codegen.io.DataReaderFactory.*; -import static org.apache.plc4x.java.spi.codegen.io.DataWriterFactory.*; -import static org.apache.plc4x.java.spi.generation.StaticHelper.*; - -import java.time.*; -import java.util.*; -import org.apache.plc4x.java.api.exceptions.*; -import org.apache.plc4x.java.api.value.*; -import org.apache.plc4x.java.spi.codegen.*; -import org.apache.plc4x.java.spi.codegen.fields.*; -import org.apache.plc4x.java.spi.codegen.io.*; -import org.apache.plc4x.java.spi.generation.*; - -// Code generated by code-generation. DO NOT EDIT. - -public class IEC608705104Constants implements Message { - - // Constant values. - public static final Integer DEFAULTPORT = 2404; - - public IEC608705104Constants() { - super(); - } - - public int getDefaultPort() { - return DEFAULTPORT; - } - - public void serialize(WriteBuffer writeBuffer) throws SerializationException { - PositionAware positionAware = writeBuffer; - boolean _lastItem = ThreadLocalHelper.lastItemThreadLocal.get(); - writeBuffer.pushContext("IEC608705104Constants"); - - // Const Field (defaultPort) - writeConstField("defaultPort", DEFAULTPORT, writeUnsignedInt(writeBuffer, 16)); - - writeBuffer.popContext("IEC608705104Constants"); - } - - @Override - public int getLengthInBytes() { - return (int) Math.ceil((float) getLengthInBits() / 8.0); - } - - @Override - public int getLengthInBits() { - int lengthInBits = 0; - IEC608705104Constants _value = this; - boolean _lastItem = ThreadLocalHelper.lastItemThreadLocal.get(); - - // Const Field (defaultPort) - lengthInBits += 16; - - return lengthInBits; - } - - public static IEC608705104Constants staticParse(ReadBuffer readBuffer) throws ParseException { - readBuffer.pullContext("IEC608705104Constants"); - PositionAware positionAware = readBuffer; - boolean _lastItem = ThreadLocalHelper.lastItemThreadLocal.get(); - - int defaultPort = - readConstField( - "defaultPort", readUnsignedInt(readBuffer, 16), IEC608705104Constants.DEFAULTPORT); - - readBuffer.closeContext("IEC608705104Constants"); - // Create the instance - IEC608705104Constants _iEC608705104Constants; - _iEC608705104Constants = new IEC608705104Constants(); - return _iEC608705104Constants; - } - - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (!(o instanceof IEC608705104Constants)) { - return false; - } - IEC608705104Constants that = (IEC608705104Constants) o; - return true; - } - - @Override - public int hashCode() { - return Objects.hash(); - } - - @Override - public String toString() { - WriteBufferBoxBased writeBufferBoxBased = new WriteBufferBoxBased(true, true); - try { - writeBufferBoxBased.writeSerializable(this); - } catch (SerializationException e) { - throw new RuntimeException(e); - } - return "\n" + writeBufferBoxBased.getBox().toString() + "\n"; - } -} diff --git a/plc4j/drivers/iec-60870/src/main/java/org/apache/plc4x/java/iec608705104/readwrite/configuration/Iec608705014TcpTransportConfiguration.java b/plc4j/drivers/iec-60870/src/main/java/org/apache/plc4x/java/iec608705104/readwrite/configuration/Iec608705014TcpTransportConfiguration.java index 1dc4bcd39c..14015f7389 100644 --- a/plc4j/drivers/iec-60870/src/main/java/org/apache/plc4x/java/iec608705104/readwrite/configuration/Iec608705014TcpTransportConfiguration.java +++ b/plc4j/drivers/iec-60870/src/main/java/org/apache/plc4x/java/iec608705104/readwrite/configuration/Iec608705014TcpTransportConfiguration.java @@ -19,14 +19,14 @@ package org.apache.plc4x.java.iec608705104.readwrite.configuration; -import org.apache.plc4x.java.iec608705104.readwrite.IEC608705104Constants; +import org.apache.plc4x.java.iec608705104.readwrite.Constants; import org.apache.plc4x.java.transport.tcp.DefaultTcpTransportConfiguration; public class Iec608705014TcpTransportConfiguration extends DefaultTcpTransportConfiguration { @Override public int getDefaultPort() { - return IEC608705104Constants.DEFAULTPORT; + return Constants.DEFAULTPORT; } } diff --git a/plc4j/drivers/knxnetip/src/main/generated/org/apache/plc4x/java/knxnetip/readwrite/KnxManufacturer.java b/plc4j/drivers/knxnetip/src/main/generated/org/apache/plc4x/java/knxnetip/readwrite/KnxManufacturer.java index 9dfd4a0049..d92379b9d0 100644 --- a/plc4j/drivers/knxnetip/src/main/generated/org/apache/plc4x/java/knxnetip/readwrite/KnxManufacturer.java +++ b/plc4j/drivers/knxnetip/src/main/generated/org/apache/plc4x/java/knxnetip/readwrite/KnxManufacturer.java @@ -867,7 +867,7 @@ public enum KnxManufacturer { (int) 739, (int) 800, (String) "Hangzhou Konke Information Technology Co., Ltd."), M_SHANGHAI_FANTE_DIGITAL_TECHNOLOGY_CO___LTD( (int) 740, (int) 801, (String) "Shanghai Fante Digital Technology Co., Ltd"), - M_CONFIO((int) 741, (int) 802, (String) "CONFIO"), + M_CONFIO_TECHNOLOGIES_PVT__LTD((int) 741, (int) 802, (String) "Confio Technologies Pvt. Ltd"), M_SONIC_TECHNOLOGIES((int) 742, (int) 803, (String) "Sonic Technologies"), M_SHANGHAI_INNOVATECH_INFORMATION_TECHNOLOGY_CO___LT( (int) 743, (int) 804, (String) "Shanghai Innovatech Information Technology Co., Lt"), @@ -882,9 +882,13 @@ public enum KnxManufacturer { M_SHANGHAI_YUKON_AUTOMATION_TECHNOLOGIES_CO___LTD_( (int) 750, (int) 811, (String) "Shanghai YUKON Automation Technologies Co., Ltd."), M_TECCO_PTY_LTD((int) 751, (int) 812, (String) "Tecco Pty Ltd"), - M_ABB___RESERVED((int) 752, (int) 43954, (String) "ABB - reserved"), + M_A_LAN_TECHNOLOGIE((int) 752, (int) 813, (String) "A-LAN Technologie"), + M_VOLTAN_TECHNOLOGY((int) 753, (int) 814, (String) "Voltan Technology"), + M_BAERWINKEL_AND_STRASSER_GMBH((int) 754, (int) 815, (String) "Baerwinkel & Strasser GmbH"), + M_CATERLUX((int) 755, (int) 816, (String) "Caterlux"), + M_ABB___RESERVED((int) 756, (int) 43954, (String) "ABB - reserved"), M_BUSCH_JAEGER_ELEKTRO___RESERVED( - (int) 753, (int) 43959, (String) "Busch-Jaeger Elektro - reserved"); + (int) 757, (int) 43959, (String) "Busch-Jaeger Elektro - reserved"); private static final Map<Integer, KnxManufacturer> map; static { diff --git a/plc4j/drivers/modbus/src/main/generated/org/apache/plc4x/java/modbus/readwrite/Constants.java b/plc4j/drivers/modbus/src/main/generated/org/apache/plc4x/java/modbus/readwrite/Constants.java new file mode 100644 index 0000000000..24cd5b5012 --- /dev/null +++ b/plc4j/drivers/modbus/src/main/generated/org/apache/plc4x/java/modbus/readwrite/Constants.java @@ -0,0 +1,42 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.plc4x.java.modbus.readwrite; + +import static org.apache.plc4x.java.spi.codegen.fields.FieldReaderFactory.*; +import static org.apache.plc4x.java.spi.codegen.fields.FieldWriterFactory.*; +import static org.apache.plc4x.java.spi.codegen.io.DataReaderFactory.*; +import static org.apache.plc4x.java.spi.codegen.io.DataWriterFactory.*; +import static org.apache.plc4x.java.spi.generation.StaticHelper.*; + +import java.time.*; +import java.util.*; +import org.apache.plc4x.java.api.exceptions.*; +import org.apache.plc4x.java.api.value.*; +import org.apache.plc4x.java.spi.codegen.*; +import org.apache.plc4x.java.spi.codegen.fields.*; +import org.apache.plc4x.java.spi.codegen.io.*; +import org.apache.plc4x.java.spi.generation.*; + +// Code generated by code-generation. DO NOT EDIT. + +public class Constants { + + // Constant values. + public static final Integer MODBUSTCPDEFAULTPORT = 502; +} diff --git a/plc4j/drivers/modbus/src/main/generated/org/apache/plc4x/java/modbus/readwrite/ModbusConstants.java b/plc4j/drivers/modbus/src/main/generated/org/apache/plc4x/java/modbus/readwrite/ModbusConstants.java deleted file mode 100644 index 0deb0866cd..0000000000 --- a/plc4j/drivers/modbus/src/main/generated/org/apache/plc4x/java/modbus/readwrite/ModbusConstants.java +++ /dev/null @@ -1,125 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.apache.plc4x.java.modbus.readwrite; - -import static org.apache.plc4x.java.spi.codegen.fields.FieldReaderFactory.*; -import static org.apache.plc4x.java.spi.codegen.fields.FieldWriterFactory.*; -import static org.apache.plc4x.java.spi.codegen.io.DataReaderFactory.*; -import static org.apache.plc4x.java.spi.codegen.io.DataWriterFactory.*; -import static org.apache.plc4x.java.spi.generation.StaticHelper.*; - -import java.time.*; -import java.util.*; -import org.apache.plc4x.java.api.exceptions.*; -import org.apache.plc4x.java.api.value.*; -import org.apache.plc4x.java.spi.codegen.*; -import org.apache.plc4x.java.spi.codegen.fields.*; -import org.apache.plc4x.java.spi.codegen.io.*; -import org.apache.plc4x.java.spi.generation.*; - -// Code generated by code-generation. DO NOT EDIT. - -public class ModbusConstants implements Message { - - // Constant values. - public static final Integer MODBUSTCPDEFAULTPORT = 502; - - public ModbusConstants() { - super(); - } - - public int getModbusTcpDefaultPort() { - return MODBUSTCPDEFAULTPORT; - } - - public void serialize(WriteBuffer writeBuffer) throws SerializationException { - PositionAware positionAware = writeBuffer; - boolean _lastItem = ThreadLocalHelper.lastItemThreadLocal.get(); - writeBuffer.pushContext("ModbusConstants"); - - // Const Field (modbusTcpDefaultPort) - writeConstField( - "modbusTcpDefaultPort", MODBUSTCPDEFAULTPORT, writeUnsignedInt(writeBuffer, 16)); - - writeBuffer.popContext("ModbusConstants"); - } - - @Override - public int getLengthInBytes() { - return (int) Math.ceil((float) getLengthInBits() / 8.0); - } - - @Override - public int getLengthInBits() { - int lengthInBits = 0; - ModbusConstants _value = this; - boolean _lastItem = ThreadLocalHelper.lastItemThreadLocal.get(); - - // Const Field (modbusTcpDefaultPort) - lengthInBits += 16; - - return lengthInBits; - } - - public static ModbusConstants staticParse(ReadBuffer readBuffer) throws ParseException { - readBuffer.pullContext("ModbusConstants"); - PositionAware positionAware = readBuffer; - boolean _lastItem = ThreadLocalHelper.lastItemThreadLocal.get(); - - int modbusTcpDefaultPort = - readConstField( - "modbusTcpDefaultPort", - readUnsignedInt(readBuffer, 16), - ModbusConstants.MODBUSTCPDEFAULTPORT); - - readBuffer.closeContext("ModbusConstants"); - // Create the instance - ModbusConstants _modbusConstants; - _modbusConstants = new ModbusConstants(); - return _modbusConstants; - } - - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (!(o instanceof ModbusConstants)) { - return false; - } - ModbusConstants that = (ModbusConstants) o; - return true; - } - - @Override - public int hashCode() { - return Objects.hash(); - } - - @Override - public String toString() { - WriteBufferBoxBased writeBufferBoxBased = new WriteBufferBoxBased(true, true); - try { - writeBufferBoxBased.writeSerializable(this); - } catch (SerializationException e) { - throw new RuntimeException(e); - } - return "\n" + writeBufferBoxBased.getBox().toString() + "\n"; - } -} diff --git a/plc4j/drivers/modbus/src/main/java/org/apache/plc4x/java/modbus/tcp/config/ModbusTcpTransportConfiguration.java b/plc4j/drivers/modbus/src/main/java/org/apache/plc4x/java/modbus/tcp/config/ModbusTcpTransportConfiguration.java index 506680e9bc..cb49696b1f 100644 --- a/plc4j/drivers/modbus/src/main/java/org/apache/plc4x/java/modbus/tcp/config/ModbusTcpTransportConfiguration.java +++ b/plc4j/drivers/modbus/src/main/java/org/apache/plc4x/java/modbus/tcp/config/ModbusTcpTransportConfiguration.java @@ -19,14 +19,14 @@ package org.apache.plc4x.java.modbus.tcp.config; -import org.apache.plc4x.java.modbus.readwrite.ModbusConstants; +import org.apache.plc4x.java.modbus.readwrite.Constants; import org.apache.plc4x.java.transport.tcp.DefaultTcpTransportConfiguration; public class ModbusTcpTransportConfiguration extends DefaultTcpTransportConfiguration { @Override public int getDefaultPort() { - return ModbusConstants.MODBUSTCPDEFAULTPORT; + return Constants.MODBUSTCPDEFAULTPORT; } } diff --git a/plc4j/drivers/modbus/src/main/java/org/apache/plc4x/java/modbus/tcp/discovery/ModbusPlcDiscoverer.java b/plc4j/drivers/modbus/src/main/java/org/apache/plc4x/java/modbus/tcp/discovery/ModbusPlcDiscoverer.java index 2527acdb4d..2d12659f05 100644 --- a/plc4j/drivers/modbus/src/main/java/org/apache/plc4x/java/modbus/tcp/discovery/ModbusPlcDiscoverer.java +++ b/plc4j/drivers/modbus/src/main/java/org/apache/plc4x/java/modbus/tcp/discovery/ModbusPlcDiscoverer.java @@ -104,7 +104,7 @@ public class ModbusPlcDiscoverer implements PlcDiscoverer { try { logger.info("Trying address: {}", possibleAddress); // Try to get a connection to the given host and port. - Socket socket = new Socket(possibleAddress.getHostAddress(), ModbusConstants.MODBUSTCPDEFAULTPORT); + Socket socket = new Socket(possibleAddress.getHostAddress(), Constants.MODBUSTCPDEFAULTPORT); logger.info("Connected: {}", possibleAddress); diff --git a/plc4j/drivers/open-protocol/src/main/generated/org/apache/plc4x/java/openprotocol/readwrite/Constants.java b/plc4j/drivers/open-protocol/src/main/generated/org/apache/plc4x/java/openprotocol/readwrite/Constants.java index 1a0b1083e7..65a7e7b972 100644 --- a/plc4j/drivers/open-protocol/src/main/generated/org/apache/plc4x/java/openprotocol/readwrite/Constants.java +++ b/plc4j/drivers/open-protocol/src/main/generated/org/apache/plc4x/java/openprotocol/readwrite/Constants.java @@ -35,87 +35,8 @@ import org.apache.plc4x.java.spi.generation.*; // Code generated by code-generation. DO NOT EDIT. -public class Constants implements Message { +public class Constants { // Constant values. public static final Integer TCPDEFAULTPORT = 4545; - - public Constants() { - super(); - } - - public int getTcpDefaultPort() { - return TCPDEFAULTPORT; - } - - public void serialize(WriteBuffer writeBuffer) throws SerializationException { - PositionAware positionAware = writeBuffer; - boolean _lastItem = ThreadLocalHelper.lastItemThreadLocal.get(); - writeBuffer.pushContext("Constants"); - - // Const Field (tcpDefaultPort) - writeConstField("tcpDefaultPort", TCPDEFAULTPORT, writeUnsignedInt(writeBuffer, 16)); - - writeBuffer.popContext("Constants"); - } - - @Override - public int getLengthInBytes() { - return (int) Math.ceil((float) getLengthInBits() / 8.0); - } - - @Override - public int getLengthInBits() { - int lengthInBits = 0; - Constants _value = this; - boolean _lastItem = ThreadLocalHelper.lastItemThreadLocal.get(); - - // Const Field (tcpDefaultPort) - lengthInBits += 16; - - return lengthInBits; - } - - public static Constants staticParse(ReadBuffer readBuffer) throws ParseException { - readBuffer.pullContext("Constants"); - PositionAware positionAware = readBuffer; - boolean _lastItem = ThreadLocalHelper.lastItemThreadLocal.get(); - - int tcpDefaultPort = - readConstField("tcpDefaultPort", readUnsignedInt(readBuffer, 16), Constants.TCPDEFAULTPORT); - - readBuffer.closeContext("Constants"); - // Create the instance - Constants _constants; - _constants = new Constants(); - return _constants; - } - - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (!(o instanceof Constants)) { - return false; - } - Constants that = (Constants) o; - return true; - } - - @Override - public int hashCode() { - return Objects.hash(); - } - - @Override - public String toString() { - WriteBufferBoxBased writeBufferBoxBased = new WriteBufferBoxBased(true, true); - try { - writeBufferBoxBased.writeSerializable(this); - } catch (SerializationException e) { - throw new RuntimeException(e); - } - return "\n" + writeBufferBoxBased.getBox().toString() + "\n"; - } } diff --git a/plc4j/drivers/plc4x/src/main/generated/org/apache/plc4x/java/plc4x/readwrite/Constants.java b/plc4j/drivers/plc4x/src/main/generated/org/apache/plc4x/java/plc4x/readwrite/Constants.java new file mode 100644 index 0000000000..5d34f46aa4 --- /dev/null +++ b/plc4j/drivers/plc4x/src/main/generated/org/apache/plc4x/java/plc4x/readwrite/Constants.java @@ -0,0 +1,42 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.plc4x.java.plc4x.readwrite; + +import static org.apache.plc4x.java.spi.codegen.fields.FieldReaderFactory.*; +import static org.apache.plc4x.java.spi.codegen.fields.FieldWriterFactory.*; +import static org.apache.plc4x.java.spi.codegen.io.DataReaderFactory.*; +import static org.apache.plc4x.java.spi.codegen.io.DataWriterFactory.*; +import static org.apache.plc4x.java.spi.generation.StaticHelper.*; + +import java.time.*; +import java.util.*; +import org.apache.plc4x.java.api.exceptions.*; +import org.apache.plc4x.java.api.value.*; +import org.apache.plc4x.java.spi.codegen.*; +import org.apache.plc4x.java.spi.codegen.fields.*; +import org.apache.plc4x.java.spi.codegen.io.*; +import org.apache.plc4x.java.spi.generation.*; + +// Code generated by code-generation. DO NOT EDIT. + +public class Constants { + + // Constant values. + public static final Integer PLC4XTCPDEFAULTPORT = 59837; +} diff --git a/plc4j/drivers/plc4x/src/main/generated/org/apache/plc4x/java/plc4x/readwrite/Plc4xConstants.java b/plc4j/drivers/plc4x/src/main/generated/org/apache/plc4x/java/plc4x/readwrite/Plc4xConstants.java deleted file mode 100644 index 08bba8fc8a..0000000000 --- a/plc4j/drivers/plc4x/src/main/generated/org/apache/plc4x/java/plc4x/readwrite/Plc4xConstants.java +++ /dev/null @@ -1,124 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.apache.plc4x.java.plc4x.readwrite; - -import static org.apache.plc4x.java.spi.codegen.fields.FieldReaderFactory.*; -import static org.apache.plc4x.java.spi.codegen.fields.FieldWriterFactory.*; -import static org.apache.plc4x.java.spi.codegen.io.DataReaderFactory.*; -import static org.apache.plc4x.java.spi.codegen.io.DataWriterFactory.*; -import static org.apache.plc4x.java.spi.generation.StaticHelper.*; - -import java.time.*; -import java.util.*; -import org.apache.plc4x.java.api.exceptions.*; -import org.apache.plc4x.java.api.value.*; -import org.apache.plc4x.java.spi.codegen.*; -import org.apache.plc4x.java.spi.codegen.fields.*; -import org.apache.plc4x.java.spi.codegen.io.*; -import org.apache.plc4x.java.spi.generation.*; - -// Code generated by code-generation. DO NOT EDIT. - -public class Plc4xConstants implements Message { - - // Constant values. - public static final Integer PLC4XTCPDEFAULTPORT = 59837; - - public Plc4xConstants() { - super(); - } - - public int getPlc4xTcpDefaultPort() { - return PLC4XTCPDEFAULTPORT; - } - - public void serialize(WriteBuffer writeBuffer) throws SerializationException { - PositionAware positionAware = writeBuffer; - boolean _lastItem = ThreadLocalHelper.lastItemThreadLocal.get(); - writeBuffer.pushContext("Plc4xConstants"); - - // Const Field (plc4xTcpDefaultPort) - writeConstField("plc4xTcpDefaultPort", PLC4XTCPDEFAULTPORT, writeUnsignedInt(writeBuffer, 16)); - - writeBuffer.popContext("Plc4xConstants"); - } - - @Override - public int getLengthInBytes() { - return (int) Math.ceil((float) getLengthInBits() / 8.0); - } - - @Override - public int getLengthInBits() { - int lengthInBits = 0; - Plc4xConstants _value = this; - boolean _lastItem = ThreadLocalHelper.lastItemThreadLocal.get(); - - // Const Field (plc4xTcpDefaultPort) - lengthInBits += 16; - - return lengthInBits; - } - - public static Plc4xConstants staticParse(ReadBuffer readBuffer) throws ParseException { - readBuffer.pullContext("Plc4xConstants"); - PositionAware positionAware = readBuffer; - boolean _lastItem = ThreadLocalHelper.lastItemThreadLocal.get(); - - int plc4xTcpDefaultPort = - readConstField( - "plc4xTcpDefaultPort", - readUnsignedInt(readBuffer, 16), - Plc4xConstants.PLC4XTCPDEFAULTPORT); - - readBuffer.closeContext("Plc4xConstants"); - // Create the instance - Plc4xConstants _plc4xConstants; - _plc4xConstants = new Plc4xConstants(); - return _plc4xConstants; - } - - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (!(o instanceof Plc4xConstants)) { - return false; - } - Plc4xConstants that = (Plc4xConstants) o; - return true; - } - - @Override - public int hashCode() { - return Objects.hash(); - } - - @Override - public String toString() { - WriteBufferBoxBased writeBufferBoxBased = new WriteBufferBoxBased(true, true); - try { - writeBufferBoxBased.writeSerializable(this); - } catch (SerializationException e) { - throw new RuntimeException(e); - } - return "\n" + writeBufferBoxBased.getBox().toString() + "\n"; - } -} diff --git a/plc4j/drivers/plc4x/src/main/java/org/apache/plc4x/java/plc4x/config/Plc4xTcpTransportConfiguration.java b/plc4j/drivers/plc4x/src/main/java/org/apache/plc4x/java/plc4x/config/Plc4xTcpTransportConfiguration.java index fcfce6f01e..cb51004fab 100644 --- a/plc4j/drivers/plc4x/src/main/java/org/apache/plc4x/java/plc4x/config/Plc4xTcpTransportConfiguration.java +++ b/plc4j/drivers/plc4x/src/main/java/org/apache/plc4x/java/plc4x/config/Plc4xTcpTransportConfiguration.java @@ -19,14 +19,14 @@ package org.apache.plc4x.java.plc4x.config; -import org.apache.plc4x.java.plc4x.readwrite.Plc4xConstants; +import org.apache.plc4x.java.plc4x.readwrite.Constants; import org.apache.plc4x.java.transport.tcp.DefaultTcpTransportConfiguration; public class Plc4xTcpTransportConfiguration extends DefaultTcpTransportConfiguration { @Override public int getDefaultPort() { - return Plc4xConstants.PLC4XTCPDEFAULTPORT; + return Constants.PLC4XTCPDEFAULTPORT; } } diff --git a/plc4j/utils/plc-simulator/src/main/java/org/apache/plc4x/simulator/server/bacnet/BacnetServerModule.java b/plc4j/utils/plc-simulator/src/main/java/org/apache/plc4x/simulator/server/bacnet/BacnetServerModule.java index 6459a0c82b..a907a0fb74 100644 --- a/plc4j/utils/plc-simulator/src/main/java/org/apache/plc4x/simulator/server/bacnet/BacnetServerModule.java +++ b/plc4j/utils/plc-simulator/src/main/java/org/apache/plc4x/simulator/server/bacnet/BacnetServerModule.java @@ -32,7 +32,7 @@ import io.netty.handler.codec.MessageToMessageEncoder; import io.netty.util.concurrent.FastThreadLocal; import org.apache.plc4x.java.bacnetip.BacNetIpDriver; import org.apache.plc4x.java.bacnetip.readwrite.BVLC; -import org.apache.plc4x.java.bacnetip.readwrite.BacnetConstants; +import org.apache.plc4x.java.bacnetip.readwrite.Constants; import org.apache.plc4x.java.spi.connection.GeneratedProtocolMessageCodec; import org.apache.plc4x.java.spi.generation.ByteOrder; import org.apache.plc4x.simulator.PlcSimulatorConfig; @@ -109,7 +109,7 @@ public class BacnetServerModule implements ServerModule { } }); - int port = BacnetConstants.BACNETUDPDEFAULTPORT; + int port = Constants.BACNETUDPDEFAULTPORT; if (config.getCBusPort() != null) { port = Integer.parseInt(config.getCBusPort()); } diff --git a/plc4j/utils/plc-simulator/src/main/java/org/apache/plc4x/simulator/server/cbus/CBusServerModule.java b/plc4j/utils/plc-simulator/src/main/java/org/apache/plc4x/simulator/server/cbus/CBusServerModule.java index 1e6f8f02e2..94653a74b2 100644 --- a/plc4j/utils/plc-simulator/src/main/java/org/apache/plc4x/simulator/server/cbus/CBusServerModule.java +++ b/plc4j/utils/plc-simulator/src/main/java/org/apache/plc4x/simulator/server/cbus/CBusServerModule.java @@ -27,7 +27,7 @@ import io.netty.channel.nio.NioEventLoopGroup; import io.netty.channel.socket.SocketChannel; import io.netty.channel.socket.nio.NioServerSocketChannel; import org.apache.plc4x.java.cbus.CBusDriver; -import org.apache.plc4x.java.cbus.readwrite.CBusConstants; +import org.apache.plc4x.java.cbus.readwrite.Constants; import org.apache.plc4x.java.cbus.readwrite.CBusMessage; import org.apache.plc4x.java.cbus.readwrite.CBusOptions; import org.apache.plc4x.java.cbus.readwrite.RequestContext; @@ -95,7 +95,7 @@ public class CBusServerModule implements ServerModule { .option(ChannelOption.SO_BACKLOG, 128) .childOption(ChannelOption.SO_KEEPALIVE, true); - int port = CBusConstants.CBUSTCPDEFAULTPORT; + int port = Constants.CBUSTCPDEFAULTPORT; if (config.getCBusPort() != null) { port = Integer.parseInt(config.getCBusPort()); } diff --git a/pom.xml b/pom.xml index 5e8056ac53..a6725d1688 100644 --- a/pom.xml +++ b/pom.xml @@ -100,7 +100,7 @@ <sonar.cfamily.build-wrapper-output>${project.basedir}/plc4c/target/build-wrapper-output </sonar.cfamily.build-wrapper-output> - <plc4x-code-generation.version>1.8.0</plc4x-code-generation.version> + <plc4x-code-generation.version>1.9.0-SNAPSHOT</plc4x-code-generation.version> <antlr.version>4.13.2</antlr.version> <apiguardian.version>1.1.2</apiguardian.version> diff --git a/protocols/ads/src/main/resources/protocols/ads/ads-discovery.mspec b/protocols/ads/src/main/resources/protocols/ads/ads-discovery.mspec index a8bcb78dd3..010a8e862e 100644 --- a/protocols/ads/src/main/resources/protocols/ads/ads-discovery.mspec +++ b/protocols/ads/src/main/resources/protocols/ads/ads-discovery.mspec @@ -17,7 +17,7 @@ * under the License. */ -[type AdsDiscoveryConstants +[constants [const uint 16 adsDiscoveryUdpDefaultPort 48899] ] diff --git a/protocols/ads/src/main/resources/protocols/ads/ads.mspec b/protocols/ads/src/main/resources/protocols/ads/ads.mspec index 5835e7b690..109523320c 100644 --- a/protocols/ads/src/main/resources/protocols/ads/ads.mspec +++ b/protocols/ads/src/main/resources/protocols/ads/ads.mspec @@ -17,7 +17,7 @@ * under the License. */ -[type AdsConstants +[constants [const uint 16 adsTcpDefaultPort 48898] ] diff --git a/protocols/bacnetip/src/main/generated/protocols/bacnetip/bacnet-vendorids.mspec b/protocols/bacnetip/src/main/generated/protocols/bacnetip/bacnet-vendorids.mspec index 1cf6705cfa..6faad002cc 100644 --- a/protocols/bacnetip/src/main/generated/protocols/bacnetip/bacnet-vendorids.mspec +++ b/protocols/bacnetip/src/main/generated/protocols/bacnetip/bacnet-vendorids.mspec @@ -1571,6 +1571,13 @@ ['1557' ZAPHIREAS ['1557', '"Zaphire AS"']] ['1558' AJ_MANUFACTURING ['1558', '"AJ Manufacturing"']] ['1559' FUTURE_MOTORS_LTD ['1559', '"Future Motors Ltd."']] + ['1560' HIMEL_HONG_KONG_LIMITED ['1560', '"Himel Hong Kong Limited"']] + ['1561' SHENZHEN_SUNRICHER_TECHNOLOGY_CO_LTD ['1561', '"Shenzhen Sunricher Technology Co., Ltd."']] + ['1562' ACTILITYSA ['1562', '"Actility S.A."']] + ['1563' OY_HALTON_GROUP_LTD ['1563', '"Oy Halton Group Ltd."']] + ['1564' AVTECH_SOFTWARE_INC ['1564', '"AVTECH Software, Inc."']] + ['1565' IN_CONTROL_ENGINEERINGLLC ['1565', '"InControl Engineering LLC"']] + ['1566' SOUND_WATER_TECHNOLOGIESLLC ['1566', '"SoundWater Technologies LLC"']] ['0xFFFF' UNKNOWN_VENDOR ['0xFFFF', '"Unknown"']] ] diff --git a/protocols/bacnetip/src/main/resources/protocols/bacnetip/bacnet-tags.mspec b/protocols/bacnetip/src/main/resources/protocols/bacnetip/bacnet-tags.mspec index 9feddfe8fc..6af4bfdb8a 100644 --- a/protocols/bacnetip/src/main/resources/protocols/bacnetip/bacnet-tags.mspec +++ b/protocols/bacnetip/src/main/resources/protocols/bacnetip/bacnet-tags.mspec @@ -202,6 +202,8 @@ ] [type BACnetTagPayloadBoolean(uint 32 actualLength) + // TODO: example [state uint 32 actualLength] + // [state bit value 'actualLength == 1'] [virtual bit value 'actualLength == 1' ] [virtual bit isTrue 'value' ] [virtual bit isFalse '!value' ] diff --git a/protocols/bacnetip/src/main/resources/protocols/bacnetip/bacnetip.mspec b/protocols/bacnetip/src/main/resources/protocols/bacnetip/bacnetip.mspec index c9c81f9a60..48e926f985 100644 --- a/protocols/bacnetip/src/main/resources/protocols/bacnetip/bacnetip.mspec +++ b/protocols/bacnetip/src/main/resources/protocols/bacnetip/bacnetip.mspec @@ -17,7 +17,7 @@ * under the License. */ -[type BacnetConstants +[constants [const uint 16 bacnetUdpDefaultPort 47808] ] diff --git a/protocols/c-bus/src/main/resources/protocols/cbus/c-bus.mspec b/protocols/c-bus/src/main/resources/protocols/cbus/c-bus.mspec index 71e31493b8..93a67c920d 100644 --- a/protocols/c-bus/src/main/resources/protocols/cbus/c-bus.mspec +++ b/protocols/c-bus/src/main/resources/protocols/cbus/c-bus.mspec @@ -17,7 +17,7 @@ * under the License. */ -[type CBusConstants +[constants [const uint 16 cbusTcpDefaultPort 10001] ] @@ -25,6 +25,35 @@ // Useful for response parsing: Set this to true if you send a identify request before. This will change the way the response will be parsed [simple bit sendIdentifyRequestBefore ] ] +// TODO: idee +//[context +// Access via "context.sendIdentifyRequestBefore" +// // Useful for response parsing: Set this to true if you send a identify request before. This will change the way the response will be parsed +// [simple bit sendIdentifyRequestBefore ] +//] + +// TODO: we need global options that can be set +//[global +// Access via "global.srchk" +//// Defines that SAL messages can occur at any time +//[simple bit connect] +//// Disable echo of characters. When used with connect SAL have a long option. Select long from of most CAL replies +//[simple bit smart ] +//// only works with smart. Select long form of CAL messages +//[simple bit idmon ] +//// useful with smart. Select long form, extended format for all monitored and initiated status requests +//[simple bit exstat ] +//// monitors all traffic for status requests. Status requests will be returned as CAL. Replies are modified by exstat. Usually used in conjunction with connect. +//[simple bit monitor] +//// Same as connect. In addition it will return remote network SAL +//[simple bit monall ] +//// Serial interface will emit a power up notification +//[simple bit pun ] +//// causes parameter change notifications to be emitted. +//[simple bit pcn ] +//// enabled the checksum checks +//[simple bit srchk ] +//] [type CBusOptions // Defines that SAL messages can occur at any time diff --git a/protocols/eip/src/main/resources/protocols/eip/eip.mspec b/protocols/eip/src/main/resources/protocols/eip/eip.mspec index da2c40ba01..c252c45bf8 100644 --- a/protocols/eip/src/main/resources/protocols/eip/eip.mspec +++ b/protocols/eip/src/main/resources/protocols/eip/eip.mspec @@ -17,7 +17,7 @@ * under the License. */ - [type EipConstants + [constants [const uint 16 eipUdpDiscoveryDefaultPort 44818] [const uint 16 eipTcpDefaultPort 44818] ] diff --git a/protocols/iec-60870/src/main/resources/protocols/iec608705104/iec-60870-5-104.mspec b/protocols/iec-60870/src/main/resources/protocols/iec608705104/iec-60870-5-104.mspec index 133c690252..07a8191c6a 100644 --- a/protocols/iec-60870/src/main/resources/protocols/iec608705104/iec-60870-5-104.mspec +++ b/protocols/iec-60870/src/main/resources/protocols/iec608705104/iec-60870-5-104.mspec @@ -19,7 +19,7 @@ // https://www.fit.vut.cz/research/publication-file/11570/TR-IEC104.pdf -[type IEC608705104Constants +[constants [const uint 16 defaultPort 2404] ] diff --git a/protocols/knxnetip/src/main/generated/protocols/knxnetip/knx-master-data.mspec b/protocols/knxnetip/src/main/generated/protocols/knxnetip/knx-master-data.mspec index 2fa0dcf7d3..ac696d7461 100644 --- a/protocols/knxnetip/src/main/generated/protocols/knxnetip/knx-master-data.mspec +++ b/protocols/knxnetip/src/main/generated/protocols/knxnetip/knx-master-data.mspec @@ -1490,7 +1490,7 @@ ['738' M_ZHONGSHAN_ILLUS_LIGHTING_CO__LTD ['799', '"Zhongshan Illus LIghting Co.,Ltd"']] ['739' M_HANGZHOU_KONKE_INFORMATION_TECHNOLOGY_CO___LTD_ ['800', '"Hangzhou Konke Information Technology Co., Ltd."']] ['740' M_SHANGHAI_FANTE_DIGITAL_TECHNOLOGY_CO___LTD ['801', '"Shanghai Fante Digital Technology Co., Ltd"']] - ['741' M_CONFIO ['802', '"CONFIO"']] + ['741' M_CONFIO_TECHNOLOGIES_PVT__LTD ['802', '"Confio Technologies Pvt. Ltd"']] ['742' M_SONIC_TECHNOLOGIES ['803', '"Sonic Technologies"']] ['743' M_SHANGHAI_INNOVATECH_INFORMATION_TECHNOLOGY_CO___LT ['804', '"Shanghai Innovatech Information Technology Co., Lt"']] ['744' M_ABI_SICHERHEITSSYSTEME_GMBH ['805', '"ABI Sicherheitssysteme GmbH"']] @@ -1501,8 +1501,12 @@ ['749' M_ROGERWELL_CONTROL_SYSTEM_LIMITED ['810', '"Rogerwell Control System Limited"']] ['750' M_SHANGHAI_YUKON_AUTOMATION_TECHNOLOGIES_CO___LTD_ ['811', '"Shanghai YUKON Automation Technologies Co., Ltd."']] ['751' M_TECCO_PTY_LTD ['812', '"Tecco Pty Ltd"']] - ['752' M_ABB___RESERVED ['43954', '"ABB - reserved"']] - ['753' M_BUSCH_JAEGER_ELEKTRO___RESERVED ['43959', '"Busch-Jaeger Elektro - reserved"']] + ['752' M_A_LAN_TECHNOLOGIE ['813', '"A-LAN Technologie"']] + ['753' M_VOLTAN_TECHNOLOGY ['814', '"Voltan Technology"']] + ['754' M_BAERWINKEL_AND_STRASSER_GMBH ['815', '"Baerwinkel & Strasser GmbH"']] + ['755' M_CATERLUX ['816', '"Caterlux"']] + ['756' M_ABB___RESERVED ['43954', '"ABB - reserved"']] + ['757' M_BUSCH_JAEGER_ELEKTRO___RESERVED ['43959', '"Busch-Jaeger Elektro - reserved"']] ] diff --git a/protocols/modbus/src/main/resources/protocols/modbus/modbus.mspec b/protocols/modbus/src/main/resources/protocols/modbus/modbus.mspec index b5b21fe96e..6496e3b416 100644 --- a/protocols/modbus/src/main/resources/protocols/modbus/modbus.mspec +++ b/protocols/modbus/src/main/resources/protocols/modbus/modbus.mspec @@ -21,7 +21,7 @@ // Remark: The different fields are encoded in Big-endian. -[type ModbusConstants +[constants [const uint 16 modbusTcpDefaultPort 502] ] diff --git a/protocols/open-protocol/src/main/resources/protocols/openprotocol/open-protocol.mspec b/protocols/open-protocol/src/main/resources/protocols/openprotocol/open-protocol.mspec index 0a35e16441..b6151f3420 100644 --- a/protocols/open-protocol/src/main/resources/protocols/openprotocol/open-protocol.mspec +++ b/protocols/open-protocol/src/main/resources/protocols/openprotocol/open-protocol.mspec @@ -20,7 +20,7 @@ // Spec available from here: // https://de.scribd.com/document/428086428/OpenProtocol-Specification-R-2-8-0-9836-4415-01 -[type Constants +[constants [const uint 16 tcpDefaultPort 4545] ] diff --git a/protocols/plc4x/src/main/resources/protocols/plc4x/v0/plc4x.mspec b/protocols/plc4x/src/main/resources/protocols/plc4x/v0/plc4x.mspec index 63de2c00a8..c17156c007 100644 --- a/protocols/plc4x/src/main/resources/protocols/plc4x/v0/plc4x.mspec +++ b/protocols/plc4x/src/main/resources/protocols/plc4x/v0/plc4x.mspec @@ -17,7 +17,7 @@ * under the License. */ -[type Plc4xConstants +[constants [const uint 16 plc4xTcpDefaultPort 59837] // Hex of CAFE ] diff --git a/protocols/umas/src/main/resources/protocols/umas/umas.mspec b/protocols/umas/src/main/resources/protocols/umas/umas.mspec index cf65be4c06..102e971dc0 100644 --- a/protocols/umas/src/main/resources/protocols/umas/umas.mspec +++ b/protocols/umas/src/main/resources/protocols/umas/umas.mspec @@ -21,7 +21,7 @@ // Remark: The different fields are encoded in Big-endian. -[type UmasConstants +[constants [const uint 16 UmasTcpDefaultPort 502] ]