using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Runtime.InteropServices; using ORiN2.interop.CAO; namespace Panel { public partial class Form1 : Form { private CaoEngine caoEng; private CaoWorkspaces caoWss; private CaoWorkspace caoWs; private CaoController caoCtrl; private CaoVariable caoVar1; private CaoVariable caoVar2; private CaoVariable caoVar3; private CaoVariable caoVar4; private CaoVariable caoVar5; private CaoVariable caoVar6; public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { try { // Create CAO Engine caoEng = new CaoEngine(); caoWss = caoEng.Workspaces; caoWs = caoWss.Item(0); } catch (Exception ex) { MessageBox.Show(ex.Message); } } private void Form1_FormClosing(object sender, FormClosingEventArgs e) { cmdDisconnectRobot_Click(sender, e); if (caoWs != null) { Marshal.ReleaseComObject(caoWs); caoWs = null; } if (caoWss != null) { Marshal.ReleaseComObject(caoWss); caoWss = null; } if (caoEng != null) { Marshal.ReleaseComObject(caoEng); caoEng = null; } } private void cmdConnectRobot_Click(object sender, EventArgs e) { try { // Connect Dummy.Panel Provider caoCtrl = caoWs.AddController("Panel", "CaoProv.Dummy.Panel", "", ""); // Get Variable object caoVar1 = caoCtrl.AddVariable("Variable1", ""); caoVar2 = caoCtrl.AddVariable("Variable2", ""); caoVar3 = caoCtrl.AddVariable("Variable3", ""); caoVar4 = caoCtrl.AddVariable("Variable4", ""); caoVar5 = caoCtrl.AddVariable("Variable5", ""); caoVar6 = caoCtrl.AddVariable("Variable6", ""); cmdConnect.Enabled = false; cmdDisconnect.Enabled = true; cmdRefresh.Enabled = true; cmdWriteVar1.Enabled = true; cmdWriteVar2.Enabled = true; cmdWriteVar3.Enabled = true; } catch (Exception ex) { cmdDisconnectRobot_Click(sender, e); MessageBox.Show(ex.Message); } } private void cmdDisconnectRobot_Click(object sender, EventArgs e) { if (caoVar1 != null) { Marshal.ReleaseComObject(caoVar1); caoVar1 = null; } if (caoVar2 != null) { Marshal.ReleaseComObject(caoVar2); caoVar2 = null; } if (caoVar3 != null) { Marshal.ReleaseComObject(caoVar3); caoVar3 = null; } if (caoVar4 != null) { Marshal.ReleaseComObject(caoVar4); caoVar4 = null; } if (caoVar5 != null) { Marshal.ReleaseComObject(caoVar5); caoVar5 = null; } if (caoVar6 != null) { Marshal.ReleaseComObject(caoVar6); caoVar6 = null; } // Disconnect Provider if (caoCtrl != null) { CaoControllers ctrls = caoWs.Controllers; ctrls.Remove(caoCtrl.Name); Marshal.ReleaseComObject(caoCtrl); caoCtrl = null; Marshal.ReleaseComObject(ctrls); ctrls = null; } cmdConnect.Enabled = true; cmdDisconnect.Enabled = false; cmdRefresh.Enabled = false; cmdWriteVar1.Enabled = false; cmdWriteVar2.Enabled = false; cmdWriteVar3.Enabled = false; } private void cmdWriteVar1_Click(object sender, EventArgs e) { try { caoVar1.Value = txtVar1.Text; } catch (Exception ex) { MessageBox.Show(ex.Message); } } private void cmdWriteVar2_Click(object sender, EventArgs e) { try { caoVar2.Value = txtVar2.Text; } catch (Exception ex) { MessageBox.Show(ex.Message); } } private void cmdWriteVar3_Click(object sender, EventArgs e) { try { caoVar3.Value = txtVar3.Text; } catch (Exception ex) { MessageBox.Show(ex.Message); } } private void cmdRefresh_Click(object sender, EventArgs e) { try { // Get current value txtVar1.Text = caoVar1.Value.ToString(); txtVar2.Text = caoVar2.Value.ToString(); txtVar3.Text = caoVar3.Value.ToString(); // Check attribute "ON" if (caoVar4.Attribute == 1) { lblShowVar4.BackColor = Color.Green; lblShowVar4.ForeColor = Color.White; } else { lblShowVar4.BackColor = Color.WhiteSmoke; lblShowVar4.ForeColor = SystemColors.ControlText; } // Check attribute "--MANUAL--" if (caoVar5.Attribute == 1) { lblShowVar5.BackColor = Color.Yellow; } else { lblShowVar5.BackColor = Color.WhiteSmoke; } // Check attribute "<>" if (caoVar6.Attribute == 1) { lblShowVar6.BackColor = Color.Red; lblShowVar6.ForeColor = Color.White; } else { lblShowVar6.BackColor = Color.WhiteSmoke; lblShowVar6.ForeColor = SystemColors.ControlText; } } catch (Exception ex) { MessageBox.Show(ex.Message); } } } }