using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO.Ports;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using My_ClassLibrary;

namespace 串口调试助手
{
public partial class Form1 : Form
{
bool m_mac = false;
Class1 mac = new Class1();
public Form1()
{
InitializeComponent();
if (mac.ProductVersion_MacGet(m_mac))
{ }
else
{
MessageBox.Show("No permission to open!", "Hint!", MessageBoxButtons.OK);
this.Close();
}
}

string hms;
SerialPort m_Light_;
Boolean SerialPort_status = false;

public Color AppWorkspace { get; private set; }

private void button2_Click(object sender, EventArgs e)
{
try
{
if (m_Light_ != null && m_Light_.IsOpen == false)
{
m_Light_ = new SerialPort(comboBox1.Text, 19200, Parity.None, 8, StopBits.One);
m_Light_.Open();
button2.Text = "Stop";
button2.BackColor = Color.Red;
SerialPort_status = true;
Send_button.Enabled = true;
Send_Data.Enabled = true;
trackBar1.Enabled = true;
trackBar2.Enabled = true;
trackBar3.Enabled = true;
trackBar4.Enabled = true;
timer1.Enabled = true;

listBox1.Items.Add(hms + "Serial Port Opened!");
}
else
{
m_Light_.Close();
button2.Text = "Open";
button2.BackColor = AppWorkspace;
SerialPort_status = false;
Send_button.Enabled = false;
Send_Data.Enabled = false;
trackBar1.Enabled = false;
trackBar2.Enabled = false;
trackBar3.Enabled = false;
trackBar4.Enabled = false;
timer1.Enabled = false;

listBox1.Items.Add(hms + "Serial Port Closed!");

}
}
catch (Exception a)
{
listBox1.Items.Add(hms + " [" + a + "]");
MessageBox.Show(a.Message,"Hint!",MessageBoxButtons.OK);
}
}

private void timer1_Tick(object sender, EventArgs e)
{
hms = DateTime.Now.ToString("yyyy:MM:dd hh:mm:ss");
}

string Value1;
private void trackBar1_Scroll(object sender, EventArgs e)
{
if (SerialPort_status)
{
try
{
int trackBar = Convert.ToInt16((sender as TrackBar).Tag);
switch (trackBar)
{
case 1:
Value1 = "SA0" + trackBar1.Value.ToString("000") + "#";
CH1_label.Text = trackBar1.Value.ToString("000");
break;
case 2:
Value1 = "SB0" + trackBar2.Value.ToString("000") + "#";
CH2_label.Text = trackBar2.Value.ToString("000");
break;
case 3:
Value1 = "SC0" + trackBar3.Value.ToString("000") + "#";
CH3_label.Text = trackBar3.Value.ToString("000");
break;
case 4:
Value1 = "SD0" + trackBar4.Value.ToString("000") + "#";
CH4_label.Text = trackBar4.Value.ToString("000");
break;
}
m_Light_.Write(Value1);
listBox1.Items.Add(hms + Value1);
}
catch (Exception a)
{
MessageBox.Show(a.Message, "Hint!", MessageBoxButtons.OK);
}
}
else
{
MessageBox.Show("Serial Port Not Open!","Hint!",MessageBoxButtons.OK);
}
}

private void Send_button_Click(object sender, EventArgs e)
{
if (SerialPort_status && Send_Data.Text != string.Empty)
{
string m_Send_Data = Send_Data.Text;
m_Light_.Write(m_Send_Data);
listBox1.Items.Add(hms + m_Send_Data);
}
else
{
MessageBox.Show("Not Data!!!","Hint!",MessageBoxButtons.OK);
}
}

private void Form1_Load(object sender, EventArgs e)
{
Send_button.Enabled = false;
Send_Data.Enabled = false;
trackBar1.Enabled = false;
trackBar2.Enabled = false;
trackBar3.Enabled = false;
trackBar4.Enabled = false;
timer1.Enabled = false;

}

private void serialPort_DataReceived()
{
string str = "";
do
{
int count = m_Light_.BytesToRead;
if (count <= 0)
{
break;
}
byte[] readBuffer = new byte[count];
Application.DoEvents();
m_Light_.Read(readBuffer, 0, count);
str += System.Text.Encoding.Default.GetString(readBuffer);

}
while (m_Light_.BytesToRead > 0);
{
listBox1.Items.Add(str);
}
}

}
}

最新文章

  1. ref 和 out
  2. 在linux中安装adb和fastboot工具
  3. windows下安装RabbitMq-Service
  4. Response.Redirect(&quot;x.aspx);跳转后session为null的解决方法
  5. C++模板元编程 - 1 基本数据类型和运算
  6. js 如何获取文本框中光标索引位置
  7. 每用户订阅上的所有者 SID 不存在 (异常来自 HRESULT:0x80040207)
  8. 【TLD】标签库描述符
  9. java基础之开发环境搭建
  10. CEGUI 输入法窗口实现
  11. 快速构建Windows 8风格应用37-常见发布注意事项
  12. 23. leetcode 169. Majority Element
  13. 002.RHCS-配置Ceph存储集群
  14. 从零开始学安全(十三)●SQL server 2008 R2 安装
  15. onclick=&quot;return function()&quot;的使用情况
  16. zabbix server+agent+proxy搭建性能监控平台
  17. Velocity.js初识
  18. 搭建一个免费的,无限流量的Blog----github Pages和Jekyll入门[zz]
  19. [osg]osgcallback各种回调使用的例子介绍
  20. 第9章 应用层(4)_超文本传输协议HTTP

热门文章

  1. 用SQL2000还原bak文件
  2. MySQL基本操作之命令行操作
  3. 如何进入/home/user/.wine
  4. Spring框架的AOP的底层实现
  5. java读取配置文件的方法
  6. 3、基本的Get和Post访问(含代理请求)
  7. window.name跨域实现
  8. 编写可维护的JavaScript 收纳架
  9. python的介绍和及基本的使用
  10. Vim配置(转)