private void ProcessBuffer() { uint bytesRead = 0; ZigbeeCommand item = Parse(m_buffer.ToArray(), out bytesRead); if (bytesRead > 0) { m_buffer.RemoveRange(0, (int)bytesRead); } if (item != null) { if (ResponseReceived != null) { ResponseReceived(this, item); } ushort cmd; if (item is UnknownCidResponse) { cmd = (item as UnknownCidResponse).CMD; } else { cmd = item.GetType().GetTypeInfo().GetCustomAttribute <ResponseCmd>().Command; } System.Diagnostics.Debug.WriteLine("Received: 0x{0:X2}\tPAYLOAD: [{1}]", cmd, item.Payload == null ? "<EMPTY>" : string.Join(",", (from c in item.Payload select c.ToString("X2")))); } if (bytesRead > 0 && m_buffer.Count > 0) { ProcessBuffer(); } }
public override string ToString() { return(ZigbeeCommand.ObjectToString(this, new string[] { })); }