Repository navigation
Check binary event time by the clock state, and an option for TB2017-003a - #99
Merged
Merged
Conversation
…003a outstation.bulletins lists the technical bulletins a device implements, none by default. With TB2017-003a listed, 2.7's 8.14.2.9 to 8.14.2.11 and 8.22.2.9 to 8.22.2.11 check its rule (5.1.3.1.2) in place of absolute time only: events recorded while the clock is synchronized in g2v2/g4v2, those recorded while it's unsynchronized as g2v3/g4v3 after g51v2. The result notes the bulletin. IntegrationPlugin.timeQuality, with a default of None, reports whether the device's clock is synchronized. dnp3c asks before and after each batch of binary and double-bit input events, and 3.1r1's 8.14.1.1 checks, and 2.7's with the bulletin, use that state where the procedure doesn't know it. A batch the clock changed during may be reported each way in one response. Without the plugin's answer, the checks accept either way throughout, as before.
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.
Closes #98.
What changes
outstation.bulletins: the technical bulletins a device implements, comma separated, e.g.TB2017-003a. Empty by default, so a run checks each revision as published; an unknown id is a configuration error.IntegrationPlugin.timeQuality(new, defaultNone): whether the device's clock is synchronized, for events it records now. dnp3c asks before and after each batch of binary and double-bit input events it has the plugin generate, and records the answers for the procedure.v31r1.EventRulesintocommon.EventTime.Compatibility
timeQualityhas a default, so existing plugins compile and run unchanged. A plugin needs it, and its device needs the bulletin listed, to pass 2.7's tests while reporting unsynchronized events with g51v2.Testing
EventTimeTestcovers the option, the recorded clock (latest and all batches, changed, unknown), 2.7 with and without the bulletin, 3.1r1 by clock state, mixed batches, a device without relative time, and the note. The full suite passes.timeQualityandoutstation.bulletins = TB2017-003a, run locally: