ing...
This commit is contained in:
130
AGVEmulator/UC/SerialConn.cs
Normal file
130
AGVEmulator/UC/SerialConn.cs
Normal file
@@ -0,0 +1,130 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace AGVEmulator
|
||||
{
|
||||
public partial class SerialConn : UserControl
|
||||
{
|
||||
public AR.Dev.RS232 dev { get; set; }
|
||||
public SerialConn()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
void AttachEvent()
|
||||
{
|
||||
dev.Message += Dev_Message;
|
||||
}
|
||||
void DetachEvent()
|
||||
{
|
||||
dev.Message -= Dev_Message;
|
||||
}
|
||||
private void Dev_Message(object sender, AR.Dev.RS232.MessageEventArgs e)
|
||||
{
|
||||
if (e.MsgType == AR.Dev.RS232.MessageType.Recv)
|
||||
ToggleRX();
|
||||
else if (e.MsgType == AR.Dev.RS232.MessageType.Send)
|
||||
ToggleTX();
|
||||
}
|
||||
|
||||
public void SetPortList(string[] list)
|
||||
{
|
||||
cmbPOrt.Items.Clear();
|
||||
foreach (var item in list)
|
||||
cmbPOrt.Items.Add(item);
|
||||
}
|
||||
public string PortName
|
||||
{
|
||||
get
|
||||
{
|
||||
return cmbPOrt.Text;
|
||||
}
|
||||
set { this.cmbPOrt.Text = value; }
|
||||
}
|
||||
public int BaudRate
|
||||
{
|
||||
get
|
||||
{
|
||||
return int.Parse(cmbBaud.Text);
|
||||
}
|
||||
set
|
||||
{
|
||||
cmbBaud.Text = value.ToString();
|
||||
}
|
||||
}
|
||||
public void ToggleTX()
|
||||
{
|
||||
if (lbtx.BackColor == Color.DeepSkyBlue)
|
||||
lbtx.BackColor = Color.White;
|
||||
else lbtx.BackColor = Color.DeepSkyBlue;
|
||||
}
|
||||
public void ToggleRX()
|
||||
{
|
||||
if (lbrx.BackColor == Color.Lime)
|
||||
lbrx.BackColor = Color.White;
|
||||
else lbrx.BackColor = Color.Lime;
|
||||
}
|
||||
public void Disconnect()
|
||||
{
|
||||
if (this.dev.IsOpen)
|
||||
{
|
||||
DetachEvent();
|
||||
dev.Close();
|
||||
}
|
||||
if (dev.IsOpen)
|
||||
button1.BackColor = Color.Lime;
|
||||
else button1.BackColor = Color.Tomato;
|
||||
}
|
||||
public void Connect()
|
||||
{
|
||||
if (this.dev.IsOpen)
|
||||
{
|
||||
DetachEvent();
|
||||
dev.Close();
|
||||
}
|
||||
else
|
||||
{
|
||||
this.dev.PortName = cmbPOrt.Text;
|
||||
this.dev.BaudRate = int.Parse(cmbBaud.Text);
|
||||
AttachEvent();
|
||||
try
|
||||
{
|
||||
dev.Open();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
button1.BackColor = Color.Red;
|
||||
}
|
||||
}
|
||||
|
||||
if (dev.IsOpen)
|
||||
button1.BackColor = Color.Lime;
|
||||
else button1.BackColor = Color.Tomato;
|
||||
}
|
||||
|
||||
private void button1_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (this.dev == null)
|
||||
{
|
||||
MessageBox.Show("시리얼 개체가 연결되지 않았습니다");
|
||||
return;
|
||||
}
|
||||
if(int.TryParse(cmbBaud.Text,out int baud)==false)
|
||||
{
|
||||
MessageBox.Show("Baudrate 값이 올바르지 않습니다");
|
||||
return;
|
||||
}
|
||||
Connect();
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user