Well I think the Connection Pool doesn’t quite match in this case.
It’s more of a fixed group of connections, where each serves a different 
purpose.
And they share the metadata and functionality ... so for example if one 
connection detects that the S7 is a 300 or 400, then the driver supports 
subscriptions and the main connection is used to setup the subscription on the 
second subscription connection.

Chris

Von: Jinlin Hong <[email protected]>
Datum: Donnerstag, 11. Mai 2023 um 03:07
An: [email protected] <[email protected]>
Betreff: Re: AW: [DISCUSS] Have some sort of multi-connection?
Hello Chris.
Now that we have PlcConnection, is MultiConnection or AggregatedConnection
something like a connection pool to store PlcConnection?
Jinlin

Christofer Dutz <[email protected]> 於 2023年5月10日 週三 下午8:13寫道:

> Hi Sebastian,
>
> Yeah ... like your name more :-)
>
> And I’ve sort of dug a bit more ... and currently we have the
> “PlcConnection” which contains the TagBuilder, PlcValueBuilder, the read,
> write, subscribe stuff ... I think we don’t even want to proxy these ...
> the interesting part might be the Protocol ... as this seems to be the
> thing that is associated with the individual connections.
>
> In ADS the Protocol for the UDP Config stuff is different from the ADS TCP
> stuff ... in PROFINET the raw subscription stuff is separate from the
> Read/Write/Config ....
>
> So possibly even worth thinking of a Multi-Protocol or AggregatedProtocol
> ...
>
> Chris
>
>
> Von: Sebastian Rühl <[email protected]>
> Datum: Mittwoch, 10. Mai 2023 um 13:34
> An: [email protected] <[email protected]>
> Betreff: Re: AW: [DISCUSS] Have some sort of multi-connection?
> Hi Chris,
>
> I also had the name AggregatedConnection flying around in my head (maybe I
> think to much of multi vitamin when reading MultiConnection :D)
>
> What would be helpful is to list the scenarios in a wiki site and then
> think through what each connection would have to to in which usecases. This
> might help to better find edge cases and surprises. Also approaching that
> with TDD might be super helpful to get a better feeling for your proposed
> design.
>
> - Sebastian
>
> On 2023/05/10 09:27:15 Christofer Dutz wrote:
> > Hi all,
> >
> > I’ve been thinking about this for the last few days now and I think I’ve
> got an idea:
> >
> >
> >   *   We add some sort of “MultiConnection” ... it has the same general
> interface as our other connections do
> >   *   Internally the MultiConnection has named-connections which are
> stored in a map
> >   *   When connecting, we somehow need to be able to pass in these
> multiple connections
> >   *   All Disconnect/Connect etc. functions simply relay to all named
> connections
> >   *   Additionally the MultiConnection has a “getConnectionNames” and a
> “getConnection(name)” method
> >   *   The integration testsuite gets extended to you can pass in an
> optional connection name which it then uses to select the right internal
> connection
> >
> > One thing I’m not quite sure about how to handle it ... we currently
> have the idea of a driver being able to provide a default transport. This
> can be overridden by the user. Like in modbus-rcp, which defaults to
> serial, but you can switch it to TCP.
> >
> > This mechanism will be difficult with MultiConnection.
> >
> > We could mark one connection as “default connection” and this one keeps
> the felxibility we had, but the others would be fixed.
> > Or we simply not allow this flexibility for MultiConnection connections.
> >
> > I think now allowing the overrides would be the simpler solution and for
> all the drivers I know that need multiple connections, you can’t really run
> them with anything different anyway.
> >
> > So, what do you folks think?
> >
> > So I would opt for doing the MultiConnection thing as described (not
> fixed on the name though) and simply not allowing transport overrides for
> multi-connection drivers (We could always add that feature later, if we
> find out to require it)
> >
> > Chris
> >
> > Von: Ben Hutcheson <[email protected]>
> > Datum: Samstag, 6. Mai 2023 um 19:39
> > An: [email protected] <[email protected]>
> > Betreff: Re: [DISCUSS] Have some sort of multi-connection?
> > Hi,
> >
> > Definitely +1, it would be great to be able to have multiple
> > connections/protocols handled in a consistent way. PROFINET is a prime
> > example of one that would benefit, as it uses multiple protocols (LLDP,
> > DCP, PNIO) as well as multiple end devices.
> >
> > Let me know if I can help.
> >
> > Ben
> >
> > On Sat, May 6, 2023 at 1:20 PM Lukas Ott <[email protected]> wrote:
> >
> > > +1 for building a more generic solution for multi-connections as it
> helps
> > > for PROFINET and ADS as well
> > >
> > > Am Fr., 5. Mai 2023 um 15:17 Uhr schrieb Christofer Dutz <
> > > [email protected]>:
> > >
> > > > Hi all,
> > > >
> > > > while going through Cesar’s changes I noticed that he actually
> addressed
> > > > something I keept on avoiding ;-) ... Multi-Connections. I know I
> needed
> > > > them for PROFINET (Raw base transport and UDP config) as well as ADS
> (TCP
> > > > base transport and UDP config) ... I solved the problem by
> implementing
> > > the
> > > > UDP stuff manually, completely avoiding Netty .. but I think it
> would be
> > > > more in the spirit of PLC4X to do it in a cleaner way ... as Cesar
> did
> > > it.
> > > >
> > > > However, Cesars version is hard-coded for S7 and S7HA. I would
> suggest to
> > > > build a more generic solution ... what do you folks think?
> > > >
> > > > Chris
> > > >
> > >
> >
>

Reply via email to