using System; using System.Linq; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Text; using System.Windows.Forms; using System.IO.Ports; namespace _7k_ai { public partial class Form1 : Form { IntPtr hPort; public Form1() { InitializeComponent(); //Load com port data to comobox Object LoadComPort(); btnCloseCOM.Enabled = false; } private void LoadComPort() { //Set default int counter = 10; //Get number of COM port and assign COM port list in cmPort. foreach (string s in SerialPort.GetPortNames()) { if (s.Length == 4) { //COM0~COM9 cmbComPort.Items.Add(s); } else { /* COM10 and later New com port name: "$device\\COM10" , "$device\\COM11" , "$device\\COM12" , "$device\\COM13" , ................. */ string ss; ss = "COM" + counter.ToString(); counter++; cmbComPort.Items.Add(ss); } } cmbComPort.SelectedIndex = 0; } private void btnOpenCOM_Click(object sender, EventArgs e) { //Open com port this.hPort = PACNET.UART.Open(cmbComPort.Text + "," + txtBaurdRate.Text); if (hPort == (IntPtr)(-1)) { uint ec = PACNET.ErrHandling.GetLastError(); MessageBox.Show(((PACNET.ErrCode)ec).ToString() + "\nError Code: 0x" + ec.ToString("X")); } else { btnOpenCOM.Enabled = false; btnCloseCOM.Enabled = true; } } private void btnReadAI_Click(object sender, EventArgs e) { float fValue = 0; bool iRet; int intReadChannel = int.Parse(txtReadChannel.Text); int intChannel = int.Parse(txtChannel.Text); if (intReadChannel <= intChannel) { //Read data iRet = PACNET.PAC_IO.ReadAI(hPort, PACNET.PAC_IO.PAC_REMOTE_IO(Convert.ToInt32(txtAddress.Text)), Convert.ToInt32(txtReadChannel.Text), Convert.ToInt16(txtChannel.Text), ref fValue); if (!iRet) { uint ec = PACNET.ErrHandling.GetLastError(); MessageBox.Show(((PACNET.ErrCode)ec).ToString() + "\nError Code: 0x" + ec.ToString("X")); } else { txtAIValue.Text = fValue.ToString(); } } else { MessageBox.Show("Your read channel is error , please rewrite read channel"); } } private void btnCloseCOM_Click(object sender, EventArgs e) { //Close com port PACNET.UART.Close(hPort); btnOpenCOM.Enabled = true; btnCloseCOM.Enabled = false; } private void button1_Click(object sender, EventArgs e) { int buffsize = Convert.ToInt16(txtChannel.Text); float[] fValue = new float[buffsize]; bool iRet; int intReadChannel = int.Parse(txtReadChannel.Text); int intChannel = int.Parse(txtChannel.Text); int len = 0; if (intReadChannel <= intChannel) { //Read data iRet = PACNET.PAC_IO.ReadAIAllExt( hPort, PACNET.PAC_IO.PAC_REMOTE_IO(Convert.ToInt32(txtAddress.Text)), fValue, buffsize, ref len); if (!iRet) { uint ec = PACNET.ErrHandling.GetLastError(); MessageBox.Show(((PACNET.ErrCode)ec).ToString() + "\nError Code: 0x" + ec.ToString("X")); } else { textBox1.Text = ""; for (int i = 0; i < buffsize; i++) { textBox1.Text += i + ": " + fValue[i] + "\r\n"; } textBox1.Text += "real total channel: " + len + "\r\n"; } } else { MessageBox.Show("Your read channel is error , please rewrite read channel"); } } } }