Git Product home page Git Product logo

Comments (3)

dmabeeaveva avatar dmabeeaveva commented on June 27, 2024 1

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.

jadamcrain avatar jadamcrain commented on June 27, 2024

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.

jadamcrain avatar jadamcrain commented on June 27, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.