We need to work on some of the basics ... and I could use your help with that.

2024-02-26 Thread Christofer Dutz
Hi all,

So, we now have more and more drivers in more and more languages and are seeing 
that this is becoming a bit of a problem, as it’s difficult to keep all of them 
aligned.
It was always my plan to work on this by extremely increasing the portion of 
generated code.

The problem is that there is also stuff that needs doing to promote the project 
(Our users are asking for more drivers, better integrations, bugfixes etc.)
I personally see that we need the following features:

- A general purpose Request-Optimizer, that rewrites requests and possibly 
splits them up
- A rewrite of the scraper
- A general purpose “subscription emulator” that allows using the subscription 
API with connections only allowing reads
- A general purpose UI that allows interacting with PLCs using PLC4X in a 
graphical way.

However, you can imagine, that I can’t do all of that on my own, especially as 
I unfortunately no longer can work on this sort of things full-time as part of 
my day job.
So, I’m mostly relying on rainy weekends and dark and rainy evenings.

My question to you all: Anyone willing to help take any of this off my plate?

Chris



Re: [PR] build(deps): bump github.com/schollz/progressbar/v3 from 3.14.1 to 3.14.2 in /plc4go

2024-02-26 Thread via GitHub


sruehl merged PR #1428:
URL: https://github.com/apache/plc4x/pull/1428


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscr...@plc4x.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



Re: [PR] build(deps): bump com.google.protobuf:protobuf-java from 3.25.2 to 3.25.3

2024-02-26 Thread via GitHub


sruehl merged PR #1427:
URL: https://github.com/apache/plc4x/pull/1427


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscr...@plc4x.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



Re: [PR] build(deps): bump com.google.googlejavaformat:google-java-format from 1.19.2 to 1.20.0

2024-02-26 Thread via GitHub


sruehl merged PR #1426:
URL: https://github.com/apache/plc4x/pull/1426


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscr...@plc4x.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



Re: [PR] build(deps): bump nl.jqno.equalsverifier:equalsverifier from 3.15.6 to 3.15.7

2024-02-26 Thread via GitHub


sruehl merged PR #1425:
URL: https://github.com/apache/plc4x/pull/1425


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscr...@plc4x.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



Re: We need to work on some of the basics ... and I could use your help with that.

2024-02-26 Thread Cesar Garcia
Hello,

Reading your email while having a coffee, what comes to mind is a word
"time".

I can remember that I followed up on the way Woodhead (Applicom) cards work
and definitely before the request they have an optimizer, but they achieve
this by creating a model of the device as an intermediate layer, which will
plan the requests.

The poorest implementation of a driver, I could see a communication with
Modbus of a Simenes MP277, horrible!

There are some papers like [1] that attack this problem, it would be
interesting for the work team to debate how to implement an "optimizer +
scheduler", which would solve two of the problems you raise.

The interesting thing here is how to maintain a unified architecture
between the versions of C and Java, which are the ones I can evaluate.

My proposal for visualization follows the same line, we continue working
with Apache NetBeans Platform for relatively complex applications, and web
visualization with "qooxdoo" [2].

Why I propose "qooxdoo", because of its simplicity, we don't want to learn
a lot of React, Typescript, css, etc.

To make a simple functional table, qooxdoo's implementation of a table is
the best I've tried [3].

The integration of qooxdoo with Apache ECharts [4] is pure magic.

The best thing, qooxdoo + ECharts V4, works with old equipment that we
still find in some industries (yes, Windows XP is still used).

I would just add to the list, PLC4X driver as a service. In this case
supported by Apache Karaf and Apache Celix.

Uhs, I'm out of coffee,

My grain of sand,

Have an excellent day.


1.
https://www.researchgate.net/publication/332657959_Dynamic_Optimization_of_Data_Packet-based_Communication_for_PLC_Visual_Monitoring
2. https://qooxdoo.org/
3. https://qooxdoo.org/qxl.demobrowser/#table~Table.html
4. https://echarts.apache.org/en/index.html

El lun, 26 feb 2024 a las 5:17, Christofer Dutz ()
escribió:

> Hi all,
>
> So, we now have more and more drivers in more and more languages and are
> seeing that this is becoming a bit of a problem, as it’s difficult to keep
> all of them aligned.
> It was always my plan to work on this by extremely increasing the portion
> of generated code.
>
> The problem is that there is also stuff that needs doing to promote the
> project (Our users are asking for more drivers, better integrations,
> bugfixes etc.)
> I personally see that we need the following features:
>
> - A general purpose Request-Optimizer, that rewrites requests and possibly
> splits them up
> - A rewrite of the scraper
> - A general purpose “subscription emulator” that allows using the
> subscription API with connections only allowing reads
> - A general purpose UI that allows interacting with PLCs using PLC4X in a
> graphical way.
>
> However, you can imagine, that I can’t do all of that on my own,
> especially as I unfortunately no longer can work on this sort of things
> full-time as part of my day job.
> So, I’m mostly relying on rainy weekends and dark and rainy evenings.
>
> My question to you all: Anyone willing to help take any of this off my
> plate?
>
> Chris
>
>

-- 
*CEOS Automatización, C.A.*
*GALPON SERVICIO INDUSTRIALES Y NAVALES FA, C.A.,*
*PISO 1, OFICINA 2, AV. RAUL LEONI, SECTOR GUAMACHITO,*

*FRENTE A LA ASOCIACION DE GANADEROS,BARCELONA,EDO. ANZOATEGUI*
*Ing. César García*

*Cel: +58 414-760.98.95*

*Hotline Técnica SIEMENS: 0800 1005080*

*Email: support.aan.automat...@siemens.com
*


AW: We need to work on some of the basics ... and I could use your help with that.

2024-02-26 Thread Christofer Dutz
Hi Cesar,

Well, I guess for a general purpose we’d have to come up with general 
functionality for some things like:

  *   Size of a base request (no items)
  *   Size of a base response (no items)
  *   Size of a request item
  *   Size of a response item
With this and a given request and max pdu-size, we should be able to build a 
general-purpose optimizer, that produces a sequence of requests, that utilize 
the PDU size.

What I built for S7, simply keeps on checking: “does it work, if I add this 
item?” … as soon as it doesn’t it finishes the first request and starts a new 
one. This doesn’t make use of possibly re-arranging items to better fill PDUs, 
which should also be pretty general purpose.

The next step would be one that is able to apply protocol-dependent 
optimizations. Like … if I read 10 boolean values, it might be better to read 
an array of bytes instead, as the overhead is a lot less. I could imagine that 
such an optimizer would be pretty much like a rule engine.

I have no objections if anyone wants to build a UI tool with some other 
technology. I’m not overwhelmed when I hear “Netbeans”, as I remember that is 
built by an ANT build from hell … pretty much on one level with all the Eclipse 
stuff that uses Tycho to build and you essentially have to build it in an 
Eclipse IDE. I would not be willing to buy easy implementation of tables by 
inheriting a nightmare of a build.

If you could whip up a PR with such an editor (doesn’t have to be much more 
than what I have in React). I guess that would be something we could be 
discussing over.

I just thought: If I must learn something new, I might as well learn something 
I might be benefiting from in my future carrier. And I was expecting more 
people to be able to join in with React compared to any other UI framework.

I’d love if this thing would become backed by a community that is able to 
sustain it. Nothing that someone built and then I have to maintain it.


Chris


Von: Cesar Garcia 
Datum: Montag, 26. Februar 2024 um 15:14
An: dev@plc4x.apache.org 
Betreff: Re: We need to work on some of the basics ... and I could use your 
help with that.
Hello,

Reading your email while having a coffee, what comes to mind is a word
"time".

I can remember that I followed up on the way Woodhead (Applicom) cards work
and definitely before the request they have an optimizer, but they achieve
this by creating a model of the device as an intermediate layer, which will
plan the requests.

The poorest implementation of a driver, I could see a communication with
Modbus of a Simenes MP277, horrible!

There are some papers like [1] that attack this problem, it would be
interesting for the work team to debate how to implement an "optimizer +
scheduler", which would solve two of the problems you raise.

The interesting thing here is how to maintain a unified architecture
between the versions of C and Java, which are the ones I can evaluate.

My proposal for visualization follows the same line, we continue working
with Apache NetBeans Platform for relatively complex applications, and web
visualization with "qooxdoo" [2].

Why I propose "qooxdoo", because of its simplicity, we don't want to learn
a lot of React, Typescript, css, etc.

To make a simple functional table, qooxdoo's implementation of a table is
the best I've tried [3].

The integration of qooxdoo with Apache ECharts [4] is pure magic.

The best thing, qooxdoo + ECharts V4, works with old equipment that we
still find in some industries (yes, Windows XP is still used).

I would just add to the list, PLC4X driver as a service. In this case
supported by Apache Karaf and Apache Celix.

Uhs, I'm out of coffee,

My grain of sand,

Have an excellent day.


1.
https://www.researchgate.net/publication/332657959_Dynamic_Optimization_of_Data_Packet-based_Communication_for_PLC_Visual_Monitoring
2. https://qooxdoo.org/
3. https://qooxdoo.org/qxl.demobrowser/#table~Table.html
4. https://echarts.apache.org/en/index.html

El lun, 26 feb 2024 a las 5:17, Christofer Dutz ()
escribió:

> Hi all,
>
> So, we now have more and more drivers in more and more languages and are
> seeing that this is becoming a bit of a problem, as it’s difficult to keep
> all of them aligned.
> It was always my plan to work on this by extremely increasing the portion
> of generated code.
>
> The problem is that there is also stuff that needs doing to promote the
> project (Our users are asking for more drivers, better integrations,
> bugfixes etc.)
> I personally see that we need the following features:
>
> - A general purpose Request-Optimizer, that rewrites requests and possibly
> splits them up
> - A rewrite of the scraper
> - A general purpose “subscription emulator” that allows using the
> subscription API with connections only allowing reads
> - A general purpose UI that allows interacting with PLCs using PLC4X in a
> graphical way.
>
> However, you can imagine, that I can’t do all of that on my own,
> especially as I unfortunate