From 6306f322c68ae1c1f26ad3faa5b18ea00fe292f0 Mon Sep 17 00:00:00 2001 From: Dmitrii Efremov Date: Sun, 1 Dec 2024 15:04:03 +0300 Subject: [PATCH] Fixing bugs 1. Fixing wrong maxNumBits for BdaReasonForInclusion. 2. Fixing bug in acceptable values in optional field for ReportControlBlock. These bugs lead client to break connection. --- .../com/beanit/iec61850bean/BdaReasonForInclusion.java | 2 +- .../java/com/beanit/iec61850bean/ServerAssociation.java | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/beanit/iec61850bean/BdaReasonForInclusion.java b/src/main/java/com/beanit/iec61850bean/BdaReasonForInclusion.java index b6e02c4..e934cd1 100644 --- a/src/main/java/com/beanit/iec61850bean/BdaReasonForInclusion.java +++ b/src/main/java/com/beanit/iec61850bean/BdaReasonForInclusion.java @@ -16,7 +16,7 @@ package com.beanit.iec61850bean; public final class BdaReasonForInclusion extends BdaBitString { public BdaReasonForInclusion(ObjectReference objectReference) { - super(objectReference, null, null, 7, false, false); + super(objectReference, null, null, 6, false, false); basicType = BdaType.REASON_FOR_INCLUSION; setDefault(); } diff --git a/src/main/java/com/beanit/iec61850bean/ServerAssociation.java b/src/main/java/com/beanit/iec61850bean/ServerAssociation.java index dde88d3..5849083 100644 --- a/src/main/java/com/beanit/iec61850bean/ServerAssociation.java +++ b/src/main/java/com/beanit/iec61850bean/ServerAssociation.java @@ -1396,10 +1396,10 @@ final class ServerAssociation { } } else if (nodeName.equals("OptFlds")) { if ((urcb.reserved == null || urcb.reserved == this) && !urcb.enabled) { - if (!((BdaOptFlds) modelNode).isBufferOverflow() - && !((BdaOptFlds) modelNode).isConfigRevision() - && !((BdaOptFlds) modelNode).isDataReference() - && !((BdaOptFlds) modelNode).isEntryId()) { + if (!((BdaOptFlds) fcModelNodeCopy).isBufferOverflow() + && !((BdaOptFlds) fcModelNodeCopy).isConfigRevision() + && !((BdaOptFlds) fcModelNodeCopy).isDataReference() + && !((BdaOptFlds) fcModelNodeCopy).isEntryId()) { ((BasicDataAttribute) modelNode).setValueFrom((BasicDataAttribute) fcModelNodeCopy); return writeSuccess; } else {