110,534
社区成员
发帖
与我相关
我的任务
分享
private bool RedSender(byte[] _code, string portName, int BaudRate, int DataBits, StopBits StopBits)
{
try
{
SerialPort port = new SerialPort(portName);
try
{
port.BaudRate = BaudRate;
port.DataBits = DataBits;
port.StopBits = StopBits;
port.WriteTimeout = 1500;
port.DiscardNull = true;
try
{
if (!port.IsOpen)
port.Open();
port.Write(_code, 0, _code.Length);
port.Close();
port.Dispose();
return true;
}
catch (Exception ex)
{
WriteLog.WLogIn(ex.ToString());
if (port.IsOpen)
{
port.Close();
port.Dispose();
}
return false;
}
}
catch (Exception ex)
{
if (port.IsOpen)
{
port.Close();
port.Dispose();
}
WriteLog.WLogIn(ex.ToString());
return false;
}
}
catch (Exception ex)
{
WriteLog.WLogIn(ex.ToString());
return false;
}
}
private bool WaitResult(Thread thread, ParamTran param)
{
bool result = false;
try
{
//开启循环
DateTime TimeStart = DateTime.Now;
DateTime TimeNow = DateTime.Now;
bool TimeOut = false;
while (!TimeOut)
{
lock (paramObject)
{
if (param.result.ToLower() == "true")
{
result = true;
break;
}
if (param.result.ToLower() == "false")
{
result = false;
break;
}
}
TimeNow = DateTime.Now;
TimeSpan ts = TimeNow - TimeStart;
if (ts.TotalMilliseconds > 2500)
{
TimeOut = true;
}
Thread.Sleep(50);
}
}
catch(Exception ex)
{
WriteLog.WLogIn(ex.ToString());
}
//强制结束线程
try
{
if (thread.ThreadState != ThreadState.Aborted)
thread.Abort();
}
catch
{
}
//跳出循环后返回结果
return result;
}