Class Assembly

    • Field Detail

      • sLogger

        public static final org.slf4j.Logger sLogger
      • locked

        protected boolean locked
      • active

        protected boolean active
      • consumeTS

        public final CipLINT consumeTS
    • Constructor Detail

      • Assembly

        protected Assembly​(InstanceSeg seg,
                           AssyMgr parent,
                           ConnectableAttr data,
                           java.lang.String name)
        Construct an assembly instance with a given connectable data attribute. The given attribute is expected to already be connected to this parent object.
        Parameters:
        seg -
        parent -
        data -
        name -
      • Assembly

        public Assembly​(InstanceSeg seg,
                        AssyMgr parent,
                        BaseDataType<?> data,
                        java.lang.String name)
        Construct a static assembly instance using a given CIP data element for read/write content. The data element may be an array or structure.
        Parameters:
        seg - The instance segment that will identify this assembly. If null, an instance number will be chosen from the vendor specific ranges, or any available instance above the last vendor range.
        parent - The assembly class object that will be the parent
        data - The content data element
      • Assembly

        public Assembly​(InstanceSeg seg,
                        AssyMgr parent,
                        java.lang.String name)
        Construct a dynamic assembly instance with an empty member list.
        Parameters:
        seg - The instance segment that will identify this assembly. If null, an instance number will be chosen from the vendor specific ranges, or any available instance above the last vendor range.
        parent - The assembly class object that will be the parent
    • Method Detail

      • service

        public void service​(CipObject appContext,
                            CipRequest request,
                            int nesting)
        Description copied from class: CipObject

        Execute a CIP service on the object, using the request supplied. Supply a reply to the request and/or throw an appropriate CipException. Replies are not required before this routine returns.

        Direct service() calls MUST NOT BLOCK. Any operation that will take any significant time must be delegated to an executor. "Significant" may vary by application, but typically would be in the fractional millisecond range.

        Specified by:
        service in interface AttributeHolder
        Overrides:
        service in class CipInstance
        Parameters:
        appContext - Root object for application path lookups. Generally a Mirrored Device from a port context.
        request - What to do and where to reply. Services to be handled by child objects are to be passed to their service() method with nesting+1.
        nesting - How many leading path segments items to skip when processing this request. Avoids copying the balance of an application path into a new request when passing a request to a child object.
      • connect

        public AppConsumer connect​(AppOwner owner,
                                   ConxClass.CxParams params,
                                   byte dirtrigcls)
        Description copied from interface: Connectable
        This method requests that the given connection be assigned as the owner of this object and an appropriate AppConsumer shim be created to handle the incoming data. Application Consumer objects handle data flow from connections to application objects. The provided AppOwner instance includes appropriate buffer handling, including removal/use of CIP short sequence numbers and originator idle/run mode indicators. This class's shutdown() method is used to disconnect.
        Specified by:
        connect in interface Connectable
        dirtrigcls - Direction/Trigger/Class combination to use.
        Returns:
      • payloadBytes

        public int payloadBytes()
        Description copied from interface: Connectable
        Report number of payload bytes expected, other than the mode & CIP short sequence.
        Specified by:
        payloadBytes in interface Connectable
        Returns:
      • disconnect

        public void disconnect()
        Description copied from interface: Connectable
        This method forces any owner's shim to shutdown (breaking a connection if applicable), and if there was an owner, shuts down subscribers too.
        Specified by:
        disconnect in interface Connectable
      • disconnectSubscribers

        public void disconnectSubscribers()
        Description copied from interface: Connectable
        This method disconnects all subscribers, a requirement during shutdown.
        Specified by:
        disconnectSubscribers in interface Connectable
      • getOwner

        public AppOwner getOwner()
        Description copied from interface: Connectable
        Obtain the current owner's shim if owned, or null.
        Specified by:
        getOwner in interface Connectable
        Returns:
      • subscribe

        public void subscribe​(AppProducer sub,
                              ConxClass.CxParams params,
                              byte dirtrigcls)
        Description copied from interface: Connectable
        This method requests that the given connection be added to the list of subscribers to new data production from this object. Repeat subscriptions are ignored.
        Specified by:
        subscribe in interface Connectable
        dirtrigcls - Direction/Trigger/Class combination to use.
      • unsubscribe

        public void unsubscribe​(AppProducer sub)
        Description copied from interface: Connectable
        This method drops the given connection from the list of new data subscribers.
        Specified by:
        unsubscribe in interface Connectable
      • txTrigger

        public void txTrigger()
        Description copied from interface: Connectable
        This method notifies a producer that a transmission trigger has expired and new data would be appropriate if it can be assembled and delivered synchronously in this call.
        Specified by:
        txTrigger in interface Connectable
      • txFresh

        public void txFresh()
        Description copied from interface: Connectable
        This method notifies a producer that a data has been updated and a new sequence number should be generated. Produces to subscribers with application or change of state trigger types.
        Specified by:
        txFresh in interface Connectable
      • config

        public void config​(SimpleDataSeg dataseg)
        Description copied from interface: Connectable
        Configuration assemblies or any other object that can be targeted for configuration data in a forward open service must implement this method.
        Specified by:
        config in interface Connectable
      • getDataSize

        public int getDataSize()
      • getData

        public BaseDataType<?> getData()
        Description copied from interface: DataWrapper
        Many CIP objects wrap a CIP data type. This interface allows the member resolver to access fragments of complex wrapped data in a uniform way.
        Specified by:
        getData in interface DataWrapper
        Returns: