Those were only used by Sebastian's ADS driver.
Perhaps let him explain them as I never quite managed to wrap my head around 
their necessity. 
For me they were also sort of evil as they allow to explicitly send out 
proprietary stuff, which I liked to prevent.

Chris



Am 07.10.18, 15:35 schrieb "Andrey Skorikov" <[email protected]>:

    Hello all,
    
    currently there are three interfaces in the 
    org.apache.plc4x.java.api.messages package of the API module, which are 
    disconnected from the rest of the API:
    
    - PlcProprietaryRequest
    - PlcProprietaryResponse
    - PlcProtocolMessage
    
    How are these types supposed to be used? As far as I understand, clients 
    of the API cannot obtain instances of these types in any way. 
    Admittedly, there is an interface PlcProprietarySender that accepts 
    PlcProprietaryRequests, but it resides in the driver-base module and 
    therefore is inaccessible to the client. If we want to provide an 
    extension point for protocols, allowing clients to break the abstraction 
    layer and issue proprietary requests at their own risk, then there must 
    be some sort of interface which they can use to accomplish that. Either 
    the PlcProprietarySender interface must be made accessible to the 
    clients - which means it must moved to the API module, and integrated 
    with the rest of the API - or we should remove the proprietary types 
    from the API module, for they are useless at the moment anyway.
    
    The same problem concerns the PlcProtocolMessage interface. None of the 
    other types in the API module refer to it. This type is used in the 
    driver-base module, but it seems to me that it is only an implementation 
    detail. Perhaps we can move the type out of the API module into the 
    driver-base module?
    
    Andrey
    
    

Reply via email to