00001 #pragma once 00002 00003 #include <stdint.h> 00004 00005 class ITransport 00006 { 00007 public: 00008 struct Ack 00009 { 00010 Ack() 00011 : ack(0) 00012 , size(0) 00013 {} 00014 00015 uint8_t ack:1; 00016 uint8_t powerDet:1; 00017 uint8_t retry:4; 00018 uint8_t data[32]; 00019 00020 uint8_t size; 00021 }__attribute__((packed)); 00022 00023 public: 00024 virtual ~ITransport() {} 00025 00026 virtual void sendPacket( 00027 const uint8_t* data, 00028 uint32_t length, 00029 Ack& result) = 0; 00030 00031 virtual void sendPacketNoAck( 00032 const uint8_t* data, 00033 uint32_t length) = 0; 00034 };