Comments (3)
fair point. if the protocol isn't structured such that chunks are 'skippable', then that's exactly what could happen. i'm mostly playing message passer here, taking dictation. as long as there's an error message returned that can be logged, imho, that should be enough to take further action by either fixing configuration or requesting enhancements.
from dnp3.
I'm not convinced this is a desirable feature. Usually you'd want to configure both sides of the link during commissioning to ensure they're using objects both sides support.
It'd be too easy with this option to think you have a working integration when something is actually pretty broken.
The other issue is that once you encounter something you don't understand, all data past that is lost.
Say that a response contains 4 object headers and your parser knows what a, c, and d are:
<a><b><c><d>
Once the parser hits <b>
which it doesn't understand it cannot get past it to read <c>
and <d>
. This is a limitation in the protocol itself, because reading <c>
depends on knowing some static length of objects of type <b>
.
If this data is in a response that asks for confirmation, this feature would make the master station confirm it causing all the data to be cleared from the outstation event buffers.
from dnp3.
That's right. You can't skip an unknown object b/c DNP3 isn't tag-length-value.
For what it's worth OpenDNP3 handled unknown objects in the same manner.
from dnp3.
Related Issues (20)
- Binding multiple master sessions with different local addr to a single channel HOT 1
- CPU spikes when polls time out (with link status enabled) HOT 6
- Make TaskError variants (pub) crate
- Use builder pattern for config structures
- Add support for retrieving the bound port when creating a TCP or TLS server
- Can't compile the .c files in bindings/c directory while using RPi4 HOT 9
- Class 0 scan and Group 50 Var 4 question HOT 3
- support for g50v4 HOT 3
- v1.5.0 not on crates.io? HOT 1
- Add cargo publish to CI release process
- dnp3 nugget ( Axon outstation with dnp3 master) HOT 1
- Native libraries fail to load when `java.io.tmpdir` is relative HOT 10
- Fatal error. System.AccessViolationException: dnp3.PInvoke.MasterChannelAddAssociation (Causing Application crash.) HOT 15
- Add support for writing files from master to outstation HOT 1
- Add UDP support HOT 1
- unsolicited only seems to send one fragment HOT 4
- Attemped to read or write protected memory HOT 1
- Cargo build error HOT 2
- output file versions don't match package version HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from dnp3.