Go to the documentation of this file.00001 #pragma once
00002
00003 #include <stdint.h>
00004 #include <vector>
00005
00006 #include "ITransport.h"
00007 #include "USBDevice.h"
00008
00009 class Crazyradio
00010 : public ITransport
00011 , public USBDevice
00012 {
00013 public:
00014 enum Datarate
00015 {
00016 Datarate_250KPS = 0,
00017 Datarate_1MPS = 1,
00018 Datarate_2MPS = 2,
00019 };
00020
00021 enum Power
00022 {
00023 Power_M18DBM = 0,
00024 Power_M12DBM = 1,
00025 Power_M6DBM = 2,
00026 Power_0DBM = 3,
00027 };
00028
00029 public:
00030 Crazyradio(
00031 uint32_t devid);
00032
00033 virtual ~Crazyradio();
00034
00035 static uint32_t numDevices();
00036
00037 float version() const {
00038 return m_version;
00039 }
00040
00041 void setChannel(
00042 uint8_t channel);
00043
00044 uint8_t getChannel() const {
00045 return m_channel;
00046 }
00047
00048 void setAddress(
00049 uint64_t address);
00050
00051 uint64_t getAddress() const {
00052 return m_address;
00053 }
00054
00055 void setDatarate(
00056 Datarate datarate);
00057
00058 Datarate getDatarate() const {
00059 return m_datarate;
00060 }
00061
00062 void setPower(
00063 Power power);
00064
00065 void setArc(
00066 uint8_t arc);
00067
00068 void setArdTime(
00069 uint8_t us);
00070
00071 void setArdBytes(
00072 uint8_t nbytes);
00073
00074 void setAckEnable(
00075 bool enable);
00076
00077 void setContCarrier(
00078 bool active);
00079
00080 virtual void sendPacket(
00081 const uint8_t* data,
00082 uint32_t length,
00083 ITransport::Ack& result);
00084
00085 virtual void sendPacketNoAck(
00086 const uint8_t* data,
00087 uint32_t length);
00088
00089 private:
00090 uint8_t m_channel;
00091 uint64_t m_address;
00092 Datarate m_datarate;
00093 };