| | |
| | | /// </summary> |
| | | public virtual void Manager () |
| | | { |
| | | if (((System.Net.IPEndPoint)RemoteEndPoint).Port == 6688) |
| | | { |
| | | ReceviceAllDadaAction?.Invoke(0, 0, 0, 0, 0, 0, Bytes, (System.Net.IPEndPoint)RemoteEndPoint); |
| | | Control.ManagerReceive(0, 0, 0, 0, 0, Bytes, (System.Net.IPEndPoint)RemoteEndPoint); |
| | | } |
| | | else |
| | | { |
| | | //对于操作数据库的时间比较长的,可以创建另一个线程处理 |
| | | if (!"HDLMIRACLE".Equals (System.Text.Encoding.ASCII.GetString (Bytes, 4, 10))) { |
| | | if (!"HDLMIRACLE".Equals(System.Text.Encoding.ASCII.GetString(Bytes, 4, 10))) |
| | | { |
| | | return; |
| | | } |
| | | |
| | |
| | | byte targetDeviceID = this.Bytes [24]; |
| | | |
| | | //不是要接收的指令就返回 |
| | | if (!((targetSubnetID == 252 && targetDeviceID == 252) || (targetSubnetID == 0xff && targetDeviceID == 0xff))) { |
| | | if (!((targetSubnetID == 252 && targetDeviceID == 252) || (targetSubnetID == 0xff && targetDeviceID == 0xff))) |
| | | { |
| | | return; |
| | | } |
| | | byte [] usefulBytes = null; |
| | | if (this.Bytes [16] == 0xFF) { |
| | | if (this.Bytes[16] == 0xFF) |
| | | { |
| | | usefulBytes = new byte [Bytes.Length - 16 - 11]; |
| | | System.Array.Copy (Bytes, 27, usefulBytes, 0, usefulBytes.Length); |
| | | } else { |
| | | } |
| | | else |
| | | { |
| | | //有用的附加数据 |
| | | usefulBytes = new byte [this.Bytes [16] - 11]; |
| | | Array.Copy (Bytes, 25, usefulBytes, 0, usefulBytes.Length); |
| | | } |
| | | |
| | | if (ReceiveEvent != null) { |
| | | ReceiveEvent (subnetID, deviceID, command, usefulBytes, $"{Bytes [0]}.{Bytes [1]}.{Bytes [2]}.{Bytes [3]}"); |
| | | if (ReceiveEvent != null) |
| | | { |
| | | string revIp = $"{Bytes[0]}.{Bytes[1]}.{Bytes[2]}.{Bytes[3]}"; |
| | | if (revIp == "172.16.2.237") |
| | | { |
| | | |
| | | } |
| | | ReceiveEvent(subnetID, deviceID, command, usefulBytes, revIp); |
| | | } |
| | | |
| | | //if (command == Command.SuperGatewayAgentACK) { |
| | | // SuperGateWay.SendAndReceiveDatas.Recevice (subnetID, deviceID, usefulBytes); |
| | | //} |
| | | if (ReceviceAllDadaAction != null) { |
| | | if (ReceviceAllDadaAction != null) |
| | | { |
| | | ReceviceAllDadaAction (subnetID, deviceID, deviceType, command, targetSubnetID, targetDeviceID, usefulBytes, (System.Net.IPEndPoint)RemoteEndPoint); |
| | | } |
| | | //处理是否要重发数据 |
| | |
| | | } |
| | | } |
| | | } |
| | | } |