Hi Niclas,

I guess the situation with the Serial protocols is identical to the ones for 
the IP-Based drivers. But I think also supporting serial protocols would be a 
valuable addition to PLC4X as still a lot of devices out in the wild only 
support this form of communication.

In the IP space we also see open-source drivers (usually with GPL License) 
which also look like ancient C translated to Java. I think we shouldn't even 
touch these GPL licensed drivers as using them directly would make PLC4X GPL 
and using their code as "inspiration" to implement our own would make PLC4X a 
"derivative work" and hereby GPL too, which we want to prevent at all costs. In 
the IP world we are currently implementing the drivers from scratch based on 
information we can get in a license that allows using that to implement a 
derivative work.

Beckhoff has been extremely kind in providing us with the specs for their 
protocols as well as allowing us to use that to implement our own driver. 
Siemens isn't that forthcoming (till now) ... most alternate source for 
information was usually available with a GPL license and we hereby couldn't use 
that. When implementing the Siemens S7 driver, the part that took most time, 
was to find information with an Apache compatible license and to 
reverse-engineer the missing parts :-/

Well if you could convince the commercial company to donate, that would be 
awesome. Depending on the code-quality we could then either integrate that 
directly or use it to implement a new driver from scratch.

If we can't get anyone to donate anything, we would have to implement the 
driver from scratch. Which I don't think is a too bad thing as this way we can 
directly write code that fits nicely into our existing landscape. 

So my preference would be:

- Get them to donate 
- Implement from the spec
- Use existing open-source driver (if licensing allows it)


´╗┐Am 12.02.18, 11:16 schrieb "hedh...@gmail.com im Auftrag von Niclas Hedhman" 
<hedh...@gmail.com im Auftrag von nic...@hedhman.org>:

    I was thinking about converting some of my protocol implementations to
    plc4x, but I have only worked in the serialport space, (e.g Modbus/RTU
    rather than Modbus/TCP).
    There is a ancient Java specification (Java Comms API), which is not only
    literally from last millennium, but rather poor as well.
    So, what choices do we have?
    * GNU has an implementation, which is rather bad Java code and the C/native
    side needed a bit tweaking last time I worked with it.
    * The best implementation I know is commercial, but perhaps we can entice a
    code donation and/or a Apache Licensed API. I'll investigate that one...
    * Our own implementation from scratch, which kind of belongs in Apache APR,
    at least the C/native part.
    Niclas Hedhman, Software Developer
    http://polygene.apache.org - New Energy for Java

Reply via email to