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; } } }