📄 form1.cs
字号:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;
namespace wsdp
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
int a1, a2, a3, a4;
int b1, b2, b3, b4;
string SendData="00000000"; //处于定时器模式使用
private void Form1_Load(object sender, EventArgs e)
{
}
private void btnOpen_Click(object sender, EventArgs e)
{
if (btnOpen.Text.Equals("连接设备"))
{
try
{
serialPort1.PortName = txtPortName.Text;
serialPort1.BaudRate = int.Parse(txtBaudRate.Text);
serialPort1.Open();
btnOpen.Text = "关闭设备";
JS();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
else
{
try
{
serialPort1.Close();
btnOpen.Text = "连接设备";
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
System.IO.Ports.SerialPort serialPort = (System.IO.Ports.SerialPort)sender;
int len = serialPort.BytesToRead;
byte[] bs = new byte[len];
serialPort.Read(bs, 0, len);
if (len == 0)
{
return;
}
else
{
//接收处理
string r = Encoding.ASCII.GetString(bs, 0, len);
//接收数据处理
//RevDataChars.Invoke(new EventHandler(DoUpdate), r); //线程处理
}
}
//private void DoUpdate(object s, EventArgs e)
//{
// string x = s.ToString();
// if (x[0] == '+' && x.Length>5)
// {
// }
//}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
try
{
serialPort1.Close();
}
catch (Exception /*ex*/)
{
}
}
private void button1_Click(object sender, EventArgs e)
{
try
{
serialPort1.Close();
}
catch (Exception/* ex*/)
{
}
this.Close();
}
[DllImport("kernel32.dll")]
public static extern bool Beep(int freq, int duration);
private void buttonDoor_Click(object sender, EventArgs e)
{
Button btn = (Button)sender;
int i = btn.TabIndex - 100;
if (btn.FlatStyle == FlatStyle.Standard)
{
btn.ForeColor = Color.Red;
btn.FlatStyle = FlatStyle.Popup;
switch (i)
{
case 1: { a1 = 1; break; }
case 2: { a2 = 1; break; }
case 3: { a3 = 1; break; }
case 4: { a4 = 1; break; }
case 5: { b1 = 1; break; }
case 6: { b2 = 1; break; }
case 7: { b3 = 1; break; }
case 8: { b4 = 1; break; }
}
}
else
{
//关闭窗户
btn.ForeColor = Color.Blue;
btn.FlatStyle = FlatStyle.Standard;
switch (i)
{
case 1: { a1 = 0; break; }
case 2: { a2 = 0; break; }
case 3: { a3 = 0; break; }
case 4: { a4 = 0; break; }
case 5: { b1 = 0; break; }
case 6: { b2 = 0; break; }
case 7: { b3 = 0; break; }
case 8: { b4 = 0; break; }
}
}
JS();
}
private void JS()
{
string A = a4.ToString() + a3.ToString() + a2.ToString() + a1.ToString();
string B = b4.ToString() + b3.ToString() + b2.ToString() + b1.ToString();
int TAB = Convert.ToInt32(B + A, 2); //二进制字符串 转 十六进制
string data = Convert.ToString(TAB, 16);
byte[] buf = HexCon.StringToByte(data);
serialPort1.Write(buf, 0, buf.Length);
}
private void Form1_SizeChanged(object sender, EventArgs e)
{
}
private void button15_Click_1(object sender, EventArgs e)
{
button2.ForeColor = Color.Blue;
button2.FlatStyle = FlatStyle.Standard;
button3.ForeColor = Color.Blue;
button3.FlatStyle = FlatStyle.Standard;
button4.ForeColor = Color.Blue;
button4.FlatStyle = FlatStyle.Standard;
button5.ForeColor = Color.Blue;
button5.FlatStyle = FlatStyle.Standard;
button6.ForeColor = Color.Blue;
button6.FlatStyle = FlatStyle.Standard;
button7.ForeColor = Color.Blue;
button7.FlatStyle = FlatStyle.Standard;
button8.ForeColor = Color.Blue;
button8.FlatStyle = FlatStyle.Standard;
button9.ForeColor = Color.Blue;
button9.FlatStyle = FlatStyle.Standard;
}
private void btnRest_Click(object sender, EventArgs e)
{
button2.ForeColor = Color.Blue;
button2.FlatStyle = FlatStyle.Standard;
button3.ForeColor = Color.Blue;
button3.FlatStyle = FlatStyle.Standard;
button4.ForeColor = Color.Blue;
button4.FlatStyle = FlatStyle.Standard;
button5.ForeColor = Color.Blue;
button5.FlatStyle = FlatStyle.Standard;
button6.ForeColor = Color.Blue;
button6.FlatStyle = FlatStyle.Standard;
button7.ForeColor = Color.Blue;
button7.FlatStyle = FlatStyle.Standard;
button8.ForeColor = Color.Blue;
button8.FlatStyle = FlatStyle.Standard;
button9.ForeColor = Color.Blue;
button9.FlatStyle = FlatStyle.Standard;
a1 = a2 = a3 = a4 = 0;
b1 = b2 = b3 = b4 = 0;
JS();
}
private void btnLSD_Click(object sender, EventArgs e)
{
N = 0; //初始
MODE = 0;
timer1.Enabled = true;
btnLSD.Enabled = false;
button10.Enabled = false;
button11.Enabled = false;
int SPEED = trackBar1.Value * 100 + trackBar2.Value;
txtTimerSpeed.Text = "周期:" + SPEED.ToString() + "ms";
}
private void trackBar1_Scroll(object sender, EventArgs e)
{
int SPEED = trackBar1.Value * 100 + trackBar2.Value;
txtTimerSpeed.Text = "周期:"+SPEED.ToString()+"ms";
timer1.Interval = SPEED;
}
private int N;
private int MODE; //模式
Random rn = new Random(0);
private void timer1_Tick(object sender, EventArgs e)
{
switch (MODE)
{
case 0:
{
//流水灯
int s_data = 1100000000;
s_data += (int)Math.Pow(10, N);
N++;
a1 = int.Parse(s_data.ToString()[2].ToString());
a2 = int.Parse(s_data.ToString()[3].ToString());
a3 = int.Parse(s_data.ToString()[4].ToString());
a4 = int.Parse(s_data.ToString()[5].ToString());
b1 = int.Parse(s_data.ToString()[6].ToString());
b2 = int.Parse(s_data.ToString()[7].ToString());
b3 = int.Parse(s_data.ToString()[8].ToString());
b4 = int.Parse(s_data.ToString()[9].ToString());
break;
}
case 1:
{
//小星星眨眼睛
a1 = NOT(a1);
a2 = NOT(a2);
a3 = NOT(a3);
a4 = NOT(a4);
b1 = NOT(b1);
b2 = NOT(b2);
b3 = NOT(b3);
b4 = NOT(b4);
break;
}
case 2:
{
//随机
switch (rn.Next(8))
{
case 0: a1 = NOT(a1); break;
case 1: a2 = NOT(a2); break;
case 2: a3 = NOT(a3); break;
case 3: a4 = NOT(a4); break;
case 4: b1 = NOT(b1); break;
case 5: b2 = NOT(b2); break;
case 6: b3 = NOT(b3); break;
case 7: b4 = NOT(b4); break;
}
break;
}
}
if (N > 7)
N = 0;
if (!serialPort1.IsOpen)
{
timer1.Enabled = false;
}
else
{
JS();
}
}
private int NOT(int i)
{
if (i == 1) return 0;
else
return 1;
}
private void button10_Click(object sender, EventArgs e)
{
//小星星眨眼睛
MODE = 1;
N = 0;
timer1.Enabled = true;
btnLSD.Enabled = false;
button10.Enabled = false;
button11.Enabled = false;
int SPEED = trackBar1.Value * 100 + trackBar2.Value;
txtTimerSpeed.Text = "周期:" + SPEED.ToString() + "ms";
}
private void btnSTOP_Click(object sender, EventArgs e)
{
timer1.Enabled = false;
btnLSD.Enabled = true;
button10.Enabled = true;
button11.Enabled = true;
}
private void button11_Click(object sender, EventArgs e)
{
MODE = 2;
N = 0;
timer1.Enabled = true;
btnLSD.Enabled = false;
button10.Enabled = false;
button11.Enabled = false;
int SPEED = trackBar1.Value * 100 + trackBar2.Value;
txtTimerSpeed.Text = "周期:" + SPEED.ToString() + "ms";
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -