111,088
社区成员




public partial class frmBluetooth : Form
{
SerialPort serialIn;
SerialPort serialOut;
Thread rcvThread;
bool disconnectRequested = false;
public frmBluetooth()
{
InitializeComponent();
}
private void frmBluetooth_Load(object sender, EventArgs e)
{
string[] ports = SerialPort.GetPortNames();
for (int i = 0; i < ports.Length; i++)
{
cboxComin.Items.Add(ports[i]);
cboxComout.Items.Add(ports[i]);
}
}
private void btnConnect_Click(object sender, EventArgs e)
{
serialIn = new SerialPort(this.cboxComin.SelectedItem.ToString());
serialIn.ReadTimeout = 3000;
serialOut = new SerialPort(this.cboxComout.SelectedItem.ToString());
serialOut.ReadTimeout = 3000;
try
{
if (!serialIn.IsOpen)
{
serialIn.Open();
}
if (!serialOut.IsOpen)
{
serialOut.Open();
}
rcvThread = new Thread(new ThreadStart(ReceiveData));
rcvThread.Start();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
private void ReceiveData()
{
while (!disconnectRequested)
{
try
{
string line = serialIn.ReadLine();
if (line.CompareTo("quit$$$") == 0)
{
disconnectRequested = true;
continue;
}
if (!string.IsNullOrEmpty(line))
{
this.lboxBarcode.Items.Add(line);
}
}
catch
{ }
}
if (disconnectRequested)
{
serialIn.Close();
serialOut.Close();
}
}
private void btnDisconnect_Click(object sender, EventArgs e)
{
try
{
disconnectRequested = true;
serialOut.WriteLine("quit$$$");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
private void btnConnect_Click(object sender, EventArgs e)
{
serialIn = new SerialPort(this.cboxComin.SelectedItem.ToString());
serialIn.ReadTimeout = 3000;
serialOut = new SerialPort(this.cboxComout.SelectedItem.ToString());
serialOut.ReadTimeout = 3000;
try
{
if (!serialIn.IsOpen)
{
serialIn.Open();
serialIn.DataReceived += new SerialDataReceivedEventHandler(serialIn_DataReceived);
}
if (!serialOut.IsOpen)
{
serialOut.Open();
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}