Package com.ed.edcom

Class ADspData

java.lang.Object
com.ed.edcom.ADspData
Direct Known Subclasses:
DspFloat, DspVar

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

    • 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 ByteBuffer bufRead
      Internal byte buffer, r/w
    • bufWrite

      protected final ByteBuffer bufWrite
      Internal byte buffer, r/w
  • Constructor Details

    • ADspData

      public ADspData(String name, int varSize, DspVarListener listner, long refreshPeriod) throws 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:
      Exception - wrong parameters
  • Method Details

    • 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 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