示例#1
0
 public GXDLMSMBusClientDataDlg(GXMBusClientData data)
 {
     InitializeComponent();
     Data = data;
     foreach (DataType it in Enum.GetValues(typeof(DataType)))
     {
         if (it != DataType.None && it != DataType.Array && it != DataType.Structure)
         {
             DataTypeCb.Items.Add(it);
         }
     }
     ValueInformationTb.Text = GXDLMSTranslator.ToHex(data.ValueInformation);
     DataInformationTb.Text  = GXDLMSTranslator.ToHex(data.DataInformation);
     if (data.Data is byte[])
     {
         DataTb.Text = GXDLMSTranslator.ToHex((byte[])data.Data);
     }
     else
     {
         DataTb.Text = Convert.ToString(data.Data);
     }
     DataTypeCb.SelectedItem = GXDLMSConverter.GetDLMSDataType(data.Data);
 }
 void OnShowDlg(GXActionArgs arg)
 {
     if (InvokeRequired)
     {
         BeginInvoke(new ShowDlgEventHandler(OnShowDlg), arg).AsyncWaitHandle.WaitOne();
     }
     else
     {
         if (arg.Index == 1)
         {
             GXTextDlg dlg = new GXTextDlg(Properties.Resources.InstallMBusClient, Properties.Resources.Address, "0", typeof(sbyte));
             if (dlg.ShowDialog(this) == DialogResult.OK)
             {
                 arg.Value = sbyte.Parse(dlg.GetValue());
             }
             else
             {
                 arg.Handled = true;
             }
         }
         else if (arg.Index == 2)
         {
             GXTextDlg dlg = new GXTextDlg(Properties.Resources.DeInstallMBusClient, Properties.Resources.Address, "0", typeof(sbyte));
             arg.Handled = dlg.ShowDialog(this) != DialogResult.OK;
         }
         else if (arg.Index == 6)
         {
             GXMBusClientData        data = new GXMBusClientData();
             GXDLMSMBusClientDataDlg dlg  = new GXDLMSMBusClientDataDlg(data);
             if (dlg.ShowDialog(this) == DialogResult.OK)
             {
                 GXMBusClientData[] arr    = new GXMBusClientData[] { data };
                 GXDLMSMBusClient   target = Target as GXDLMSMBusClient;
                 arg.Value = target.SendData(arg.Client, arr);
             }
             else
             {
                 arg.Handled = true;
             }
         }
         else if (arg.Index == 7)
         {
             GXTextDlg dlg = new GXTextDlg("Set encryption key.", "Key:", "", typeof(byte[]));
             if (dlg.ShowDialog(this) == DialogResult.OK)
             {
                 GXDLMSMBusClient target = Target as GXDLMSMBusClient;
                 arg.Value = target.SetEncryptionKey(arg.Client, GXDLMSTranslator.HexToBytes(dlg.GetValue()));
             }
             else
             {
                 arg.Handled = true;
             }
         }
         else if (arg.Index == 8)
         {
             GXTextDlg dlg = new GXTextDlg("Transfer encryption key.", "Key:", "", typeof(byte[]));
             if (dlg.ShowDialog(this) == DialogResult.OK)
             {
                 GXDLMSMBusClient target = Target as GXDLMSMBusClient;
                 arg.Value = target.TransferKey(arg.Client, GXDLMSTranslator.HexToBytes(dlg.GetValue()));
             }
             else
             {
                 arg.Handled = true;
             }
         }
         else
         {
             arg.Handled = true;
         }
     }
 }