110,534
社区成员
发帖
与我相关
我的任务
分享
private void Port_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
int bufferlen = serialPort.BytesToRead;
if (bufferlen > 0)
{
byte[] bytes = new byte[bufferlen];
serialPort.Read(bytes, 0, bufferlen);
resultValue = System.Text.Encoding.ASCII.GetString(bytes);
if (resultValue.Contains("AT+CREC=1,1,0") && resultValue.Contains("\r\nOK"))
{
toolStripStatusLabel状态.Text = "开始录音";
}
if (resultValue.Contains("AT+CREC=2") && resultValue.Contains("\r\nOK") && resultValue.Contains("+CREC: 2,1,0"))
{
toolStripStatusLabel状态.Text = "停止录音";
GetRecordByteLength(resultValue);//得到录音字节长度
ReadRecordConnect();//发送读取录音内容指令
}
if (resultValue.Contains("AT+CREC=2") && resultValue.Contains("\r\nOK") && !resultValue.Contains("+CREC: 2,1,0"))
{
toolStripStatusLabel状态.Text = "查询录音";
SeachRecord();//发送查询录音指令
}
if (resultValue.Contains("AT+CREC=7") && resultValue.Contains("\r\nOK") && resultValue.Contains("+CREC: 7,1"))
{
toolStripStatusLabel状态.Text = "获取录音字节长度";
GetRecordByteLength(resultValue);
ReadRecordConnect();
}
if (resultValue.Contains("AT+CREC=6,1") && resultValue.Contains("+CREC: 6,1") && resultValue.Contains("\r\nOK"))
{
toolStripStatusLabel状态.Text = "获取录音内容";
GetByteData(resultValue);//将录音内容加入到List<string>中
DeleteRecord();//发送删除录音内容指令
}
if (resultValue.Contains("AT+CREC=3,1") && resultValue.Contains("\r\nOK"))
{
if (!_isEndRecord)
{//根据时间计时器间隔6S重新录音
toolStripStatusLabel状态.Text = "重新开始录音";
SetStartRecord();
timer.Start();
}
else
{//点击停止录音内容
toolStripStatusLabel状态.Text = "停止录音,并将录音内容保存录音文件";
ToFileAnInsertToSQL();
timer.Stop();
}
}
}
}
}
//时间计时器
private void timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
StopRecord();//停止录音指令
timer.Stop();
}
private void FrmMain_Load(object sender, EventArgs e)
{
serialPort.DataReceived += new System.IO.Ports.SerialDataReceivedEventHandler(Port_DataReceived);
timer = new System.Timers.Timer();
//设置timer可用
timer.Enabled = false ;
//设置timer
timer.Interval = 6200;
//设置是否重复计时,如果该属性设为False,则只执行timer_Elapsed方法一次。
timer.AutoReset = true;
timer.Elapsed += new System.Timers.ElapsedEventHandler(timer_Elapsed);
}