串口调试助手源代码(2)

2019-04-14 23:37

{

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 Devide(string str) {

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(\


串口调试助手源代码(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:肿瘤的化疗方案大全

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: