Repository navigation
Build options from per-point-type factories - #67
Merged
Merged
Conversation
- PointOptions builds the options that several kinds of point repeat:
the events generated for the count-limited tests, the events' class,
the default event variation, the points kept at one width only, and
the outputs' installed points, uninstalled index, points per request
and changeable status flags.
- ClassOptions.EventClass builds each event class's options,
TimeSyncOptions.TimedEvents the with-time and relative-time options
of binary and double-bit inputs, and BinaryOutputOptions one set of
CROB fields for the primary and alternate commands and the control
code points.
- Keys that differed only by accident follow one pattern:
- control.* is binaryOutput.*, like analogOutput.* and
supports.binaryOutput.*; ControlOptions is BinaryOutputOptions
- <group>.numEventsGenerated and <group>.eventsClass for binary,
double-bit and analog inputs and counters
- maxPointsInSingleRequest for binary and analog outputs
- supports.doubleBitInput* and supports.analogInput*, like the input
groups, and supports.analogInputEventsQueuedPerPoint
- event.buffer.maxDoubleBitInputEvents
- Descriptions of the same thing read the same for each kind.
The options' defaults, bounds and order in the written configuration
file are unchanged, and so is every procedure's steps.
Part of #59.
This was referenced Oct 14, 2026
Closed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Item 7 of #59.
Factories
PointOptionsbuilds the options that several kinds of point repeat:only16Bit/only32Bit)ClassOptions.EventClassbuilds each event class's options.TimeSyncOptions.TimedEventsbuilds the with-time and relative-time options of binary and double-bit inputs.BinaryOutputOptionsbuilds one set of CROB fields, which the primary and alternate commands and the control code points share.Renamed keys
These keys differed only by accident, and now follow one pattern:
control.*binaryOutput.*, likeanalogOutput.*andsupports.binaryOutput.*(ControlOptionsis nowBinaryOutputOptions)binaryInput.numBinaryEventsGenerated,doubleBitInput.numDoubleBitEventsGenerated,counter.numCounterEventsGenerated<group>.numEventsGeneratedbinaryInput.binaryEventsClass,doubleBitInput.doubleBitEventsClass,counter.counterEventsClass,analogInput.analogInputEventsClass<group>.eventsClasscontrol.maxControlPointsInSingleRequest,analogOutput.maxAnalogOutputsInSingleRequestbinaryOutput.maxPointsInSingleRequest,analogOutput.maxPointsInSingleRequestsupports.doubleBit*,supports.analog*(e.g.supports.disable.analog,supports.analogChangeEvents)supports.doubleBitInput*,supports.analogInput*, matching the input groupssupports.analogEventsQueuedPerPointsupports.analogInputEventsQueuedPerPointevent.buffer.maxDoubleBitBinaryInputEventsevent.buffer.maxDoubleBitInputEventsA configuration file with an old key now gets an unknown-option error. stepfunc/dnp3's conformance configuration will be updated to match.
Unchanged
The options' defaults, bounds and allowed values are unchanged, and so is their order in the written configuration file.
I compared a before/after dump with the renamed keys mapped back to their old names. It covered:
-describeoutputRevision.validateIt ran at each subset level, with a device profile, every boolean option on, and every boolean option off. The only differences are in option descriptions that now read the same for each kind: