Example #1
0
 protected override void PreWrite(ValueEventArgs[] args)
 {
     foreach (ValueEventArgs it in args)
     {
         if (it.Target is GXDLMSProfileGeneric)
         {
             //We do not want that buffer can be write here.
             if (it.Index == 2)
             {
                 it.Error = ErrorCode.ReadWriteDenied;
             }
             else if (it.Index == 3)
             {
                 //If user is updating capture objects.
                 //We are expecting that first column is always clock object's date time.
                 GXDLMSProfileGeneric pg = it.Target as GXDLMSProfileGeneric;
                 List <GXKeyValuePair <GXDLMSObject, GXDLMSCaptureObject> > list = GXDLMSProfileGeneric.GetCaptureObjects(it.Value as object[]);
                 if (list.Count != 0 && !(list[0].Key is GXDLMSClock && list[0].Value.AttributeIndex == 2))
                 {
                     it.Error = ErrorCode.ReadWriteDenied;
                 }
             }
         }
         System.Diagnostics.Debug.WriteLine("Writing " + it.Target.LogicalName);
     }
 }