nimbuscontrols / EIPScanner

Free implementation of EtherNet/IP in C++
https://eipscanner.readthedocs.io/en/latest/
MIT License
224 stars 90 forks source link

Alternative EPath segments support #63

Open jkauffmann-manter opened 3 years ago

jkauffmann-manter commented 3 years ago

Recently I've been tasked to communicate with Omron NX PLCs using EthernetIP explicit messages. To access data on these devices, an EPath doesn't consist of a class id, instance id or attribute id. The segments making up the EPath should be one or more ANSI Extended Symbol Segments (with ascii data encoded), and optionally logical segments with logical type member id (not attribute id).

I've noticed EIPScanner doesn't support EPath's consisting of segments other than the logical segment and the aforementioned logical types (class, instance, attribute). Do you guys have any plans on supporting more segment types in the EPath?

jadamroth commented 2 years ago

Unfortunately, we currently don't have plans on supporting these segment types. I personally have never experienced or heard of these segments.

Check out the MessageRouter.cpp and MessageRouterRequest.cpp classes. That's where I presume you'll want to make these changes if you're using explicit messaging. If you're familiar with C++, it shouldn't take too long to figure out how it works.

May also be good to reference how/if other EIP repos in other languages operate this way:

  1. https://github.com/pjkundert/cpppo
  2. https://github.com/digitalpetri/ethernet-ip

Feel free to create a pull request if you make any progress

nnarain commented 11 months ago

Hi @jkauffmann-manter did you ever look into this further (assuming not)?

JohannesKauffmann commented 11 months ago

Hi, yes we did get around to it, but we haven't published this code as of yet. We hope to do this within the coming (two) months. It's still rough around the edges and still needs some work.

nnarain commented 11 months ago

Even if it's not PR ready and just something I could take a look at on your fork, I'd greatly appreciate it. I'm on a fairly tight timeline. If that's not an option then no worries.

JohannesKauffmann commented 11 months ago

see #98