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