Thanks to visit codestin.com
Credit goes to github.com

Skip to content
This repository was archived by the owner on Sep 1, 2022. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion cpp/lib/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@ set(opendnp3_public_headers
./include/opendnp3/app/MeasurementTypes.h
./include/opendnp3/app/OctetData.h
./include/opendnp3/app/OctetString.h
./include/opendnp3/app/QualityMasks.h
./include/opendnp3/app/SecurityStat.h

./include/opendnp3/app/parsing/ICollection.h
Expand Down
8 changes: 7 additions & 1 deletion cpp/lib/include/opendnp3/app/Flags.h
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,13 @@
#ifndef OPENDNP3_FLAGS_H
#define OPENDNP3_FLAGS_H

#include "opendnp3/app/QualityMasks.h"
#include "opendnp3/gen/AnalogOutputStatusQuality.h"
#include "opendnp3/gen/AnalogQuality.h"
#include "opendnp3/gen/BinaryOutputStatusQuality.h"
#include "opendnp3/gen/BinaryQuality.h"
#include "opendnp3/gen/CounterQuality.h"
#include "opendnp3/gen/DoubleBitBinaryQuality.h"
#include "opendnp3/gen/FrozenCounterQuality.h"

namespace opendnp3
{
Expand Down
41 changes: 0 additions & 41 deletions cpp/lib/include/opendnp3/app/QualityMasks.h

This file was deleted.

14 changes: 7 additions & 7 deletions cpp/tests/unit/TestWriteConversions.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include <opendnp3/app/QualityMasks.h>
#include <opendnp3/gen/AnalogQuality.h>
#include <app/WriteConversions.h>

#include <catch.hpp>
Expand All @@ -31,24 +31,24 @@ TEST_CASE(SUITE("Group30Var2ConvertsWithinRange"))
Analog a(12);
auto gv = ConvertGroup30Var2::Apply(a);

REQUIRE(gv.value == 12);
REQUIRE(gv.flags == ToUnderlying(AnalogQuality::ONLINE));
CHECK(gv.value == 12);
CHECK(gv.flags == AnalogQualitySpec::to_type(AnalogQuality::ONLINE));
}

TEST_CASE(SUITE("Group30Var2ConvertsOverrange"))
{
Analog a(32768);
auto gv = ConvertGroup30Var2::Apply(a);

REQUIRE(gv.value == 32767);
REQUIRE(gv.flags == (ToUnderlying(AnalogQuality::ONLINE) | ToUnderlying(AnalogQuality::OVERRANGE)));
CHECK(gv.value == 32767);
CHECK(gv.flags == (AnalogQualitySpec::to_type(AnalogQuality::ONLINE) | AnalogQualitySpec::to_type(AnalogQuality::OVERRANGE)));
}

TEST_CASE(SUITE("Group30Var2ConvertsUnderrange"))
{
Analog a(-32769);
auto gv = ConvertGroup30Var2::Apply(a);

REQUIRE(gv.value == -32768);
REQUIRE(gv.flags == (ToUnderlying(AnalogQuality::ONLINE) | ToUnderlying(AnalogQuality::OVERRANGE)));
CHECK(gv.value == -32768);
CHECK(gv.flags == (AnalogQualitySpec::to_type(AnalogQuality::ONLINE) | AnalogQualitySpec::to_type(AnalogQuality::OVERRANGE)));
}
43 changes: 23 additions & 20 deletions dotnet/CLRAdapter/src/Conversions.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -164,38 +164,40 @@ namespace DNP3

Binary ^ Conversions::ConvertMeas(opendnp3::Binary meas)
{
return gcnew Binary(meas.value, meas.flags.value, TimeStamp::Convert(meas.time.value));
return gcnew Binary(meas.value, gcnew Flags(meas.flags.value), TimeStamp::Convert(meas.time.value));
}

DoubleBitBinary ^ Conversions::ConvertMeas(opendnp3::DoubleBitBinary meas)
{
return gcnew DoubleBitBinary(static_cast<DoubleBit>(meas.value), meas.flags.value,
return gcnew DoubleBitBinary(static_cast<DoubleBit>(meas.value), gcnew Flags(meas.flags.value),
TimeStamp::Convert(meas.time.value));
}

Analog ^ Conversions::ConvertMeas(opendnp3::Analog meas)
{
return gcnew Analog(meas.value, meas.flags.value, TimeStamp::Convert(meas.time.value));
return gcnew Analog(meas.value, gcnew Flags(meas.flags.value), TimeStamp::Convert(meas.time.value));
}

Counter ^ Conversions::ConvertMeas(opendnp3::Counter meas)
{
return gcnew Counter(meas.value, meas.flags.value, TimeStamp::Convert(meas.time.value));
return gcnew Counter(meas.value, gcnew Flags(meas.flags.value), TimeStamp::Convert(meas.time.value));
}

FrozenCounter ^ Conversions::ConvertMeas(opendnp3::FrozenCounter meas)
{
return gcnew FrozenCounter(meas.value, meas.flags.value, TimeStamp::Convert(meas.time.value));
return gcnew FrozenCounter(meas.value, gcnew Flags(meas.flags.value), TimeStamp::Convert(meas.time.value));
}

AnalogOutputStatus ^ Conversions::ConvertMeas(opendnp3::AnalogOutputStatus meas)
{
return gcnew AnalogOutputStatus(meas.value, meas.flags.value, TimeStamp::Convert(meas.time.value));
return gcnew AnalogOutputStatus(meas.value, gcnew Flags(meas.flags.value),
TimeStamp::Convert(meas.time.value));
}

BinaryOutputStatus ^ Conversions::ConvertMeas(opendnp3::BinaryOutputStatus meas)
{
return gcnew BinaryOutputStatus(meas.value, meas.flags.value, TimeStamp::Convert(meas.time.value));
return gcnew BinaryOutputStatus(meas.value, gcnew Flags(meas.flags.value),
TimeStamp::Convert(meas.time.value));
}

OctetString ^ Conversions::ConvertMeas(const opendnp3::OctetString& meas)
Expand All @@ -222,41 +224,48 @@ namespace DNP3

SecurityStat ^ Conversions::ConvertMeas(const opendnp3::SecurityStat& meas)
{
return gcnew SecurityStat(meas.value.count, meas.value.assocId, meas.quality,
return gcnew SecurityStat(meas.value.count, meas.value.assocId, gcnew Flags(meas.quality),
TimeStamp::Convert(meas.time.value));
}

opendnp3::Binary Conversions::ConvertMeas(Binary ^ meas)
{
return opendnp3::Binary(meas->Value, opendnp3::Flags(meas->Quality), opendnp3::DNPTime(TimeStamp::Convert(meas->Timestamp)));
return opendnp3::Binary(meas->Value, opendnp3::Flags(meas->Quality->Value), opendnp3::DNPTime(TimeStamp::Convert(meas->Timestamp)));
}

opendnp3::DoubleBitBinary Conversions::ConvertMeas(DoubleBitBinary ^ meas)
{
return opendnp3::DoubleBitBinary((opendnp3::DoubleBit)meas->Value, opendnp3::Flags(meas->Quality),
return opendnp3::DoubleBitBinary((opendnp3::DoubleBit)meas->Value, opendnp3::Flags(meas->Quality->Value),
opendnp3::DNPTime(TimeStamp::Convert(meas->Timestamp)));
}

opendnp3::Analog Conversions::ConvertMeas(Analog ^ meas)
{
return opendnp3::Analog(meas->Value, opendnp3::Flags(meas->Quality), opendnp3::DNPTime(TimeStamp::Convert(meas->Timestamp)));
return opendnp3::Analog(meas->Value, opendnp3::Flags(meas->Quality->Value),
opendnp3::DNPTime(TimeStamp::Convert(meas->Timestamp)));
}

opendnp3::Counter Conversions::ConvertMeas(Counter ^ meas)
{
return opendnp3::Counter(meas->Value, opendnp3::Flags(meas->Quality),
return opendnp3::Counter(meas->Value, opendnp3::Flags(meas->Quality->Value),
opendnp3::DNPTime(TimeStamp::Convert(meas->Timestamp)));
}

opendnp3::FrozenCounter Conversions::ConvertMeas(FrozenCounter ^ meas)
{
return opendnp3::FrozenCounter(meas->Value, opendnp3::Flags(meas->Quality),
return opendnp3::FrozenCounter(meas->Value, opendnp3::Flags(meas->Quality->Value),
opendnp3::DNPTime(TimeStamp::Convert(meas->Timestamp)));
}

opendnp3::BinaryOutputStatus Conversions::ConvertMeas(BinaryOutputStatus ^ meas)
{
return opendnp3::BinaryOutputStatus(meas->Value, opendnp3::Flags(meas->Quality->Value),
opendnp3::DNPTime(TimeStamp::Convert(meas->Timestamp)));
}

opendnp3::AnalogOutputStatus Conversions::ConvertMeas(AnalogOutputStatus ^ meas)
{
return opendnp3::AnalogOutputStatus(meas->Value, opendnp3::Flags(meas->Quality),
return opendnp3::AnalogOutputStatus(meas->Value, opendnp3::Flags(meas->Quality->Value),
opendnp3::DNPTime(TimeStamp::Convert(meas->Timestamp)));
}

Expand Down Expand Up @@ -291,12 +300,6 @@ namespace DNP3
opendnp3::DNPTime(TimeStamp::Convert(meas->Timestamp)));
}

opendnp3::BinaryOutputStatus Conversions::ConvertMeas(BinaryOutputStatus ^ meas)
{
return opendnp3::BinaryOutputStatus(meas->Value, opendnp3::Flags(meas->Quality),
opendnp3::DNPTime(TimeStamp::Convert(meas->Timestamp)));
}

LinkHeader ^ Conversions::Convert(const opendnp3::LinkHeaderFields& fields)
{
return gcnew LinkHeader((LinkFunction)fields.func, fields.isFromMaster, fields.fcb, fields.fcvdfc,
Expand Down
Loading