Package com.ed.edcom

Class ADspData

  • Direct Known Subclasses:
    DspFloat, DspVar

    public abstract class ADspData
    extends java.lang.Object
    This is the base class for representation of embedded data.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected java.nio.ByteBuffer bufRead
      Internal byte buffer, r/w
      protected java.nio.ByteBuffer bufWrite
      Internal byte buffer, r/w
      protected byte[] data
      Internal byte arrays, r/w
      protected byte[] data_set
      Internal byte arrays, r/w
      int externalKey1
      Identifier 1
      int externalKey2
      Identifier 2
    • Constructor Summary

      Constructors 
      Constructor Description
      ADspData​(java.lang.String name, int varSize, DspVarListener listner, long refreshPeriod)
      Class constructor.
    • Method Summary

      All Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      void addListener​(DspVarListener vl)
      Add change listener.
      boolean canRead()
      Can read data according to user permissions?
      boolean canReadAfterModify​(long delay)
      Use to avoid reading immediately after modification.
      boolean canWrite()
      Can write data according to user permissions?
      void enableReqOptionalField​(boolean b)
      Enable optional request field (Must be supported by dsp variable!)
      byte getByte​(int ix)
      Get byte by index.
      byte[] getBytes()
      Get all bytes.
      abstract java.lang.Object getValue()
      Get variable value.
      boolean hasChanged()
      Test if value has changed.
      boolean isValid()
      Validity check according to selected time period.
      void refresh()
      Put refresh request and clear refresh timestamp.
      long refreshTime()
      Get refresh timestamp.
      void setKey2​(int val)
      Set key 2.
      void setModifiedNow()
      Set modification time to now.
      void setReqOptionalField​(int val)
      Set optional request field (Must be supported by dsp variable!)
      void setSynchReadDspVar​(ADspData dv)
      Set additional embedded variable to read simultaneously.
      void setValidPeriod​(long tp)
      Set time period for validity check.
      • Methods inherited from class java.lang.Object

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

      • externalKey1

        public int externalKey1
        Identifier 1
      • externalKey2

        public int externalKey2
        Identifier 2
      • data

        protected final byte[] data
        Internal byte arrays, r/w
      • data_set

        protected final byte[] data_set
        Internal byte arrays, r/w
      • bufRead

        protected final java.nio.ByteBuffer bufRead
        Internal byte buffer, r/w
      • bufWrite

        protected final java.nio.ByteBuffer bufWrite
        Internal byte buffer, r/w
    • Constructor Detail

      • ADspData

        public ADspData​(java.lang.String name,
                        int varSize,
                        DspVarListener listner,
                        long refreshPeriod)
                 throws java.lang.Exception
        Class constructor.
        Parameters:
        name - variable name (according to embedded software)
        varSize - bytes length
        listner - on change listener
        refreshPeriod - required refresh period in milliseconds, '0' - no periodic refresh required.
        Throws:
        java.lang.Exception - wrong parameters
    • Method Detail

      • canRead

        public boolean canRead()
        Can read data according to user permissions?
        Returns:
        true if reading is permitted
      • canWrite

        public boolean canWrite()
        Can write data according to user permissions?
        Returns:
        true if writing is permitted
      • getValue

        public abstract java.lang.Object getValue()
        Get variable value.
        Returns:
        Object representing variable value
      • setValidPeriod

        public void setValidPeriod​(long tp)
        Set time period for validity check.
        Parameters:
        tp - time in milliseconds
      • isValid

        public boolean isValid()
        Validity check according to selected time period.
        Returns:
        true if valid
      • refreshTime

        public long refreshTime()
        Get refresh timestamp.
        Returns:
        last refresh timestamp in milliseconds
      • refresh

        public void refresh()
        Put refresh request and clear refresh timestamp. (Use 'refreshTime() != 0' to check data was refreshed)
      • canReadAfterModify

        public boolean canReadAfterModify​(long delay)
        Use to avoid reading immediately after modification.
        Parameters:
        delay - time in milliseconds
        Returns:
        true if delay after write is complete
      • setModifiedNow

        public void setModifiedNow()
        Set modification time to now. Use if value affected indirect. To prevent unnecessary reading immediately after modification use canReadAfterModify().
      • hasChanged

        public boolean hasChanged()
        Test if value has changed.
        Returns:
        true if modification not complete
      • addListener

        public void addListener​(DspVarListener vl)
        Add change listener.
        Parameters:
        vl - listener
      • setKey2

        public void setKey2​(int val)
        Set key 2.
        Parameters:
        val - new key 2 value
      • setSynchReadDspVar

        public void setSynchReadDspVar​(ADspData dv)
        Set additional embedded variable to read simultaneously. Use if some data items must be simultaneously read (single TCP/IP message) to prevent data interference by a multi client server.
        Parameters:
        dv - variable to read simultaneously
      • enableReqOptionalField

        public void enableReqOptionalField​(boolean b)
        Enable optional request field (Must be supported by dsp variable!)
        Parameters:
        b - true to enable optional field
      • setReqOptionalField

        public void setReqOptionalField​(int val)
        Set optional request field (Must be supported by dsp variable!)
        Parameters:
        val - value of request field
      • getByte

        public byte getByte​(int ix)
        Get byte by index.
        Parameters:
        ix - byte number (0 first)
        Returns:
        one byte
      • getBytes

        public byte[] getBytes()
        Get all bytes.
        Returns:
        copy of internal byte array