public void SetLastReadTime(int attributeIndex, DateTime tm)
 {
     if (!Status.ContainsKey(attributeIndex))
     {
         GXStatusInfo s = new GXStatusInfo();
         s.Read = tm;
         Status.Add(attributeIndex, s);
     }
     else
     {
         Status[attributeIndex].Read = tm;
     }
 }
 public void SetLastError(int attributeIndex, Exception error)
 {
     if (!Status.ContainsKey(attributeIndex))
     {
         GXStatusInfo s = new GXStatusInfo();
         s.Error = error;
         Status.Add(attributeIndex, s);
     }
     else
     {
         Status[attributeIndex].Error = error;
     }
 }
 public void UpdateDirty(int attributeIndex, object value)
 {
     if (!Status.ContainsKey(attributeIndex))
     {
         GXStatusInfo s = new GXStatusInfo();
         s.Value = value;
         Status.Add(attributeIndex, s);
     }
     else
     {
         Status[attributeIndex].Value = value;
     }
     if (OnChange != null)
     {
         OnChange(this, true, attributeIndex, value);
     }
 }