Skip to content

3.1r1: section 10, output control events - #50

Merged
jadamcrain merged 1 commit into
mainfrom
v31r1-output-events
Oct 14, 2026
Merged

jadamcrain merged 1 commit into
mainfrom
v31r1-output-events

Conversation

@jadamcrain

Copy link
Copy Markdown
Member

Adds 3.1r1's section 10, for a device whose Device Profile claims output events.

  • 10.3.2, 10.4.2: output status in class 0, wherever the DUT has the events.
  • 10.3.3, 10.4.3: output status events on a change of each flag the plugin can change, with nothing else changed, and of state or value where the DUT reports those.
  • 10.3.4, 10.4.4: output command events, for a command that succeeds and for one that doesn't (analog in g43v2 or g43v4).
  • Events are counted from the object headers, so command events, which carry no measurement, count too. The status event tests change back the flags they changed, also when a step fails.
  • Options say which output events the DUT has (supports.binaryOutputCommandEvents, supports.analogOutputCommandEvents), which flags the plugin can change, whether state or value changes generate events, the analog output deadband, and whether a command resets its base. Values the tests apply stay within 16 bits; step 27's command differs by the deadband plus 10 from the value step 4 recorded.
  • 10.4.2's step 2 names object 10 variation 2 where its desired behavior has analog output status, g40v2, which the test reads.
  • Codec and plugin. dnp3c gains a codec for binary output command events (group 13). IntegrationPlugin gains changeOutputFlag, changeBinaryOutputState, setAnalogOutputValue and verifyCommandEventTime, with throwing defaults.

3.1r1's section 10 tests output events, for a device whose Device Profile
claims them: output status in class 0, wherever the DUT has the events
(10.3.2, 10.4.2); output status events on a change of each flag the plugin
can change, with nothing else changed, and of state or value where the DUT
reports those (10.3.3, 10.4.3); and output command events, for a command
that succeeds and for one that doesn't (10.3.4, 10.4.4; analog in g43v2 or
g43v4). Events are counted from the object headers, so command events,
which carry no measurement, count too. The status event tests change back
the flags they changed, also when a step fails.

New options say which output events the DUT has (supports.binaryOutput
.commandEvents, supports.analogOutput.commandEvents), which flags the
plugin can change, whether state or value changes generate events, the
analog output deadband, and whether a command resets its base. Values the
tests apply stay within 16 bits; step 27's command differs by the deadband
plus 10 from the value step 4 recorded. 10.4.2's step 2 names object 10
variation 2 where its desired behavior has analog output status, g40v2,
which the test reads.

dnp3c gains a codec for binary output command events (group 13).
IntegrationPlugin gains changeOutputFlag, changeBinaryOutputState,
setAnalogOutputValue and verifyCommandEventTime, with throwing defaults.
@jadamcrain
jadamcrain merged commit f164de8 into main Oct 14, 2026
5 checks passed
@jadamcrain
jadamcrain deleted the v31r1-output-events branch October 14, 2026 06:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant