using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using ORiN2.ManagedCAO; namespace GetWdtSignalData { public partial class Form1 : Form { private CCaoEngine _eng; private CCaoWorkspace _ws; private CCaoController _ctrl; private CCaoVariable _varSignal; private CCaoVariable _varTimeStamp; public Form1() { InitializeComponent(); } private void btnConnect_Click(object sender, EventArgs e) { try { // Create CaoEngin _eng = new CCaoEngine(); // Create CaoWorkspace _ws = _eng.AddWorkspace("SampleWorkSpace", ""); // Create CaoController var option = "Conn=eth:" + txbIpAddress.Text + ",Interval=" + txbInterval.Text + ",FailureCount=" + txbFailureCount.Text; _ctrl = _ws.AddController("WDR", "CaoProv.PATLITE.WDR", string.Empty, option); btnConnect.Enabled = false; btnDisconnect.Enabled = true; btnGetVariableNames.Enabled = true; cmbMacAddress.Enabled = true; btnSelect.Enabled = true; btnCancel.Enabled = true; } catch(Exception ex) { MessageBox.Show(this, ex.Message); } } private void btnDisconnect_Click(object sender, EventArgs e) { try { // Delete CaoVariable btnCancel.PerformClick(); // Delete CaoController,CaoWorkspace and CaoEngine if (_ctrl != null) { _ws.Controllers.Remove(_ctrl.Index); _ctrl = null; } if (_ws != null) { _eng.Workspaces.Remove(_ws.Index); _ws = null; } _eng = null; btnConnect.Enabled = true; btnDisconnect.Enabled = false; btnGetVariableNames.Enabled = false; cmbMacAddress.Enabled = false; btnSelect.Enabled = false; btnCancel.Enabled = false; btnGetValue.Enabled = false; } catch(Exception ex) { MessageBox.Show(this, ex.Message); } } private void btnGetVariableNames_Click(object sender, EventArgs e) { try { // Get Variable Names cmbMacAddress.Items.Clear(); var variableNames = _ctrl.GetVariableNames(string.Empty); // In the case of no variableName if(variableNames == null) { return; } foreach (var varName in variableNames) { // The comboBox displays only Mac Address if (varName.Contains("TimeStamp_")) { continue; } //cmbMacAddress.Text += variableName; cmbMacAddress.Items.Add(varName); } } catch (Exception ex) { MessageBox.Show(this, ex.Message); } } private void btnSelect_Click(object sender, EventArgs e) { try { if(cmbMacAddress.Text == "") { MessageBox.Show(this, "Plese Select Mac Address"); return; } // Create CaoVariable _varSignal = _ctrl.AddVariable(cmbMacAddress.Text.ToString(), string.Empty); _varTimeStamp = _ctrl.AddVariable("TimeStamp_" + cmbMacAddress.Text.ToString(), string.Empty); btnSelect.Enabled = false; btnCancel.Enabled = true; btnGetValue.Enabled = true; } catch (Exception ex) { MessageBox.Show(this, ex.Message); } } private void btnCancel_Click(object sender, EventArgs e) { try { // Delete CaoVariables if(_varSignal != null) { _ctrl.Variables.Remove(_varSignal.Index); _varSignal = null; } if(_varTimeStamp != null) { _ctrl.Variables.Remove(_varTimeStamp.Index); _varTimeStamp = null; } ClearTextBox(); btnSelect.Enabled = true; btnCancel.Enabled = false; btnGetValue.Enabled = false; } catch (Exception ex) { MessageBox.Show(this, ex.Message); } } private void ClearTextBox() { txbRed.Clear(); txbYellow.Clear(); txbGreen.Clear(); txbBlue.Clear(); txbWhite.Clear(); txbBuzzer.Clear(); txbLQI.Clear(); txbTimeStamp.Clear(); } private void btnGetValue_Click(object sender, EventArgs e) { try { var signalData = (int[])_varSignal.Value; SetSignalData(signalData); var timeStampData = _varTimeStamp.Value.ToString(); txbTimeStamp.Text = timeStampData; } catch (Exception ex) { MessageBox.Show(this, ex.Message); } } private void SetSignalData(int[] signalData) { txbRed.Text = signalData[0].ToString(); txbYellow.Text = signalData[1].ToString(); txbGreen.Text = signalData[2].ToString(); txbBlue.Text = signalData[3].ToString(); txbWhite.Text = signalData[4].ToString(); txbBuzzer.Text = signalData[5].ToString(); txbLQI.Text = signalData[6].ToString(); } private void Form1_FormClosing(object sender, FormClosingEventArgs e) { try { btnDisconnect.PerformClick(); } catch(Exception ex) { MessageBox.Show(this, ex.Message); } } } }