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 ES_GripperSample { public partial class Form1 : Form { private CCaoEngine _eng; private CCaoWorkspace _ws; private CCaoController _ctrl; enum Status { Conected, Disconected } public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { // Create CaoEngine _eng = new CCaoEngine(); // Create CaoWorkspace _ws = _eng.AddWorkspace("SampleWorkspace", ""); ChangeEnable(Status.Disconected); } private void btnConnect_Click(object sender, EventArgs e) { // Create CaoController Option var optionString = "Conn=com:" + _nudCom.Value + ":" + _nudBaudrate.Value +",RatedTorque="+_nudRatedTorque.Value+",Timeout="+_nudTimeout.Value; try { // Create CaoController _ctrl = _ws.AddController("controller1", "CaoProv.Dai-ichiSeiko.ESTORQ", string.Empty, optionString); ChangeEnable(Status.Conected); } catch (Exception ex) { MessageBox.Show(this, ex.Message); } } private void btnDisconnect_Click(object sender, EventArgs e) { try { // Delete CaoController if (_ctrl != null) { _ws.Controllers.Remove(_ctrl.Index); _ctrl = null; } ChangeEnable(Status.Disconected); } catch (Exception ex) { MessageBox.Show(this, ex.Message); } } private void btnGetTorque_Click(object sender, EventArgs e) { try { var torque = (double)_ctrl.Execute("GetTorque", ""); _txbTorqueValue.Text = torque.ToString("F3"); } catch (Exception ex) { MessageBox.Show(this, ex.Message); } } private void btnGetVersion_Click(object sender, EventArgs e) { try { _txbVersion.Text = _ctrl.Execute("GetDeviceVersion", "").ToString().Split(' ').ElementAt(2); } catch (Exception ex) { MessageBox.Show(this, ex.Message); } } private void ChangeEnable(Status status) { if (status == Status.Conected) { _gbxExecute.Enabled = true; _btnConnect.Enabled = false; _btnDisconnect.Enabled = true; } else if (status == Status.Disconected) { _gbxExecute.Enabled = false; _btnConnect.Enabled = true; _btnDisconnect.Enabled = false; } } private void Form1_FormClosing(object sender, FormClosingEventArgs e) { // Delete CaoController, _btnDisconnect.PerformClick(); // Delete CaoWorkspace and CaoEngine try { if(_eng != null) { _eng.Dispose(); } _ws = null; _eng = null; } catch (Exception ex) { MessageBox.Show(this, ex.Message); } } } }