Skip to content

Commit

Permalink
fix(codegen): fixed issue with dataio in plc4j
Browse files Browse the repository at this point in the history
  • Loading branch information
sruehl committed Feb 25, 2022
1 parent 4f275db commit 82af78d
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 13 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -523,7 +523,7 @@ public void exitCaseStatement(MSpecParser.CaseStatementContext ctx) {
discriminatorValues, parserContexts.pop());

// For DataIO we don't need to generate the sub-types as these will be PlcValues.
if(!(ctx.parent.parent instanceof MSpecParser.DataIoDefinitionContext)) {
if (!(ctx.parent.parent instanceof MSpecParser.DataIoDefinitionContext)) {
dispatchType(typeName, type);
}

Expand Down Expand Up @@ -632,18 +632,18 @@ private CompletionStage<TypeReference> getTypeReference(MSpecParser.TypeReferenc
CompletableFuture<TypeReference> typeReferenceCompletableFuture = new CompletableFuture<>();
String typeRefName = ctx.complexTypeReference.getText();
setOrScheduleTypeDefinitionConsumer(typeRefName, typeDefinition -> {
if (typeDefinition.isComplexTypeDefinition()) {
if (typeDefinition.isDataIoTypeDefinition()) {
DefaultDataIoTypeReference value = new DefaultDataIoTypeReference(typeRefName, getParams(ctx.params));
value.setTypeDefinition(typeDefinition);
typeReferenceCompletableFuture.complete(value);
} else if (typeDefinition.isComplexTypeDefinition()) {
DefaultComplexTypeReference value = new DefaultComplexTypeReference(typeRefName, getParams(ctx.params));
value.setTypeDefinition(typeDefinition);
typeReferenceCompletableFuture.complete(value);
} else if (typeDefinition.isEnumTypeDefinition()) {
DefaultEnumTypeReference value = new DefaultEnumTypeReference(typeRefName, getParams(ctx.params));
value.setTypeDefinition(typeDefinition);
typeReferenceCompletableFuture.complete(value);
} else if (typeDefinition.isDataIoTypeDefinition()) {
DefaultDataIoTypeReference value = new DefaultDataIoTypeReference(typeRefName, getParams(ctx.params));
value.setTypeDefinition(typeDefinition);
typeReferenceCompletableFuture.complete(value);
} else {
throw new RuntimeException("Support for " + typeDefinition.getClass() + " not implemented yet");
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -151,13 +151,13 @@
]
[type ManualArrayTypeTest
[manualArray bit bitField count '1' 'STATIC_CALL("parseBit", readBuffer)' 'STATIC_CALL("serializeBit", writeBuffer, _value)' '1']
[manualArray byte byteField count '1' 'STATIC_CALL("parseByte", readBuffer)' 'STATIC_CALL("serializeByte", writeBuffer, _value)' '5']
[manualArray int 8 intField count '1' 'STATIC_CALL("parseInt8", readBuffer)' 'STATIC_CALL("serializeInt8", writeBuffer, _value)' '5']
[manualArray uint 8 uintField count '1' 'STATIC_CALL("parseUint8", readBuffer)' 'STATIC_CALL("serializeUint8", writeBuffer, _value)' '5']
[manualArray float 32 floatField count '1' 'STATIC_CALL("parseFloat", readBuffer)' 'STATIC_CALL("serializeFloat", writeBuffer, _value)' '20']
[manualArray float 64 doubleField count '1' 'STATIC_CALL("parseDouble", readBuffer)' 'STATIC_CALL("serializeDouble", writeBuffer, _value)' '40']
[manualArray string 8 stringField count '1' 'STATIC_CALL("parseString", readBuffer)' 'STATIC_CALL("serializeString", writeBuffer, _value)' '5']
[manualArray bit bitField count 'true' 'STATIC_CALL("parseBit", readBuffer)' 'STATIC_CALL("serializeBit", writeBuffer, _value)' '1']
[manualArray byte byteField count 'true' 'STATIC_CALL("parseByte", readBuffer)' 'STATIC_CALL("serializeByte", writeBuffer, _value)' '5']
[manualArray int 8 intField count 'true' 'STATIC_CALL("parseInt8", readBuffer)' 'STATIC_CALL("serializeInt8", writeBuffer, _value)' '5']
[manualArray uint 8 uintField count 'true' 'STATIC_CALL("parseUint8", readBuffer)' 'STATIC_CALL("serializeUint8", writeBuffer, _value)' '5']
[manualArray float 32 floatField count 'true' 'STATIC_CALL("parseFloat", readBuffer)' 'STATIC_CALL("serializeFloat", writeBuffer, _value)' '20']
[manualArray float 64 doubleField count 'true' 'STATIC_CALL("parseDouble", readBuffer)' 'STATIC_CALL("serializeDouble", writeBuffer, _value)' '40']
[manualArray string 8 stringField count 'true' 'STATIC_CALL("parseString", readBuffer)' 'STATIC_CALL("serializeString", writeBuffer, _value)' '5']
]
//TODO: Checksums fields are not supported in C
Expand Down

0 comments on commit 82af78d

Please sign in to comment.