Hi all,
As many of you might know, mid of this year I applied for several public
research funding rounds with the main goal to refactor PLC4J to rid ourselves
of some of the technical debt we have piled up. Most of the work was around
rewriting the current SPI to work entirely without Netty. Beyond that to
implement a Transport layer that supports multiple connection instances to
share one transport instance (Like needed for ModbusRTU and BacNET, …) Also to
allow multiple transport instances being used by one connection instance (Like
for Profinet and Cesar’s S7 variant).
Now it seems that both applications were judged favorably. Now I could need
some input from you guys where you see more need for cleaning up.
So far, the tasks I applied and which I just got informed that they received
Funding are:
*
Implement new SPI
*
Implement new Read-/WriteBuffers that work without third party dependencies
*
Update the code generation framework
*
Implement a new system for pluggable transports
*
Implement the code for the concept of a layered protocol drivers
*
Update the existing drivers to use the new SPI
The second package I would try to change the other would be:
*
Implement a new Code-Generation for PLC4J based on JavaPoet (Getting rid of
freemarker (at least for Java))
*
Implement a new connection-cache component
*
Implement a new Scraper alternative (able to use subscription-based triggers)
*
Implement a new Base-Driver that emulates subscriptions by using the new scraper
*
Fix the issues in the S7 driver allowing us to merge the two back together
*
Add some Audit-Log functionality, that allows us to better diagnose issues
Does that make sense from your perspective?
Anything missing you think I should focus on?
I think a bit quicker feedback than usually here would be helpful, as I need to
finish the Sovereign Tech Fund paperwork as soon as possible.
Chris