HAP isn't the issue, it's the Do-more programming interface. With other function codes (like for doing DirectNet or K-Sequence) it's simple read and write functions, but the programming interface is about 1000% more complex and none of it is publicly documented. There is a somewhat lighter symbolic interface, but it still requires a session and access to stuff that isn't publicly available. It isn't trivial.
We're about to release a very nice feature using an HTTP-based API that gives you full access to all tags, but that is BRX only.
We don't really need/want to reproduce the programming interface, there's little point. The IDE is provided for free and is the simplest way to configure and program the devices.
The two functions we do want are PLC host discovery and register read/write. The former is easy to spot, a broadcast is sent out and the PLCs reply. The latter I've made decent progress in understanding but would prefer to save some time if possible. A description of the protocol would be invaluable just to make sure I cover edge cases.
Can you explain the difference between the protocols you referenced and their significance? In the network captures I've generated I only ever see HAP packets which is why I referenced that protocol specifically.
We are quite sure this is the right path forward: we can either understand the protocol once and write a data ingest program for it that will work with all of our PLC programs, or we can create additional programming work for
every PLC program that we wish to do data ingest from in addition to creating the data ingest tool.
If you've got more information on the BRX, etc, I'm interested, I was actually under the impression they had been deprecated.