/// <summary> /// Sends the message and returns an ack with payload. /// </summary> /// <returns>The message.</returns> /// <param name="packet">Packet.</param> /// <param name="createAckPayload">Ack payload builder/delegate.</param> /// <typeparam name="TPacketPayload">Ack payload type.</typeparam> public IAckPacket <TAckPacketPayload> SendMessage <TAckPacketPayload>(IPacket packet, CreateAckPayload <TAckPacketPayload> createAckPayload) where TAckPacketPayload : IProvideBytes { var packetBytes = packet.GetBytes(); Log.InfoFormat("Sending packet {0} (bytes: {1})", packet, BitConverter.ToString(packetBytes)); var responseBytes = _crazyradioDriver.SendData(packetBytes); if (responseBytes != null) { var ackResponse = new AckPacket <TAckPacketPayload>(responseBytes, createAckPayload); Log.InfoFormat("Sent packet. Got ACK response {0} (bytes: {1})", ackResponse, responseBytes); return(ackResponse); } else { Log.Warn("Sent packet. Got NULL response."); return(null); } }
/// <summary> /// Sends the message. /// </summary> /// <returns>The message.</returns> /// <param name="packet">Packet.</param> public IAckPacket SendMessage(IPacket packet) { var packetBytes = packet.GetBytes(); Log.InfoFormat("Sending packet {0} (bytes: {1})", packet, BitConverter.ToString(packetBytes)); var responseBytes = _crazyradioDriver.SendData(packetBytes); if (responseBytes != null) { var ackResponse = new AckPacket(responseBytes); Log.InfoFormat("Sent packet. Got ACK response {0} (bytes: {1})", ackResponse, responseBytes); return(ackResponse); } else { Log.Warn("Sent packet. Got NULL response."); return(null); } }