Commit 456a558d gujlg

修改无法接收的问题

1 个父辈 7781a023
......@@ -36,7 +36,7 @@ namespace Asa.IOModule
private List<string> _logRxTx; //日志
//private List<byte[]> _send; //发送的命令
private System.Collections.Concurrent.ConcurrentQueue<byte[]> _send;
private List<byte[]> _receive; //接收的数据
private System.Collections.Concurrent.ConcurrentQueue<byte[]> _receive; //接收的数据
private Thread tSend; //发送命令处理
private Thread tReceive; //接收信息处理
......@@ -118,9 +118,8 @@ namespace Asa.IOModule
_sta = new Box_Sta[32];
_log = new List<string>();
_logRxTx = new List<string>();
//_send = new List<byte[]>();
_send = new System.Collections.Concurrent.ConcurrentQueue<byte[]>();
_receive = new List<byte[]>();
_receive = new System.Collections.Concurrent.ConcurrentQueue<byte[]>();
Type = Box_Type.DIO_32;
tReconn = new Thread(new ThreadStart(Reconn));
......@@ -290,11 +289,8 @@ namespace Asa.IOModule
_unrevd = 0;
_unrevdRemote = 0;
_flag = 0;
//_send.Clear();
while (_send.TryDequeue(out byte[] aa))
{ }
_receive.Clear();
_send = new System.Collections.Concurrent.ConcurrentQueue<byte[]>();
_receive = new System.Collections.Concurrent.ConcurrentQueue<byte[]>();
_log.Clear();
_logRxTx.Clear();
......@@ -597,27 +593,14 @@ namespace Asa.IOModule
{
while (true)
{
if (_receive.Count > 0)
if (_receive.TryDequeue(out byte[] buff))
{
if (_receive[0] != null)
{
if (_receive[0][7] == 1)
ReadDO(_receive[0]);
else if (_receive[0][7] == 2)
ReadDI(_receive[0]);
else if (_receive[0][7] == 5)
ReadSingle(_receive[0]);
if (LogOut)
{
byte[] bb = new byte[2];
bb[0] = _receive[0][1];
bb[1] = _receive[0][0];
ushort flag = BitConverter.ToUInt16(bb, 0);
_logRxTx.Remove(flag + "," + _receive[0][7]);
}
_receive.RemoveAt(0);
}
if (buff[7] == 1)
ReadDO(buff);
else if (buff[7] == 2)
ReadDI(buff);
else if (buff[7] == 5)
ReadSingle(buff);
}
Thread.Sleep(10);
}
......@@ -943,7 +926,7 @@ namespace Asa.IOModule
int len = _client.Receive(bb);
byte[] buff = new byte[len];
Array.Copy(bb, buff, len);
_receive.Add(buff);
_receive.Enqueue(buff);
_unrevd = 0;
}
_unrevd += NET_SLEEP;
......
......@@ -593,14 +593,17 @@ namespace Asa.IOModule
/// </summary>
private void Receive()
{
while (_receive.TryDequeue(out byte[] buff))
while (true)
{
if (buff[7] == 1)
ReadDO(buff);
else if (buff[7] == 2)
ReadDI(buff);
else if (buff[7] == 5)
{ }
if (_receive.TryDequeue(out byte[] buff))
{
if (buff[7] == 1)
ReadDO(buff);
else if (buff[7] == 2)
ReadDI(buff);
else if (buff[7] == 5)
{ }
}
Thread.Sleep(10);
}
}
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!