{
if (StrArray[i].Length < 3) {
Str_Send.Add(StrArray[i]); } else {
Str_Send.AddRange(Devide(StrArray[i])); } } }
int byteBufferLength = Str_Send.Count;
byte[] byteBuffer = new byte[byteBufferLength]; int ii = 0;
for (int i = 0; i < Str_Send.Count; i++) {
//Byte[] bytesOfStr = Encoding.Default.GetBytes(StrArray[i]); int decNum = 0;
//if (StrArray[i] == \ //{
// continue; //} //else //{
//decNum = Convert.ToInt32(Str_Send[i], 16); //把字符串转成16进制数
//byteBuffer[ii] = Convert.ToByte(decNum); //} try {
decNum = Convert.ToInt32(Str_Send[i], 16); //把字符串转成16进制数
byteBuffer[ii] = Convert.ToByte(decNum); }
catch (System.Exception ex) {
MessageBox.Show(\输入错误!\提示\ return; } ii++; }
sp1.Write(byteBuffer, 0, byteBuffer.Length);//从第0个开始写入byteBuffer,长度bytebuffer的长度。 }
} } }
private List
var ret = Regex.Matches(str,
@\ return ret;
}
private void tmSend_Tick(object sender, EventArgs e) {
string StrSend = memoSend.Text; if (rbtnSendStr.Checked) {
sp1.Write(StrSend); } else {
string StrSend_1 = StrSend.Trim(); //去掉前后的空格
string[] StrArray = StrSend_1.Split(' '); //用空格符隔开字符串数组
var Str_Send = new List
for (int i = 0; i < StrArray.Length; i++) {
if (StrArray[i].Trim() == \ {
continue; } else {
if (StrArray[i].Length < 3) {
Str_Send.Add(StrArray[i]); } else {
Str_Send.AddRange(Devide(StrArray[i]));
} } }
int byteBufferLength = Str_Send.Count;
byte[] byteBuffer = new byte[byteBufferLength]; int ii = 0;
for (int i = 0; i < Str_Send.Count; i++) {
int decNum = 0;
try {
decNum = Convert.ToInt32(Str_Send[i], 16); //把字符串转成16进制数
byteBuffer[ii] = Convert.ToByte(decNum); }
catch (System.Exception ex) {
MessageBox.Show(\输入错误!\提示\ return; } ii++; }
sp1.Write(byteBuffer, 0, byteBuffer.Length);//从第0个开始写入byteBuffer,长度bytebuffer的长度。 } }
void sp1_DataReceived(object sender, SerialDataReceivedEventArgs e) {
byte[] byteRead = new byte[sp1.BytesToRead];
if (rbtnRceStr.Checked) {
memoRcv.Text += sp1.ReadExisting();
memoRcv.SelectionStart = memoRcv.Text.Length; memoRcv.ScrollToCaret(); } else {
if (rbtnRce16.Checked) {
Byte[] receivedData = new Byte[sp1.BytesToRead]; //创建接收字节数组
sp1.Read(receivedData, 0, receivedData.Length);
string strRcv = null;
for (int i = 0; i < receivedData.Length; i++) {
strRcv += receivedData[i].ToString(\ }
memoRcv.Text += strRcv;
memoRcv.SelectionStart = memoRcv.Text.Length; memoRcv.ScrollToCaret(); }
} }
private void Stop_Click(object sender, EventArgs e) //退出接收数据 {
tmSend.Stop(); }
private void Clear_Click(object sender, EventArgs e) //清空接收数据 {
memoRcv.Text = \ }
private void Time_Press(object sender, KeyPressEventArgs e) {
if (!Char.IsLetterOrDigit(e.KeyChar)) {
e.Handled = true; } else {
e.Handled = false; } }
private void TextTime_KeyPress(object sender, KeyPressEventArgs e) //限制定时发送时间只能输入数字 {
if (!(Char.IsNumber(e.KeyChar)) && e.KeyChar != (char)8) {
MessageBox.Show(\请输入数字\提示\ e.Handled = true;
} else {
e.Handled = false; } }
private void memoSend_KeyPress(object sender, KeyPressEventArgs e) {
}
private void btnClose_Click(object sender, EventArgs e) //关闭串口
{
if (sp1.IsOpen) {
sp1.Close();
labSerial.Text = \串口号:\ labState.Text = \状态:关闭\ } }
private void Send16_KeyPress(object sender, KeyPressEventArgs e) {
//string Send16 = memoRcv.Text;
//byte[] buff = new byte[Send16.Length / 2]; //int index = 0;
//for (int i = 0; i < Send16.Length; i += 2) //{
// buff[index] = Convert.ToByte(Send16.Substring(i, 2), 16); // ++index; //}
//string result = Encoding.Default.GetString(buff); //// MessageBox.Show(result); //memoRcv.Text = result; }
private void SendStr_KeyPress(object sender, KeyPressEventArgs e) {
//string SendStr = memoRcv.Text;
//byte[] ba = System.Text.ASCIIEncoding.Default.GetBytes(SendStr); //StringBuilder sb = new StringBuilder(); //foreach (byte b in ba) //{
// sb.Append(b.ToString(\