SetMethodAccess() public method

Set Method attribute access.
public SetMethodAccess ( int index, MethodAccessMode access ) : void
index int
access MethodAccessMode
return void
コード例 #1
0
 void UpdateAccessRights(GXDLMSObject obj, Object[] buff)
 {
     if (buff.Length != 0)
     {
         foreach (Object[] attributeAccess in (Object[])buff[0])
         {
             int id   = Convert.ToInt32(attributeAccess[0]);
             int mode = Convert.ToInt32(attributeAccess[1]);
             obj.SetAccess(id, (AccessMode)mode);
         }
         foreach (Object[] methodAccess in (Object[])buff[1])
         {
             int id = Convert.ToInt32(methodAccess[0]);
             int tmp;
             //If version is 0.
             if (methodAccess[1] is Boolean)
             {
                 tmp = ((Boolean)methodAccess[1]) ? 1 : 0;
             }
             else//If version is 1.
             {
                 tmp = Convert.ToInt32(methodAccess[1]);
             }
             obj.SetMethodAccess(id, (MethodAccessMode)tmp);
         }
     }
 }
コード例 #2
0
 void UpdateAccessRights(Object[] buff)
 {
     foreach (Object[] access in buff)
     {
         ushort       sn  = Convert.ToUInt16(access[0]);
         GXDLMSObject obj = ObjectList.FindBySN(sn);
         if (obj != null)
         {
             foreach (Object[] attributeAccess in (Object[])access[1])
             {
                 int id   = Convert.ToInt32(attributeAccess[0]);
                 int mode = Convert.ToInt32(attributeAccess[1]);
                 obj.SetAccess(id, (AccessMode)mode);
             }
             foreach (Object[] methodAccess in (Object[])access[2])
             {
                 int id   = Convert.ToInt32(methodAccess[0]);
                 int mode = Convert.ToInt32(methodAccess[1]);
                 obj.SetMethodAccess(id, (MethodAccessMode)mode);
             }
         }
     }
 }
コード例 #3
0
 void UpdateAccessRights(List <object> buff)
 {
     foreach (List <object> access in buff)
     {
         ushort       sn  = (ushort)((short)access[0] & 0xFFFF);
         GXDLMSObject obj = ObjectList.FindBySN(sn);
         if (obj != null)
         {
             foreach (List <object> attributeAccess in (List <object>)access[1])
             {
                 int id   = Convert.ToInt32(attributeAccess[0]);
                 int mode = Convert.ToInt32(attributeAccess[1]);
                 obj.SetAccess(id, (AccessMode)mode);
             }
             foreach (List <object> methodAccess in (List <object>)access[2])
             {
                 int id   = Convert.ToInt32(methodAccess[0]);
                 int mode = Convert.ToInt32(methodAccess[1]);
                 obj.SetMethodAccess(id, (MethodAccessMode)mode);
             }
         }
     }
 }
コード例 #4
0
 /// <summary>
 /// Reserved for internal use.
 /// </summary>
 /// <param name="objectType"></param>
 /// <param name="version"></param>
 /// <param name="baseName"></param>
 /// <param name="logicalName"></param>
 /// <param name="accessRights"></param>
 /// <param name="attributeIndex"></param>
 /// <param name="dataIndex"></param>
 internal static void UpdateObjectData(GXDLMSObject obj, ObjectType objectType, object version, object baseName, object logicalName, object accessRights)
 {
     obj.ObjectType = objectType;
     // Check access rights...            
     if (accessRights != null && accessRights.GetType().IsArray)
     {
         //access_rights: access_right
         object[] access = (object[])accessRights;
         foreach (object[] attributeAccess in (object[])access[0])
         {
             int id = Convert.ToInt32(attributeAccess[0]);
             AccessMode mode = (AccessMode)Convert.ToInt32(attributeAccess[1]);
             //With some meters id is negative. 
             if (id > 0)
             {
                 obj.SetAccess(id, mode);
             }
         }
         if (((object[])access[1]).Length != 0)
         {
             if (((object[])access[1])[0] is object[])
             {
                 foreach (object[] methodAccess in (object[])access[1])
                 {
                     int id = Convert.ToInt32(methodAccess[0]);
                     int tmp;
                     //If version is 0.
                     if (methodAccess[1] is Boolean)
                     {
                         tmp = ((Boolean)methodAccess[1]) ? 1 : 0;
                     }
                     else//If version is 1.
                     {
                         tmp = Convert.ToInt32(methodAccess[1]);
                     }
                     obj.SetMethodAccess(id, (MethodAccessMode)tmp);
                 }
             }
             else //All versions from Actaris SL 7000 do not return collection as standard says.
             {
                 object[] arr = (object[])access[1];
                 int id = Convert.ToInt32(arr[0]) + 1;
                 int tmp;
                 //If version is 0.
                 if (arr[1] is Boolean)
                 {
                     tmp = ((Boolean)arr[1]) ? 1 : 0;
                 }
                 else//If version is 1.
                 {
                     tmp = Convert.ToInt32(arr[1]);
                 }
                 obj.SetMethodAccess(id, (MethodAccessMode)tmp);
             }
         }
     }           
     if (baseName != null)
     {
         obj.ShortName = Convert.ToUInt16(baseName);
     }
     if (version != null)
     {
         obj.Version = Convert.ToInt32(version);
     }
     if (logicalName is byte[])
     {
         obj.LogicalName = GXDLMSObject.toLogicalName((byte[])logicalName);
     }
     else
     {
         obj.LogicalName = logicalName.ToString();
     }
 }
コード例 #5
0
ファイル: GXDLMSClient.cs プロジェクト: jacea/Gurux.DLMS.Net
 /// <summary>
 /// Reserved for internal use.
 /// </summary>
 /// <param name="objectType"></param>
 /// <param name="version"></param>
 /// <param name="baseName"></param>
 /// <param name="logicalName"></param>
 /// <param name="accessRights"></param>
 /// <param name="attributeIndex"></param>
 /// <param name="dataIndex"></param>
 internal static void UpdateObjectData(GXDLMSObject obj, ObjectType objectType, object version, object baseName, object logicalName, object accessRights, int attributeIndex, int dataIndex)
 {
     obj.ObjectType = objectType;
     // Check access rights...            
     if (accessRights != null && accessRights.GetType().IsArray)
     {
         //access_rights: access_right
         object[] access = (object[])accessRights;
         foreach (object[] attributeAccess in (object[])access[0])
         {
             int id = Convert.ToInt32(attributeAccess[0]);
             AccessMode mode = (AccessMode)Convert.ToInt32(attributeAccess[1]);
             //With some meters id is negative. 
             if (id > 0)
             {
                 obj.SetAccess(id, mode);
             }
         }
         foreach (object[] methodAccess in (object[])access[1])
         {
             int id = Convert.ToInt32(methodAccess[0]);
             int tmp;
             //If version is 0.
             if (methodAccess[1] is Boolean)
             {
                 tmp = ((Boolean)methodAccess[1]) ? 1 : 0;
             }
             else//If version is 1.
             {
                 tmp = Convert.ToInt32(methodAccess[1]);
             }
             obj.SetMethodAccess(id, (MethodAccessMode)tmp);
         }
     }
     ((IGXDLMSColumnObject)obj).SelectedAttributeIndex = attributeIndex;
     ((IGXDLMSColumnObject)obj).SelectedDataIndex = dataIndex;
     if (baseName != null)
     {
         obj.ShortName = Convert.ToUInt16(baseName);
     }
     if (version != null)
     {
         obj.Version = Convert.ToInt32(version);
     }
     if (logicalName is byte[])
     {
         obj.LogicalName = GXDLMSObject.toLogicalName((byte[])logicalName);
     }
     else
     {
         obj.LogicalName = logicalName.ToString();
     }
 }
コード例 #6
0
 void UpdateAccessRights(GXDLMSObject obj, Object[] buff)
 {
     foreach (Object[] attributeAccess in (Object[])buff[0])
     {
         int id = Convert.ToInt32(attributeAccess[0]);
         int mode = Convert.ToInt32(attributeAccess[1]);
         obj.SetAccess(id, (AccessMode)mode);
     }
     foreach (Object[] methodAccess in (Object[])buff[1])
     {
         int id = Convert.ToInt32(methodAccess[0]);
         int tmp;
         //If version is 0.
         if (methodAccess[1] is Boolean)
         {
             tmp = ((Boolean)methodAccess[1]) ? 1 : 0;
         }
         else//If version is 1.
         {
             tmp = Convert.ToInt32(methodAccess[1]);
         }
         obj.SetMethodAccess(id, (MethodAccessMode)tmp);
     }
 }