Hello,
Gurux simulator crash with error "Value was either too large or too small for an Int32." while reading saved meter xml file at startup.
From meter xml saved datafile:
<MinOverThresholdDuration>4294967295</MinOverThresholdDuration>
<MinUnderThresholdDuration>4294967295</MinUnderThresholdDuration>
Blue book limiter definition:
min_over_threshold_duration (static) double-long-unsigned min_under_threshold_duration (static) double-long-unsigned
From GXDLMSLimiter.cs:
MinOverThresholdDuration = (UInt16)reader.ReadElementContentAsInt("MinOverThresholdDuration");
MinUnderThresholdDuration = (UInt16)reader.ReadElementContentAsInt("MinUnderThresholdDuration");
Looks like meter value (MinOverThresholdDuration, MinUnderThresholdDuration) is maximum for unsigned int 32 bit, while
ReadElementContentAsInt
// Reads the current element and returns the contents as a 32-bit signed integer.
Returns:
// The element content as a 32-bit signed integer.
So at first you are trying (step 1) to convert 32 bit unsigned to 32 bit signed, and after that you are trying (step 2) to use (UInt16) type modifier.
Step1 gives an error, and step2 is incorrect too, IMHO.
Hi, Thank you for pointing…
Hi,
Thank you for pointing this out. This is now fixed. Get the latest version.
BR,
Mikko