From c635f112e37b08129c9d3c3ab830f45fe7a19687 Mon Sep 17 00:00:00 2001
From: Philipp Jungkamp
Date: Mon, 23 May 2022 21:06:27 +0000
Subject: [PATCH] some style improvements
---
include/villas/nodes/iec60870.hpp | 2 ++
lib/nodes/iec60870.cpp | 23 +++++++++++++++++------
2 files changed, 19 insertions(+), 6 deletions(-)
diff --git a/include/villas/nodes/iec60870.hpp b/include/villas/nodes/iec60870.hpp
index f9f7670a2..8273b1a2d 100644
--- a/include/villas/nodes/iec60870.hpp
+++ b/include/villas/nodes/iec60870.hpp
@@ -87,6 +87,8 @@ public:
char const* name() const;
// get equivalent IEC104 type without timestamp (e.g. for general interrogation response)
ASDUData::Type typeWithoutTimestamp() const;
+ // get equivalent ASDUData without timestamp (e.g. for general interrogation response)
+ ASDUData withoutTimestamp() const;
// corresponding signal type
SignalType signalType() const;
// check if ASDU contains this data
diff --git a/lib/nodes/iec60870.cpp b/lib/nodes/iec60870.cpp
index c9bc67631..51b0cca5f 100644
--- a/lib/nodes/iec60870.cpp
+++ b/lib/nodes/iec60870.cpp
@@ -113,6 +113,11 @@ ASDUData::Type ASDUData::typeWithoutTimestamp() const
return this->descriptor.type_without_timestamp;
}
+ASDUData ASDUData::withoutTimestamp() const
+{
+ return ASDUData::lookupType(this->typeWithoutTimestamp(), this->ioa).value();
+}
+
SignalType ASDUData::signalType() const
{
return this->descriptor.signal_type;
@@ -438,10 +443,15 @@ bool SlaveNode::onInterrogation(IMasterConnection connection, CS101_ASDU asdu, u
for (unsigned i = 0; i < mapping.size(); i++) {
auto asdu_data = mapping[i];
auto last_value = last_values[i];
- auto asdu_data_without_timestamp = ASDUData::lookupType(asdu_data.typeWithoutTimestamp(), asdu_data.ioa).value();
if (asdu_data.type() == asdu_type)
- asdu_data_without_timestamp.addSampleToASDU(signal_asdu, ASDUData::Sample { last_value, IEC60870_QUALITY_GOOD, std::nullopt });
+ asdu_data
+ .withoutTimestamp()
+ .addSampleToASDU(signal_asdu, ASDUData::Sample {
+ last_value,
+ IEC60870_QUALITY_GOOD,
+ std::nullopt
+ });
}
assert(CS101_ASDU_getNumberOfElements(signal_asdu) > 0);
@@ -488,10 +498,11 @@ int SlaveNode::_write(Sample *samples[], unsigned sample_count)
signalTypeToString(sample_format(sample,signal))
);
- mapping[signal].addSampleToASDU(
- asdu,
- ASDUData::Sample { sample->data[signal], IEC60870_QUALITY_GOOD, timestamp }
- );
+ mapping[signal].addSampleToASDU(asdu, ASDUData::Sample {
+ sample->data[signal],
+ IEC60870_QUALITY_GOOD,
+ timestamp
+ });
asdu_elements++;
}