示例#1
0
 private void ActiveMasksCb_SelectedIndexChanged(object sender, EventArgs e)
 {
     try
     {
         GXDLMSRegisterActivation target = (GXDLMSRegisterActivation)Target;
         target.ActiveMask = target.MaskList[ActiveMasksCb.SelectedIndex].Key;
         errorProvider1.SetError(ActiveMasksCb, Properties.Resources.ValueChangedTxt);
         Target.UpdateDirty(4, target.ActiveMask);
     }
     catch (Exception ex)
     {
         MessageBox.Show(Parent, ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
 }
示例#2
0
 public void OnValueChanged(GXDLMSViewArguments arg)
 {
     GXDLMSRegisterActivation target = (GXDLMSRegisterActivation)Target;
     if (arg.Index == 2)
     {
         // register_assignment
         Assigments.Items.Clear();
         if (target.RegisterAssignment != null)
         {
             foreach (GXDLMSObjectDefinition it in target.RegisterAssignment)
             {
                 ListViewItem li = new ListViewItem(it.ObjectType.ToString());
                 li.SubItems.Add(it.LogicalName);
                 Assigments.Items.Add(li);
             }
         }
     }
     else if (arg.Index == 3)
     {
         // mask_list
         Masks.Items.Clear();
         ActiveMasksCb.Items.Clear();
         StringBuilder sb = new StringBuilder();
         string str;
         foreach (KeyValuePair<byte[], byte[]> it in target.MaskList)
         {
             if (IsAscii(it.Key))
             {
                 str = ASCIIEncoding.ASCII.GetString(it.Key);
             }
             else
             {
                 str = GXDLMSTranslator.ToHex(it.Key);
             }
             ListViewItem li = new ListViewItem(str);
             sb.Length = 0;
             foreach (byte v in it.Value)
             {
                 sb.Append(v);
                 sb.Append(", ");
             }
             if (sb.Length != 0)
             {
                 sb.Length -= 2;
             }
             li.SubItems.Add(sb.ToString());
             li.Tag = it;
             Masks.Items.Add(li);
             ActiveMasksCb.Items.Add(str);
         }
     }
     else if (arg.Index == 4)
     {
         string str;
         if (target.ActiveMask != null && IsAscii(target.ActiveMask))
         {
             str = ASCIIEncoding.ASCII.GetString(target.ActiveMask);
         }
         else
         {
             str = GXDLMSTranslator.ToHex(target.ActiveMask);
         }
         this.ActiveMasksCb.SelectedIndexChanged -= new System.EventHandler(this.ActiveMasksCb_SelectedIndexChanged);
         ActiveMasksCb.SelectedIndex = ActiveMasksCb.FindString(str);
         this.ActiveMasksCb.SelectedIndexChanged += new System.EventHandler(this.ActiveMasksCb_SelectedIndexChanged);
     }
 }
示例#3
0
 void OnShowDlg(GXActionArgs arg)
 {
     if (InvokeRequired)
     {
         BeginInvoke(new ShowDlgEventHandler(OnShowDlg), arg).AsyncWaitHandle.WaitOne();
     }
     else
     {
         GXDLMSRegisterActivation target = (GXDLMSRegisterActivation)Target;
         ListViewItem li = null;
         if (arg.Index == 1)
         {
             GXDLMSObjectDefinition item = new GXDLMSObjectDefinition();
             GXDLMSTargetObjectDlg dlg = new GXDLMSTargetObjectDlg("Add new register", null,
                    Target.Parent.GetObjects(new ObjectType[] { ObjectType.Register, ObjectType.ExtendedRegister, ObjectType.DemandRegister }));
             if (dlg.ShowDialog(this) == DialogResult.OK)
             {
                 item.ObjectType = dlg.Target.ObjectType;
                 item.LogicalName = dlg.Target.LogicalName;
                 li = Assigments.Items.Add(item.ObjectType.ToString());
                 li.SubItems.Add(item.LogicalName);
                 li.Tag = item;
                 arg.Value = target.AddRegister(arg.Client, ((GXDLMSTargetObjectDlg)dlg).Target);
             }
             else
             {
                 arg.Handled = true;
             }
         }
         else if (arg.Index == 2)
         {
             GXDLMSObjectDefinition item = new GXDLMSObjectDefinition();
             GXDLMSRegisterActivationDlg dlg = new GXDLMSRegisterActivationDlg("Add new mask", null, null);
             if (dlg.ShowDialog(this) == DialogResult.OK)
             {
                 arg.Value = target.AddMask(arg.Client, dlg.MaskName, dlg.IndexArray);
             }
             else
             {
                 arg.Handled = true;
             }
         }
         else if (arg.Index == 3)
         {
             if (Masks.SelectedItems.Count == 1)
             {
                 GXDLMSObjectDefinition item = new GXDLMSObjectDefinition();
                 KeyValuePair<byte[], byte[]> it = (KeyValuePair<byte[], byte[]>)Masks.SelectedItems[0].Tag;
                 GXDLMSRegisterActivationDlg dlg = new GXDLMSRegisterActivationDlg("Remove mask", it.Key, it.Value);
                 if (dlg.ShowDialog(this) == DialogResult.OK)
                 {
                     arg.Value = target.RemoveMask(arg.Client, ((GXDLMSRegisterActivationDlg)dlg).MaskName);
                 }
                 else
                 {
                     arg.Handled = true;
                 }
             }
             else
             {
                 MessageBox.Show(Parent, "Select one item to remove", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
             }
         }
         else
         {
             arg.Handled = true;
         }
     }
 }