public bool SendMessage(SharkMessage p_Message) { if (p_Message == null) { return(false); } Trace.WriteLine(String.Format("Sending command: {0}", p_Message.Command)); try { var s_SerializedMessage = JsonConvert.SerializeObject(p_Message, new JsonSerializerSettings { ContractResolver = new CamelCaseResolver() }); s_SerializedMessage += '\n'; Trace.WriteLine("[C -> S] " + s_SerializedMessage); var s_MessageData = Encoding.UTF8.GetBytes(s_SerializedMessage); return(Send(s_MessageData, 0, s_MessageData.Length)); } catch { return(false); } }
public bool SendMessage(SharkMessage p_Message, Action <SharkResponseMessage> p_Callback) { if (p_Message == null) { return(false); } if (p_Callback == null) { return(SendMessage(p_Message)); } Trace.WriteLine(String.Format("Sending command: {0}", p_Message.Command)); if (p_Message.Blackbox == null) { p_Message.Blackbox = new Dictionary <string, JToken>(); } lock (m_PacketCallbacks) { var s_PacketID = m_PacketCounter++; p_Message.Blackbox.Add("__gspid", s_PacketID); if (m_PacketCounter >= 65530) { m_PacketCounter = 0; } m_PacketCallbacks.Add(s_PacketID, p_Callback); } // TODO: Implement a timeout try { var s_SerializedMessage = JsonConvert.SerializeObject(p_Message, new JsonSerializerSettings { ContractResolver = new CamelCaseResolver() }); s_SerializedMessage += '\n'; Trace.WriteLine("[C -> S] " + s_SerializedMessage); var s_MessageData = Encoding.UTF8.GetBytes(s_SerializedMessage); return(Send(s_MessageData, 0, s_MessageData.Length)); } catch { return(false); } }