Arduino driver library for Decawave DW1000  Dec 20 2016
Static Public Member Functions | Static Public Attributes | List of all members
DW1000Class Class Reference

#include <DW1000.h>

Static Public Member Functions

static void begin (uint8_t irq, uint8_t rst=0xff)
 
static void select (uint8_t ss)
 
static void reselect (uint8_t ss)
 
static void end ()
 
static void reset ()
 
static void softReset ()
 
static void getPrintableDeviceIdentifier (char msgBuffer[])
 
static void getPrintableExtendedUniqueIdentifier (char msgBuffer[])
 
static void getPrintableNetworkIdAndShortAddress (char msgBuffer[])
 
static void getPrintableDeviceMode (char msgBuffer[])
 
static void setNetworkId (uint16_t val)
 
static void setDeviceAddress (uint16_t val)
 
static void setEUI (char eui[])
 
static void setEUI (byte eui[])
 
static void setReceiverAutoReenable (boolean val)
 
static void setInterruptPolarity (boolean val)
 
static void suppressFrameCheck (boolean val)
 
static void setDataRate (byte rate)
 
static void setPulseFrequency (byte freq)
 
static byte getPulseFrequency ()
 
static void setPreambleLength (byte prealen)
 
static void setChannel (byte channel)
 
static void setPreambleCode (byte preacode)
 
static void useSmartPower (boolean smartPower)
 
static DW1000Time setDelay (const DW1000Time &delay)
 
static void receivePermanently (boolean val)
 
static void setData (byte data[], uint16_t n)
 
static void setData (const String &data)
 
static void getData (byte data[], uint16_t n)
 
static void getData (String &data)
 
static uint16_t getDataLength ()
 
static void getTransmitTimestamp (DW1000Time &time)
 
static void getReceiveTimestamp (DW1000Time &time)
 
static void getSystemTimestamp (DW1000Time &time)
 
static void getTransmitTimestamp (byte data[])
 
static void getReceiveTimestamp (byte data[])
 
static void getSystemTimestamp (byte data[])
 
static float getReceivePower ()
 
static float getFirstPathPower ()
 
static float getReceiveQuality ()
 
static void interruptOnSent (boolean val)
 
static void interruptOnReceived (boolean val)
 
static void interruptOnReceiveFailed (boolean val)
 
static void interruptOnReceiveTimeout (boolean val)
 
static void interruptOnReceiveTimestampAvailable (boolean val)
 
static void interruptOnAutomaticAcknowledgeTrigger (boolean val)
 
static void attachErrorHandler (void(*handleError)(void))
 
static void attachSentHandler (void(*handleSent)(void))
 
static void attachReceivedHandler (void(*handleReceived)(void))
 
static void attachReceiveFailedHandler (void(*handleReceiveFailed)(void))
 
static void attachReceiveTimeoutHandler (void(*handleReceiveTimeout)(void))
 
static void attachReceiveTimestampAvailableHandler (void(*handleReceiveTimestampAvailable)(void))
 
static void idle ()
 
static void newConfiguration ()
 
static void commitConfiguration ()
 
static void newReceive ()
 
static void startReceive ()
 
static void newTransmit ()
 
static void startTransmit ()
 
static void enableMode (const byte mode[])
 
static void setDefaults ()
 
static void getPrettyBytes (byte cmd, uint16_t offset, char msgBuffer[], uint16_t n)
 
static void getPrettyBytes (byte data[], char msgBuffer[], uint16_t n)
 
static uint8_t nibbleFromChar (char c)
 
static void convertToByte (char string[], byte *eui_byte)
 
static void getTempAndVbat (float &temp, float &vbat)
 
static void handleInterrupt ()
 
static void setFrameFilter (boolean val)
 
static void setFrameFilterBehaveCoordinator (boolean val)
 
static void setFrameFilterAllowBeacon (boolean val)
 
static void setFrameFilterAllowData (boolean val)
 
static void setFrameFilterAllowAcknowledgement (boolean val)
 
static void setFrameFilterAllowMAC (boolean val)
 
static void setFrameFilterAllowReserved (boolean val)
 
static void setDoubleBuffering (boolean val)
 
static void useExtendedFrameLength (boolean val)
 
static void waitForResponse (boolean val)
 
static void tune ()
 
static boolean isReceiveTimestampAvailable ()
 
static boolean isTransmitDone ()
 
static boolean isReceiveDone ()
 
static boolean isReceiveFailed ()
 
static boolean isReceiveTimeout ()
 
static boolean isClockProblem ()
 
static void clearInterrupts ()
 
static void clearAllStatus ()
 
static void clearReceiveStatus ()
 
static void clearReceiveTimestampAvailableStatus ()
 
static void clearTransmitStatus ()
 
static void readSystemEventStatusRegister ()
 
static void readSystemConfigurationRegister ()
 
static void writeSystemConfigurationRegister ()
 
static void readNetworkIdAndDeviceAddress ()
 
static void writeNetworkIdAndDeviceAddress ()
 
static void readSystemEventMaskRegister ()
 
static void writeSystemEventMaskRegister ()
 
static void readChannelControlRegister ()
 
static void writeChannelControlRegister ()
 
static void readTransmitFrameControlRegister ()
 
static void writeTransmitFrameControlRegister ()
 
static void enableClock (byte clock)
 
static void manageLDE ()
 
static void correctTimestamp (DW1000Time &timestamp)
 
static void readBytes (byte cmd, uint16_t offset, byte data[], uint16_t n)
 
static void readBytesOTP (uint16_t address, byte data[])
 
static void writeByte (byte cmd, uint16_t offset, byte data)
 
static void writeBytes (byte cmd, uint16_t offset, byte data[], uint16_t n)
 
static void writeValueToBytes (byte data[], int32_t val, uint16_t n)
 
static boolean getBit (byte data[], uint16_t n, uint16_t bit)
 
static void setBit (byte data[], uint16_t n, uint16_t bit, boolean val)
 

Static Public Attributes

static constexpr byte TRX_RATE_110KBPS = 0x00
 
static constexpr byte TRX_RATE_850KBPS = 0x01
 
static constexpr byte TRX_RATE_6800KBPS = 0x02
 
static constexpr byte TX_PULSE_FREQ_16MHZ = 0x01
 
static constexpr byte TX_PULSE_FREQ_64MHZ = 0x02
 
static constexpr byte TX_PREAMBLE_LEN_64 = 0x01
 
static constexpr byte TX_PREAMBLE_LEN_128 = 0x05
 
static constexpr byte TX_PREAMBLE_LEN_256 = 0x09
 
static constexpr byte TX_PREAMBLE_LEN_512 = 0x0D
 
static constexpr byte TX_PREAMBLE_LEN_1024 = 0x02
 
static constexpr byte TX_PREAMBLE_LEN_1536 = 0x06
 
static constexpr byte TX_PREAMBLE_LEN_2048 = 0x0A
 
static constexpr byte TX_PREAMBLE_LEN_4096 = 0x03
 
static constexpr byte PAC_SIZE_8 = 8
 
static constexpr byte PAC_SIZE_16 = 16
 
static constexpr byte PAC_SIZE_32 = 32
 
static constexpr byte PAC_SIZE_64 = 64
 
static constexpr byte CHANNEL_1 = 1
 
static constexpr byte CHANNEL_2 = 2
 
static constexpr byte CHANNEL_3 = 3
 
static constexpr byte CHANNEL_4 = 4
 
static constexpr byte CHANNEL_5 = 5
 
static constexpr byte CHANNEL_7 = 7
 
static constexpr byte PREAMBLE_CODE_16MHZ_1 = 1
 
static constexpr byte PREAMBLE_CODE_16MHZ_2 = 2
 
static constexpr byte PREAMBLE_CODE_16MHZ_3 = 3
 
static constexpr byte PREAMBLE_CODE_16MHZ_4 = 4
 
static constexpr byte PREAMBLE_CODE_16MHZ_5 = 5
 
static constexpr byte PREAMBLE_CODE_16MHZ_6 = 6
 
static constexpr byte PREAMBLE_CODE_16MHZ_7 = 7
 
static constexpr byte PREAMBLE_CODE_16MHZ_8 = 8
 
static constexpr byte PREAMBLE_CODE_64MHZ_9 = 9
 
static constexpr byte PREAMBLE_CODE_64MHZ_10 = 10
 
static constexpr byte PREAMBLE_CODE_64MHZ_11 = 11
 
static constexpr byte PREAMBLE_CODE_64MHZ_12 = 12
 
static constexpr byte PREAMBLE_CODE_64MHZ_17 = 17
 
static constexpr byte PREAMBLE_CODE_64MHZ_18 = 18
 
static constexpr byte PREAMBLE_CODE_64MHZ_19 = 19
 
static constexpr byte PREAMBLE_CODE_64MHZ_20 = 20
 
static constexpr byte FRAME_LENGTH_NORMAL = 0x00
 
static constexpr byte FRAME_LENGTH_EXTENDED = 0x03
 
static constexpr byte MODE_LONGDATA_RANGE_LOWPOWER [] = {TRX_RATE_110KBPS, TX_PULSE_FREQ_16MHZ, TX_PREAMBLE_LEN_2048}
 
static constexpr byte MODE_SHORTDATA_FAST_LOWPOWER [] = {TRX_RATE_6800KBPS, TX_PULSE_FREQ_16MHZ, TX_PREAMBLE_LEN_128}
 
static constexpr byte MODE_LONGDATA_FAST_LOWPOWER [] = {TRX_RATE_6800KBPS, TX_PULSE_FREQ_16MHZ, TX_PREAMBLE_LEN_1024}
 
static constexpr byte MODE_SHORTDATA_FAST_ACCURACY [] = {TRX_RATE_6800KBPS, TX_PULSE_FREQ_64MHZ, TX_PREAMBLE_LEN_128}
 
static constexpr byte MODE_LONGDATA_FAST_ACCURACY [] = {TRX_RATE_6800KBPS, TX_PULSE_FREQ_64MHZ, TX_PREAMBLE_LEN_1024}
 
static constexpr byte MODE_LONGDATA_RANGE_ACCURACY [] = {TRX_RATE_110KBPS, TX_PULSE_FREQ_64MHZ, TX_PREAMBLE_LEN_2048}
 
static uint8_t _ss
 
static uint8_t _rst
 
static uint8_t _irq
 
static void(* _handleError )(void)
 
static void(* _handleSent )(void)
 
static void(* _handleReceived )(void)
 
static void(* _handleReceiveFailed )(void)
 
static void(* _handleReceiveTimeout )(void)
 
static void(* _handleReceiveTimestampAvailable )(void)
 
static byte _syscfg [LEN_SYS_CFG]
 
static byte _sysctrl [LEN_SYS_CTRL]
 
static byte _sysstatus [LEN_SYS_STATUS]
 
static byte _txfctrl [LEN_TX_FCTRL]
 
static byte _sysmask [LEN_SYS_MASK]
 
static byte _chanctrl [LEN_CHAN_CTRL]
 
static byte _vmeas3v3 = 0
 
static byte _tmeas23C = 0
 
static byte _networkAndAddress [LEN_PANADR]
 
static boolean _smartPower = false
 
static byte _extendedFrameLength = FRAME_LENGTH_NORMAL
 
static byte _preambleCode = PREAMBLE_CODE_16MHZ_4
 
static byte _channel = CHANNEL_5
 
static byte _preambleLength = TX_PREAMBLE_LEN_128
 
static byte _pulseFrequency = TX_PULSE_FREQ_16MHZ
 
static byte _dataRate = TRX_RATE_6800KBPS
 
static byte _pacSize = PAC_SIZE_8
 
static DW1000Time _antennaDelay
 
static boolean _permanentReceive = false
 
static boolean _frameCheck = true
 
static uint8_t _deviceMode = IDLE_MODE
 
static const byte WRITE = 0x80
 
static const byte WRITE_SUB = 0xC0
 
static const byte READ = 0x00
 
static const byte READ_SUB = 0x40
 
static const byte RW_SUB_EXT = 0x80
 
static const byte AUTO_CLOCK = 0x00
 
static const byte XTI_CLOCK = 0x01
 
static const byte PLL_CLOCK = 0x02
 
static const SPISettings _fastSPI = SPISettings(16000000L, MSBFIRST, SPI_MODE0)
 
static const SPISettings _slowSPI = SPISettings(2000000L, MSBFIRST, SPI_MODE0)
 
static const SPISettings * _currentSPI = &_fastSPI
 
static const byte BIAS_500_16_ZERO = 10
 
static const byte BIAS_500_64_ZERO = 8
 
static const byte BIAS_900_16_ZERO = 7
 
static const byte BIAS_900_64_ZERO = 7
 
static constexpr byte BIAS_500_16 [] = {198, 187, 179, 163, 143, 127, 109, 84, 59, 31, 0, 36, 65, 84, 97, 106, 110, 112}
 
static constexpr byte BIAS_500_64 [] = {110, 105, 100, 93, 82, 69, 51, 27, 0, 21, 35, 42, 49, 62, 71, 76, 81, 86}
 
static constexpr byte BIAS_900_16 [] = {137, 122, 105, 88, 69, 47, 25, 0, 21, 48, 79, 105, 127, 147, 160, 169, 178, 197}
 
static constexpr byte BIAS_900_64 [] = {147, 133, 117, 99, 75, 50, 29, 0, 24, 45, 63, 76, 87, 98, 116, 122, 132, 142}
 

Member Function Documentation

static void DW1000Class::attachErrorHandler ( void(*)(void)  handleError)
inlinestatic
static void DW1000Class::attachReceivedHandler ( void(*)(void)  handleReceived)
inlinestatic
static void DW1000Class::attachReceiveFailedHandler ( void(*)(void)  handleReceiveFailed)
inlinestatic
static void DW1000Class::attachReceiveTimeoutHandler ( void(*)(void)  handleReceiveTimeout)
inlinestatic
static void DW1000Class::attachReceiveTimestampAvailableHandler ( void(*)(void)  handleReceiveTimestampAvailable)
inlinestatic
static void DW1000Class::attachSentHandler ( void(*)(void)  handleSent)
inlinestatic
void DW1000Class::begin ( uint8_t  irq,
uint8_t  rst = 0xff 
)
static

Initiates and starts a sessions with one or more DW1000. If rst is not set or value 0xff, a soft resets (i.e. command triggered) are used and it is assumed that no reset line is wired.

Parameters
[in]irqThe interrupt line/pin that connects the Arduino.
[in]rstThe reset line/pin for hard resets of ICs that connect to the Arduino. Value 0xff means soft reset.
void DW1000Class::clearAllStatus ( )
static
void DW1000Class::clearInterrupts ( )
static
void DW1000Class::clearReceiveStatus ( )
static
void DW1000Class::clearReceiveTimestampAvailableStatus ( )
static
void DW1000Class::clearTransmitStatus ( )
static
void DW1000Class::commitConfiguration ( )
static
void DW1000Class::convertToByte ( char  string[],
byte *  eui_byte 
)
static
void DW1000Class::correctTimestamp ( DW1000Time timestamp)
static
void DW1000Class::enableClock ( byte  clock)
static
void DW1000Class::enableMode ( const byte  mode[])
static

Specifies the mode of operation for the DW1000. Modes of operation are pre-defined combinations of data rate, pulse repetition frequency, preamble and channel settings that properly go together. If you simply want the chips to work, choosing a mode is preferred over manual configuration.

The following modes are pre-configured and one of them needs to be chosen:

  • MODE_LONGDATA_RANGE_LOWPOWER (basically this is 110 kb/s data rate, 16 MHz PRF and long preambles)
  • MODE_SHORTDATA_FAST_LOWPOWER (basically this is 6.8 Mb/s data rate, 16 MHz PRF and short preambles)
  • MODE_LONGDATA_FAST_LOWPOWER (basically this is 6.8 Mb/s data rate, 16 MHz PRF and long preambles)
  • MODE_SHORTDATA_FAST_ACCURACY (basically this is 6.8 Mb/s data rate, 64 MHz PRF and short preambles)
  • MODE_LONGDATA_FAST_ACCURACY (basically this is 6.8 Mb/s data rate, 64 MHz PRF and long preambles)
  • MODE_LONGDATA_RANGE_ACCURACY (basically this is 110 kb/s data rate, 64 MHz PRF and long preambles)

Note that LOWPOWER and ACCURACY refers to the better power efficiency and improved transmission performance of 16 MHZ and 64 MHZ PRF respectively (see setPulseFrequency()).

The default setting that is selected by setDefaults() is MODE_LONGDATA_RANGE_LOWPOWER.

Parameters
[in]modeThe mode of operation, encoded by the above defined constants.
void DW1000Class::end ( )
static

Tells the driver library that no communication to a DW1000 will be required anymore. This basically just frees SPI and the previously used pins.

boolean DW1000Class::getBit ( byte  data[],
uint16_t  n,
uint16_t  bit 
)
static
void DW1000Class::getData ( byte  data[],
uint16_t  n 
)
static
void DW1000Class::getData ( String &  data)
static
uint16_t DW1000Class::getDataLength ( )
static
float DW1000Class::getFirstPathPower ( )
static
void DW1000Class::getPrettyBytes ( byte  cmd,
uint16_t  offset,
char  msgBuffer[],
uint16_t  n 
)
static
void DW1000Class::getPrettyBytes ( byte  data[],
char  msgBuffer[],
uint16_t  n 
)
static
void DW1000Class::getPrintableDeviceIdentifier ( char  msgBuffer[])
static

Generates a String representation of the device identifier of the chip. That usually are the letters "DECA" plus the version and revision numbers of the chip.

Parameters
[out]msgBufferThe String buffer to be filled with printable device information. Provide 128 bytes, this should be sufficient.
void DW1000Class::getPrintableDeviceMode ( char  msgBuffer[])
static

Generates a String representation of the main operational settings of the chip. This includes data rate, pulse repetition frequency, preamble and channel settings.

Parameters
[out]msgBufferThe String buffer to be filled with printable device information. Provide 128 bytes, this should be sufficient.
void DW1000Class::getPrintableExtendedUniqueIdentifier ( char  msgBuffer[])
static

Generates a String representation of the extended unique identifier (EUI) of the chip.

Parameters
[out]msgBufferThe String buffer to be filled with printable device information. Provide 128 bytes, this should be sufficient.
void DW1000Class::getPrintableNetworkIdAndShortAddress ( char  msgBuffer[])
static

Generates a String representation of the short address and network identifier currently defined for the respective chip.

Parameters
[out]msgBufferThe String buffer to be filled with printable device information. Provide 128 bytes, this should be sufficient.
byte DW1000Class::getPulseFrequency ( )
static
float DW1000Class::getReceivePower ( )
static
float DW1000Class::getReceiveQuality ( )
static
void DW1000Class::getReceiveTimestamp ( DW1000Time time)
static
void DW1000Class::getReceiveTimestamp ( byte  data[])
static
void DW1000Class::getSystemTimestamp ( DW1000Time time)
static
void DW1000Class::getSystemTimestamp ( byte  data[])
static
void DW1000Class::getTempAndVbat ( float &  temp,
float &  vbat 
)
static
void DW1000Class::getTransmitTimestamp ( DW1000Time time)
static
void DW1000Class::getTransmitTimestamp ( byte  data[])
static
void DW1000Class::handleInterrupt ( )
static
void DW1000Class::idle ( )
static
void DW1000Class::interruptOnAutomaticAcknowledgeTrigger ( boolean  val)
static
void DW1000Class::interruptOnReceived ( boolean  val)
static
void DW1000Class::interruptOnReceiveFailed ( boolean  val)
static
void DW1000Class::interruptOnReceiveTimeout ( boolean  val)
static
void DW1000Class::interruptOnReceiveTimestampAvailable ( boolean  val)
static
void DW1000Class::interruptOnSent ( boolean  val)
static
boolean DW1000Class::isClockProblem ( )
static
boolean DW1000Class::isReceiveDone ( )
static
boolean DW1000Class::isReceiveFailed ( )
static
boolean DW1000Class::isReceiveTimeout ( )
static
boolean DW1000Class::isReceiveTimestampAvailable ( )
static
boolean DW1000Class::isTransmitDone ( )
static
void DW1000Class::manageLDE ( )
static
void DW1000Class::newConfiguration ( )
static
void DW1000Class::newReceive ( )
static
void DW1000Class::newTransmit ( )
static
uint8_t DW1000Class::nibbleFromChar ( char  c)
static
void DW1000Class::readBytes ( byte  cmd,
uint16_t  offset,
byte  data[],
uint16_t  n 
)
static
void DW1000Class::readBytesOTP ( uint16_t  address,
byte  data[] 
)
static
void DW1000Class::readChannelControlRegister ( )
static
void DW1000Class::readNetworkIdAndDeviceAddress ( )
static
void DW1000Class::readSystemConfigurationRegister ( )
static
void DW1000Class::readSystemEventMaskRegister ( )
static
void DW1000Class::readSystemEventStatusRegister ( )
static
void DW1000Class::readTransmitFrameControlRegister ( )
static
void DW1000Class::receivePermanently ( boolean  val)
static
void DW1000Class::reselect ( uint8_t  ss)
static

(Re-)selects a specific DW1000 chip for communication. In case of a single DW1000 chip in use this call is not needed; only a call to select() has to be performed once at start up. Other than a call to select() this function does not perform an initial setup of the (again-)selected chips and assumes it to have a valid configuration loaded.

Parameters
[in]ssThe chip select line/pin that connects the to-be-selected chip with the Arduino.
void DW1000Class::reset ( )
static

Resets all connected or the currently selected DW1000 chip. A hard reset of all chips is preferred, although a soft reset of the currently selected one is executed if no reset pin has been specified (when using begin(int), instead of begin(int, int)).

void DW1000Class::select ( uint8_t  ss)
static

Selects a specific DW1000 chip for communication. In case of a single DW1000 chip in use this call only needs to be done once at start up, but is still mandatory. Other than a call to reselect() this function performs an initial setup of the now-selected chip.

Parameters
[in]ssThe chip select line/pin that connects the to-be-selected chip with the Arduino.
void DW1000Class::setBit ( byte  data[],
uint16_t  n,
uint16_t  bit,
boolean  val 
)
static
void DW1000Class::setChannel ( byte  channel)
static
void DW1000Class::setData ( byte  data[],
uint16_t  n 
)
static
void DW1000Class::setData ( const String &  data)
static
void DW1000Class::setDataRate ( byte  rate)
static

Specifies the data transmission rate of the DW1000 chip. One of the values

  • TRX_RATE_110KBPS (i.e. 110 kb/s)
  • TRX_RATE_850KBPS (i.e. 850 kb/s)
  • TRX_RATE_6800KBPS (i.e. 6.8 Mb/s) has to be provided.

See setDefaults() and enableMode() for additional information on data rate settings.

Parameters
[in]rateThe data transmission rate, encoded by the above defined constants.
void DW1000Class::setDefaults ( )
static
DW1000Time DW1000Class::setDelay ( const DW1000Time delay)
static
void DW1000Class::setDeviceAddress ( uint16_t  val)
static

(Re-)set the device address (i.e. short address) for the currently selected chip. This setting is important for certain MAC address filtering rules.

Parameters
[in]valAn arbitrary numeric device address.
void DW1000Class::setDoubleBuffering ( boolean  val)
static
void DW1000Class::setEUI ( char  eui[])
static
void DW1000Class::setEUI ( byte  eui[])
static
void DW1000Class::setFrameFilter ( boolean  val)
static
void DW1000Class::setFrameFilterAllowAcknowledgement ( boolean  val)
static
void DW1000Class::setFrameFilterAllowBeacon ( boolean  val)
static
void DW1000Class::setFrameFilterAllowData ( boolean  val)
static
void DW1000Class::setFrameFilterAllowMAC ( boolean  val)
static
void DW1000Class::setFrameFilterAllowReserved ( boolean  val)
static
void DW1000Class::setFrameFilterBehaveCoordinator ( boolean  val)
static
void DW1000Class::setInterruptPolarity ( boolean  val)
static

Specifies the interrupt polarity of the DW1000 chip.

As part of setDefaults() if the device is in idle mode, interrupt polarity is set to active high.

Parameters
[in]valtrue for active high interrupts, false for active low interrupts.
void DW1000Class::setNetworkId ( uint16_t  val)
static

(Re-)set the network identifier which the selected chip should be associated with. This setting is important for certain MAC address filtering rules.

Parameters
[in]valAn arbitrary numeric network identifier.
void DW1000Class::setPreambleCode ( byte  preacode)
static
void DW1000Class::setPreambleLength ( byte  prealen)
static
void DW1000Class::setPulseFrequency ( byte  freq)
static

Specifies the pulse repetition frequency (PRF) of data transmissions with the DW1000. Either

  • TX_PULSE_FREQ_16MHZ (i.e. 16 MHz)
  • TX_PULSE_FREQ_64MHZ (i.e. 64 MHz) has to be chosen.

Note that the 16 MHz setting is more power efficient, while the 64 MHz setting requires more power, but also delivers slightly better transmission performance (i.e. on communication range and timestamp accuracy) (see DWM1000 User Manual, section 9.3).

See setDefaults() and enableMode() for additional information on PRF settings.

Parameters
[in]freqThe PRF, encoded by the above defined constants.
void DW1000Class::setReceiverAutoReenable ( boolean  val)
static

Specifies whether the DW1000 chip should, again, turn on its receiver in case that the last reception failed.

This setting is enabled as part of setDefaults() if the device is in idle mode.

Parameters
[in]valtrue to enable, false to disable receiver auto-reenable.
void DW1000Class::softReset ( )
static

Resets the currently selected DW1000 chip programmatically (via corresponding commands).

void DW1000Class::startReceive ( )
static
void DW1000Class::startTransmit ( )
static
void DW1000Class::suppressFrameCheck ( boolean  val)
static

Specifies whether to suppress any frame check measures while sending or receiving messages. If suppressed, no 2-byte checksum is appended to the message before sending and this checksum is also not expected at receiver side. Note that when suppressing frame checks, the error event handler (attached via attachReceiveErrorHandler()) will not be triggered if received data is corrupted.

Frame checks are enabled as part of setDefaults() if the device is in idle mode.

Parameters
[in]valtrue to suppress frame check on sender and receiver side, false otherwise.
void DW1000Class::tune ( )
static
void DW1000Class::useExtendedFrameLength ( boolean  val)
static
void DW1000Class::useSmartPower ( boolean  smartPower)
static
void DW1000Class::waitForResponse ( boolean  val)
static
void DW1000Class::writeByte ( byte  cmd,
uint16_t  offset,
byte  data 
)
static
void DW1000Class::writeBytes ( byte  cmd,
uint16_t  offset,
byte  data[],
uint16_t  n 
)
static
void DW1000Class::writeChannelControlRegister ( )
static
void DW1000Class::writeNetworkIdAndDeviceAddress ( )
static
void DW1000Class::writeSystemConfigurationRegister ( )
static
void DW1000Class::writeSystemEventMaskRegister ( )
static
void DW1000Class::writeTransmitFrameControlRegister ( )
static
void DW1000Class::writeValueToBytes ( byte  data[],
int32_t  val,
uint16_t  n 
)
static

Member Data Documentation

DW1000Time DW1000Class::_antennaDelay
static
byte DW1000Class::_chanctrl
static
byte DW1000Class::_channel = CHANNEL_5
static
const SPISettings * DW1000Class::_currentSPI = &_fastSPI
static
byte DW1000Class::_dataRate = TRX_RATE_6800KBPS
static
uint8_t DW1000Class::_deviceMode = IDLE_MODE
static
byte DW1000Class::_extendedFrameLength = FRAME_LENGTH_NORMAL
static
const SPISettings DW1000Class::_fastSPI = SPISettings(16000000L, MSBFIRST, SPI_MODE0)
static
boolean DW1000Class::_frameCheck = true
static
void(* DW1000Class::_handleError)(void)=0
static
void(* DW1000Class::_handleReceived)(void)=0
static
void(* DW1000Class::_handleReceiveFailed)(void)=0
static
void(* DW1000Class::_handleReceiveTimeout)(void)=0
static
void(* DW1000Class::_handleReceiveTimestampAvailable)(void)=0
static
void(* DW1000Class::_handleSent)(void)=0
static
uint8_t DW1000Class::_irq
static
byte DW1000Class::_networkAndAddress
static
byte DW1000Class::_pacSize = PAC_SIZE_8
static
boolean DW1000Class::_permanentReceive = false
static
byte DW1000Class::_preambleCode = PREAMBLE_CODE_16MHZ_4
static
byte DW1000Class::_preambleLength = TX_PREAMBLE_LEN_128
static
byte DW1000Class::_pulseFrequency = TX_PULSE_FREQ_16MHZ
static
uint8_t DW1000Class::_rst
static
const SPISettings DW1000Class::_slowSPI = SPISettings(2000000L, MSBFIRST, SPI_MODE0)
static
boolean DW1000Class::_smartPower = false
static
uint8_t DW1000Class::_ss
static
byte DW1000Class::_syscfg
static
byte DW1000Class::_sysctrl
static
byte DW1000Class::_sysmask
static
byte DW1000Class::_sysstatus
static
byte DW1000Class::_tmeas23C = 0
static
byte DW1000Class::_txfctrl
static
byte DW1000Class::_vmeas3v3 = 0
static
const byte DW1000Class::AUTO_CLOCK = 0x00
static
constexpr byte DW1000Class::BIAS_500_16 = {198, 187, 179, 163, 143, 127, 109, 84, 59, 31, 0, 36, 65, 84, 97, 106, 110, 112}
static
const byte DW1000Class::BIAS_500_16_ZERO = 10
static
constexpr byte DW1000Class::BIAS_500_64 = {110, 105, 100, 93, 82, 69, 51, 27, 0, 21, 35, 42, 49, 62, 71, 76, 81, 86}
static
const byte DW1000Class::BIAS_500_64_ZERO = 8
static
constexpr byte DW1000Class::BIAS_900_16 = {137, 122, 105, 88, 69, 47, 25, 0, 21, 48, 79, 105, 127, 147, 160, 169, 178, 197}
static
const byte DW1000Class::BIAS_900_16_ZERO = 7
static
constexpr byte DW1000Class::BIAS_900_64 = {147, 133, 117, 99, 75, 50, 29, 0, 24, 45, 63, 76, 87, 98, 116, 122, 132, 142}
static
const byte DW1000Class::BIAS_900_64_ZERO = 7
static
constexpr byte DW1000Class::CHANNEL_1 = 1
static
constexpr byte DW1000Class::CHANNEL_2 = 2
static
constexpr byte DW1000Class::CHANNEL_3 = 3
static
constexpr byte DW1000Class::CHANNEL_4 = 4
static
constexpr byte DW1000Class::CHANNEL_5 = 5
static
constexpr byte DW1000Class::CHANNEL_7 = 7
static
constexpr byte DW1000Class::FRAME_LENGTH_EXTENDED = 0x03
static
constexpr byte DW1000Class::FRAME_LENGTH_NORMAL = 0x00
static
constexpr byte DW1000Class::MODE_LONGDATA_FAST_ACCURACY = {TRX_RATE_6800KBPS, TX_PULSE_FREQ_64MHZ, TX_PREAMBLE_LEN_1024}
static
constexpr byte DW1000Class::MODE_LONGDATA_FAST_LOWPOWER = {TRX_RATE_6800KBPS, TX_PULSE_FREQ_16MHZ, TX_PREAMBLE_LEN_1024}
static
constexpr byte DW1000Class::MODE_LONGDATA_RANGE_ACCURACY = {TRX_RATE_110KBPS, TX_PULSE_FREQ_64MHZ, TX_PREAMBLE_LEN_2048}
static
constexpr byte DW1000Class::MODE_LONGDATA_RANGE_LOWPOWER = {TRX_RATE_110KBPS, TX_PULSE_FREQ_16MHZ, TX_PREAMBLE_LEN_2048}
static
constexpr byte DW1000Class::MODE_SHORTDATA_FAST_ACCURACY = {TRX_RATE_6800KBPS, TX_PULSE_FREQ_64MHZ, TX_PREAMBLE_LEN_128}
static
constexpr byte DW1000Class::MODE_SHORTDATA_FAST_LOWPOWER = {TRX_RATE_6800KBPS, TX_PULSE_FREQ_16MHZ, TX_PREAMBLE_LEN_128}
static
constexpr byte DW1000Class::PAC_SIZE_16 = 16
static
constexpr byte DW1000Class::PAC_SIZE_32 = 32
static
constexpr byte DW1000Class::PAC_SIZE_64 = 64
static
constexpr byte DW1000Class::PAC_SIZE_8 = 8
static
const byte DW1000Class::PLL_CLOCK = 0x02
static
constexpr byte DW1000Class::PREAMBLE_CODE_16MHZ_1 = 1
static
constexpr byte DW1000Class::PREAMBLE_CODE_16MHZ_2 = 2
static
constexpr byte DW1000Class::PREAMBLE_CODE_16MHZ_3 = 3
static
constexpr byte DW1000Class::PREAMBLE_CODE_16MHZ_4 = 4
static
constexpr byte DW1000Class::PREAMBLE_CODE_16MHZ_5 = 5
static
constexpr byte DW1000Class::PREAMBLE_CODE_16MHZ_6 = 6
static
constexpr byte DW1000Class::PREAMBLE_CODE_16MHZ_7 = 7
static
constexpr byte DW1000Class::PREAMBLE_CODE_16MHZ_8 = 8
static
constexpr byte DW1000Class::PREAMBLE_CODE_64MHZ_10 = 10
static
constexpr byte DW1000Class::PREAMBLE_CODE_64MHZ_11 = 11
static
constexpr byte DW1000Class::PREAMBLE_CODE_64MHZ_12 = 12
static
constexpr byte DW1000Class::PREAMBLE_CODE_64MHZ_17 = 17
static
constexpr byte DW1000Class::PREAMBLE_CODE_64MHZ_18 = 18
static
constexpr byte DW1000Class::PREAMBLE_CODE_64MHZ_19 = 19
static
constexpr byte DW1000Class::PREAMBLE_CODE_64MHZ_20 = 20
static
constexpr byte DW1000Class::PREAMBLE_CODE_64MHZ_9 = 9
static
const byte DW1000Class::READ = 0x00
static
const byte DW1000Class::READ_SUB = 0x40
static
const byte DW1000Class::RW_SUB_EXT = 0x80
static
constexpr byte DW1000Class::TRX_RATE_110KBPS = 0x00
static
constexpr byte DW1000Class::TRX_RATE_6800KBPS = 0x02
static
constexpr byte DW1000Class::TRX_RATE_850KBPS = 0x01
static
constexpr byte DW1000Class::TX_PREAMBLE_LEN_1024 = 0x02
static
constexpr byte DW1000Class::TX_PREAMBLE_LEN_128 = 0x05
static
constexpr byte DW1000Class::TX_PREAMBLE_LEN_1536 = 0x06
static
constexpr byte DW1000Class::TX_PREAMBLE_LEN_2048 = 0x0A
static
constexpr byte DW1000Class::TX_PREAMBLE_LEN_256 = 0x09
static
constexpr byte DW1000Class::TX_PREAMBLE_LEN_4096 = 0x03
static
constexpr byte DW1000Class::TX_PREAMBLE_LEN_512 = 0x0D
static
constexpr byte DW1000Class::TX_PREAMBLE_LEN_64 = 0x01
static
constexpr byte DW1000Class::TX_PULSE_FREQ_16MHZ = 0x01
static
constexpr byte DW1000Class::TX_PULSE_FREQ_64MHZ = 0x02
static
const byte DW1000Class::WRITE = 0x80
static
const byte DW1000Class::WRITE_SUB = 0xC0
static
const byte DW1000Class::XTI_CLOCK = 0x01
static

The documentation for this class was generated from the following files: