Example #1
0
 private void CheckUpdatesBtn_Click(object sender, EventArgs e)
 {
     try
     {
         if (MediaList.SelectedItems.Count != 1)
         {
             throw new Exception("Update check failed. Selected media to check updates.");
         }
         Assembly   asm     = (Assembly)MediaList.SelectedItems[0].Tag;
         IGXUpdater updater = null;
         foreach (Type type in asm.GetTypes())
         {
             if (!type.IsAbstract && type.IsClass && typeof(IGXUpdater).IsAssignableFrom(type))
             {
                 updater = Activator.CreateInstance(type) as IGXUpdater;
                 break;
             }
         }
         if (updater == null)
         {
             throw new Exception("Update check failed. Update checker is not supported.");
         }
         checkUpdates = new GXAsyncWork(this, OnAsyncStateChange, CheckUpdates, OnError, null, new object[] { updater, asm });
         checkUpdates.Start();
     }
     catch (Exception Ex)
     {
         GXDLMS.Common.Error.ShowError(this, Ex);
     }
 }
 /// <summary>
 /// Start connection to the selected media.
 /// </summary>
 private void OkBtn_Click(object sender, EventArgs e)
 {
     try
     {                
         //Apply media dialog settings.
         if (PropertiesForm != null)
         {
             ((IGXPropertyPage)PropertiesForm).Apply();
         }
         SelectedMedia.Validate();
         TransactionWork = new GXAsyncWork(this, OnAsyncStateChange, ConnectAsync, null, "", new object[] { DataCollector.Guid, SelectedMedia.MediaType, SelectedMedia.Name, SelectedMedia.Settings });
         TransactionWork.Start();
     }            
     catch (Exception ex)
     {                
         GXCommon.ShowError(this, ex);
     }
 }
 void ApplyChanges(GXDeviceProfile dp)
 {
     if (Device)
     {
         Arguments.Target = GXDevice.Create(dp.Protocol, dp.Name, "");
     }
     else
     {
         Arguments.Target = dp;
     }
     try
     {
         GXJsonParser parser = new GXJsonParser();
         GXDeviceProfileFormSettings settings = new GXDeviceProfileFormSettings();
         settings.Custom = CustomCB.Checked;
         settings.Download = DownloadCB.Checked;
         settings.SearchText = SearchTB.Text;
         settings.Earlier = ShowEarlierVersionsCB.Checked;
         Arguments.Settings = parser.Serialize(settings);
     }
     catch (Exception ex)
     {
         System.Diagnostics.Debug.WriteLine(ex.Message);
     }
     if (Arguments.OnSelect != null)
     {
         if (Arguments.UseThread)
         {
             DialogResult = DialogResult.None;
             Work = new GXAsyncWork(this, OnAsyncStateChange, OnSelect, null, "Selecting", null);
             Work.Start();
             return;
         }
         else
         {
             Arguments.OnSelect(Arguments.Target, Arguments);
         }
     }
     DialogResult = DialogResult.OK;
     Close();
 }
 /// <summary>
 /// Accept changes.
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void OKBtn_Click(object sender, EventArgs e)
 {
     try
     {                
         if (DeviceProfiles.SelectedItems.Count != 1)
         {
             throw new Exception("No device profile is selected.");
         }     
         GXDeviceProfile dp = DeviceProfiles.SelectedItems[0].Tag as GXDeviceProfile;
         //Start thread and load protocol if protocol is not loaded yet.
         if (!GXDeviceList.Protocols.ContainsKey(dp.Protocol))
         {
             Work = new GXAsyncWork(this, OnAsyncStateChange, Download, null, "Downloading", new object[]{dp});
             Work.Start();
             return;
         }
         ApplyChanges(dp);
     }
     catch (Exception ex)
     {
         DialogResult = DialogResult.None;
         Gurux.Common.GXCommon.ShowError(this, ex);
     }
 }
 /// <summary>
 /// Executes connecting of the item or the parent GXDevice of it asynchronously.
 /// </summary>
 /// <param name="item">The item to be connected.</param>
 public void Connect(System.Windows.Forms.Control sender, object item)
 {
     TransactionWork = new GXAsyncWork(sender, OnAsyncStateChange, ConnectAsync, null, Gurux.DeviceSuite.Properties.Resources.ConnectingTxt, new object[] { item });
     TransactionWork.Start();
 }
Example #6
0
 /// <summary>
 /// Read selected DC or device.
 /// </summary>
 public void Read()
 {
     try
     {
         if (DCList.Focused)
         {
             foreach (ListViewItem it in DCList.SelectedItems)
             {
                 Client.Read(it.Tag as GXAmiDataCollector);
             }
         }
         else if (DevicesList.Focused)
         {
             if (TransactionWork != null && TransactionWork.IsRunning)
             {
                 throw new Exception("Read Failed. Transcaction already in progress.");
             }
             List<GXAmiDevice> devices = new List<GXAmiDevice>();
             foreach (ListViewItem it in DevicesList.SelectedItems)
             {
                 devices.Add(it.Tag as GXAmiDevice);                        
             }
             TransactionWork = new GXAsyncWork(this, OnAsyncStateChange, ReadAsync, null, Gurux.DeviceSuite.Properties.Resources.ReadingTxt, new object[] { Client, devices.ToArray() });
             TransactionWork.Start();
         }                
         else
         {
             throw new Exception("Unknown target.");
         }
     }
     catch (Exception ex)
     {
         GXCommon.ShowError(this.ParentComponent, Gurux.DeviceSuite.Properties.Resources.GuruxDeviceSuiteTxt, ex);
     }
 }
 /// <summary>
 /// Test DB connection.
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void TestBtn_Click(object sender, EventArgs e)
 {
     try
     {
         if (string.IsNullOrEmpty(AddressTB.Text))
         {
             throw new Exception("GuruxAMI host name is invalid.");
         }
         Gurux.DeviceSuite.Properties.Settings.Default.AmiHostName = "http://" + AddressTB.Text;
         TransactionWork = new GXAsyncWork(this, OnAsyncStateChange, CreateDBAsync, null, "", null);
         TransactionWork.Start();
     }
     catch (Exception ex)
     {
         AmiForm.Start(true, true);
         GXCommon.ShowError(this, ex);
     }                
 }
 /// <summary>
 /// Clear text if connected. Otherwice reconnect.
 /// </summary>
 private void CommandPromptClearBtn_Click(object sender, EventArgs e)
 {
     try
     {
         if (CommandPromptTB.Enabled)
         {
             CommandPromptTB.Text = string.Empty;
         }
         else
         {
             TransactionWork = new GXAsyncWork(this, OnAsyncStateChange, ConnectAsync, null, Gurux.DeviceSuite.Properties.Resources.ConnectingTxt, new object[] { Collector.Guid, Media, MediaName, Settings });
             TransactionWork.Start();
         }
     }
     catch (Exception ex)
     {
         GXCommon.ShowError(ParentDlg, Gurux.DeviceSuite.Properties.Resources.GuruxDeviceSuiteTxt, ex);
     }
 }