Hi all,

taking this back to the list as I think it belongs here.

While working on the ADS driver I noticed that we might have the need to pack a 
given protocol in different transport protocols, depending on the used 
transport.

For ADS it has to either wrap the AMSPacket in a AmsTCPPacket if using TCP or 
in a AmsSerialFrame if it’s using serial. For serial also some ACK packets have 
to be created or processed.

I wouldn’t want to mix that in to the driver itself as this should only worry 
about the AMSPacket logic itself.

So I was thinking if it would be possible to do something like this:

@Override
protected ProtocolStackConfigurer<AmsPacket> getStackConfigurer() {
    return SingleProtocolStackConfigurer.builder(AmsPacket.class, 
AmsPacketIO.class)
        .withProtocol(AdsProtocolLogic.class)
        .withTransportProtocol(TcpTransport.class, 
AmsTcpTransportProtocol.class)
        .withTransportProtocol(SerialTransport.class, 
AmsSerialTransportProtocol.class)
        .littleEndian()
        .build();
}

Any thoughts?
We probably have to extend the transports to return a “family” of transports so 
we can for example say that Raw-Socket and PCAP-Replay are “TCP” or “UDP” and 
for the EmbeddedTransport I would need to be able to configure what it should 
be.

Chris


Reply via email to