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