Class AdsConnector<CO,​CI>

  • Type Parameters:
    CO - the output type to the IIP-Ecosphere platform
    CI - the input type from the IIP-Ecosphere platform
    All Implemented Interfaces:
    de.iip_ecosphere.platform.connectors.Connector<java.lang.Object,​java.lang.Object,​CO,​CI>, de.iip_ecosphere.platform.connectors.events.EventHandlingConnector, de.iip_ecosphere.platform.connectors.model.AbstractModelAccess.NotificationChangedListener

    @MachineConnector(hasModel=true,
                      supportsModelStructs=true,
                      supportsEvents=false,
                      requiresTypedAccess=true,
                      supportsModelCalls=false)
    public class AdsConnector<CO,​CI>
    extends de.iip_ecosphere.platform.connectors.AbstractConnector<java.lang.Object,​java.lang.Object,​CO,​CI>
    A generic ADS TwinCat connector.
    Author:
    Holger Eichelberger, SSE
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      private class  AdsConnector.AdsModelAccess
      Implements the model access for AAS.
      static class  AdsConnector.Descriptor
      The descriptor of this connector (see META-INF/services).
      static interface  AdsConnector.InstanceCreator<T>
      Creates instances.
      private static class  AdsConnector.TypeDescriptor<T>  
      • Nested classes/interfaces inherited from class de.iip_ecosphere.platform.connectors.AbstractConnector

        de.iip_ecosphere.platform.connectors.AbstractConnector.BasicAdapterProvider
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private de.iip_ecosphere.platform.libs.ads.AdsCommunication comm  
      private static java.lang.Object DUMMY  
      private static org.slf4j.Logger LOGGER  
      static java.lang.String NAME  
      private de.iip_ecosphere.platform.connectors.ConnectorParameter params  
      private static java.util.Map<java.lang.Class<?>,​AdsConnector.TypeDescriptor<?>> TYPE_DESCRIPTORS  
      • Fields inherited from class de.iip_ecosphere.platform.connectors.AbstractConnector

        DEFAULT_CHANNEL
    • Constructor Summary

      Constructors 
      Constructor Description
      AdsConnector​(de.iip_ecosphere.platform.connectors.AdapterSelector<java.lang.Object,​java.lang.Object,​CO,​CI> selector, de.iip_ecosphere.platform.connectors.types.ProtocolAdapter<java.lang.Object,​java.lang.Object,​CO,​CI>... adapter)
      Creates an instance and installs the protocol adapter.
      AdsConnector​(de.iip_ecosphere.platform.connectors.types.ProtocolAdapter<java.lang.Object,​java.lang.Object,​CO,​CI>... adapter)
      Creates an instance and installs the protocol adapter.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected void connectImpl​(de.iip_ecosphere.platform.connectors.ConnectorParameter params)  
      protected void disconnectImpl()  
      void dispose()  
      java.lang.String enabledEncryption()  
      protected void error​(java.lang.String message, java.lang.Throwable th)  
      java.lang.String getName()  
      protected java.lang.Object read()  
      static <T> void registerType​(java.lang.Class<T> cls, de.iip_ecosphere.platform.libs.ads.MemorySizeCalculator<T> sizeCalculator, de.iip_ecosphere.platform.libs.ads.ReadVisitor.ReadVisitorSupplier<T> reader, de.iip_ecosphere.platform.libs.ads.WriteVisitor.WriteVisitorSupplier<T> writer, AdsConnector.InstanceCreator<T> creator)
      Registers a type.
      java.lang.String supportedEncryption()  
      protected void writeImpl​(java.lang.Object data)  
      • Methods inherited from class de.iip_ecosphere.platform.connectors.AbstractConnector

        checkCache, configureModelAccess, connect, createTlsContext, disconnect, doPolling, enableNotifications, enablePolling, getCachingStrategy, getCachingStrategyCls, getConnectorInputType, getConnectorOutputType, getConnectorParameter, getInitCachingStrategyCls, getProtocolInputType, getProtocolOutputType, getSelector, initializeModelAccess, initSelector, installPollTask, isPolling, notificationsChanged, notifyReconfigured, received, received, request, request, setReceptionCallback, trigger, trigger, uninstallPollTask, useTls, write
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • LOGGER

        private static final org.slf4j.Logger LOGGER
      • DUMMY

        private static final java.lang.Object DUMMY
      • params

        private de.iip_ecosphere.platform.connectors.ConnectorParameter params
      • comm

        private de.iip_ecosphere.platform.libs.ads.AdsCommunication comm
    • Constructor Detail

      • AdsConnector

        @SafeVarargs
        public AdsConnector​(de.iip_ecosphere.platform.connectors.types.ProtocolAdapter<java.lang.Object,​java.lang.Object,​CO,​CI>... adapter)
        Creates an instance and installs the protocol adapter.
        Parameters:
        adapter - the protocol adapter
        Throws:
        java.lang.IllegalArgumentException - if adapter is null or empty or adapters are null
      • AdsConnector

        @SafeVarargs
        public AdsConnector​(de.iip_ecosphere.platform.connectors.AdapterSelector<java.lang.Object,​java.lang.Object,​CO,​CI> selector,
                            de.iip_ecosphere.platform.connectors.types.ProtocolAdapter<java.lang.Object,​java.lang.Object,​CO,​CI>... adapter)
        Creates an instance and installs the protocol adapter.
        Parameters:
        selector - the adapter selector (null leads to a default selector for the first adapter)
        adapter - the protocol adapter(s)
        Throws:
        java.lang.IllegalArgumentException - if adapter is null or empty or adapters are null
    • Method Detail

      • registerType

        public static <T> void registerType​(java.lang.Class<T> cls,
                                            de.iip_ecosphere.platform.libs.ads.MemorySizeCalculator<T> sizeCalculator,
                                            de.iip_ecosphere.platform.libs.ads.ReadVisitor.ReadVisitorSupplier<T> reader,
                                            de.iip_ecosphere.platform.libs.ads.WriteVisitor.WriteVisitorSupplier<T> writer,
                                            AdsConnector.InstanceCreator<T> creator)
        Registers a type.
        Type Parameters:
        T - the java type
        Parameters:
        cls - the java type class
        sizeCalculator - the related size calculator
        reader - the reader
        writer - the writer
        creator - the instance creator
      • connectImpl

        protected void connectImpl​(de.iip_ecosphere.platform.connectors.ConnectorParameter params)
                            throws java.io.IOException
        Specified by:
        connectImpl in class de.iip_ecosphere.platform.connectors.AbstractConnector<java.lang.Object,​java.lang.Object,​CO,​CI>
        Throws:
        java.io.IOException
      • disconnectImpl

        protected void disconnectImpl()
                               throws java.io.IOException
        Specified by:
        disconnectImpl in class de.iip_ecosphere.platform.connectors.AbstractConnector<java.lang.Object,​java.lang.Object,​CO,​CI>
        Throws:
        java.io.IOException
      • dispose

        public void dispose()
      • getName

        public java.lang.String getName()
      • writeImpl

        protected void writeImpl​(java.lang.Object data)
                          throws java.io.IOException
        Specified by:
        writeImpl in class de.iip_ecosphere.platform.connectors.AbstractConnector<java.lang.Object,​java.lang.Object,​CO,​CI>
        Throws:
        java.io.IOException
      • read

        protected java.lang.Object read()
                                 throws java.io.IOException
        Specified by:
        read in class de.iip_ecosphere.platform.connectors.AbstractConnector<java.lang.Object,​java.lang.Object,​CO,​CI>
        Throws:
        java.io.IOException
      • error

        protected void error​(java.lang.String message,
                             java.lang.Throwable th)
        Specified by:
        error in class de.iip_ecosphere.platform.connectors.AbstractConnector<java.lang.Object,​java.lang.Object,​CO,​CI>
      • supportedEncryption

        public java.lang.String supportedEncryption()
      • enabledEncryption

        public java.lang.String enabledEncryption()