protected void CallDelegateReceived(Msg.MessageObject_Child messageObject) { try { if (this.dMsgReceived != null) { this.dMsgReceived(messageObject); } } catch { } }
protected void ReceivedDataSplit(object state) { while (this.isConnected) { byte[] receivedBytes = null; lock (SyncObject) { try { if (receivedRingBuffer.DataCount < 6) { Monitor.Wait(SyncObject); continue; } if (receivedRingBuffer[0] != 170) { receivedRingBuffer.Clear(1); continue; } int len = receivedRingBuffer[2] + 5; if (receivedRingBuffer.DataCount < len) { Monitor.Wait(SyncObject); continue; } if (receivedRingBuffer[len - 1] != 187) { receivedRingBuffer.Clear(1); continue; } receivedBytes = new byte[len]; receivedRingBuffer.ReadFromRingBuffer(receivedBytes, 0, len); receivedRingBuffer.Clear(len); Monitor.Pulse(SyncObject); } catch { } } if (receivedBytes != null) { Msg.MessageObject_Child msg = new Msg.MessageObject_Child(receivedBytes); if (msg.Check()) { CallDelegateReceived(msg); } } } }