28 #ifndef _DW1000_H_INCLUDED 29 #define _DW1000_H_INCLUDED 49 static void begin(uint8_t irq, uint8_t rst = 0xff);
59 static void select(uint8_t ss);
146 static void setEUI(
char eui[]);
147 static void setEUI(byte eui[]);
221 static void setData(byte data[], uint16_t n);
222 static void setData(
const String& data);
223 static void getData(byte data[], uint16_t n);
224 static void getData(String& data);
315 static void getPrettyBytes(byte cmd, uint16_t offset,
char msgBuffer[], uint16_t n);
316 static void getPrettyBytes(byte data[],
char msgBuffer[], uint16_t n);
500 static void readBytes(byte cmd, uint16_t offset, byte data[], uint16_t n);
501 static void readBytesOTP(uint16_t address, byte data[]);
502 static void writeByte(byte cmd, uint16_t offset, byte data);
503 static void writeBytes(byte cmd, uint16_t offset, byte data[], uint16_t n);
509 static boolean getBit(byte data[], uint16_t n, uint16_t bit);
510 static void setBit(byte data[], uint16_t n, uint16_t bit,
boolean val);
537 static constexpr byte
BIAS_500_16[] = {198, 187, 179, 163, 143, 127, 109, 84, 59, 31, 0, 36, 65, 84, 97, 106, 110, 112};
538 static constexpr byte
BIAS_500_64[] = {110, 105, 100, 93, 82, 69, 51, 27, 0, 21, 35, 42, 49, 62, 71, 76, 81, 86};
539 static constexpr byte
BIAS_900_16[] = {137, 122, 105, 88, 69, 47, 25, 0, 21, 48, 79, 105, 127, 147, 160, 169, 178, 197};
540 static constexpr byte
BIAS_900_64[] = {147, 133, 117, 99, 75, 50, 29, 0, 24, 45, 63, 76, 87, 98, 116, 122, 132, 142};
static void(* _handleReceived)(void)
Definition: DW1000.h:399
static constexpr byte MODE_LONGDATA_RANGE_ACCURACY[]
Definition: DW1000.h:388
static void setDataRate(byte rate)
Definition: DW1000.cpp:1041
static void getPrintableNetworkIdAndShortAddress(char msgBuffer[])
Definition: DW1000.cpp:691
static constexpr byte TX_PREAMBLE_LEN_2048
Definition: DW1000.h:342
static void suppressFrameCheck(boolean val)
Definition: DW1000.cpp:1008
static byte _tmeas23C
Definition: DW1000.h:414
static constexpr byte TRX_RATE_6800KBPS
Definition: DW1000.h:328
static void interruptOnReceiveFailed(boolean val)
Definition: DW1000.cpp:913
static void getSystemTimestamp(DW1000Time &time)
Definition: DW1000.cpp:1301
static const SPISettings * _currentSPI
Definition: DW1000.h:528
static constexpr byte TX_PREAMBLE_LEN_128
Definition: DW1000.h:337
static const byte AUTO_CLOCK
Definition: DW1000.h:521
static void newReceive()
Definition: DW1000.cpp:943
static void writeSystemEventMaskRegister()
Definition: DW1000.cpp:774
static void convertToByte(char string[], byte *eui_byte)
Definition: DW1000.cpp:821
static void select(uint8_t ss)
Definition: DW1000.cpp:111
static const byte PLL_CLOCK
Definition: DW1000.h:523
static constexpr byte BIAS_500_64[]
Definition: DW1000.h:538
static constexpr byte PREAMBLE_CODE_64MHZ_12
Definition: DW1000.h:371
static boolean isClockProblem()
Definition: DW1000.cpp:1350
static void setFrameFilter(boolean val)
Definition: DW1000.cpp:863
static void attachErrorHandler(void(*handleError)(void))
Definition: DW1000.h:247
static void getPrettyBytes(byte cmd, uint16_t offset, char msgBuffer[], uint16_t n)
Definition: DW1000.cpp:1663
#define LEN_SYS_CTRL
Definition: DW1000Constants.h:70
static void setData(byte data[], uint16_t n)
Definition: DW1000.cpp:1165
static byte _pulseFrequency
Definition: DW1000.h:425
static void startReceive()
Definition: DW1000.cpp:950
static void getReceiveTimestamp(DW1000Time &time)
Definition: DW1000.cpp:1239
static void setPulseFrequency(byte freq)
Definition: DW1000.cpp:1073
static void getPrintableDeviceIdentifier(char msgBuffer[])
Definition: DW1000.cpp:677
static byte _sysmask[LEN_SYS_MASK]
Definition: DW1000.h:409
static uint8_t nibbleFromChar(char c)
Definition: DW1000.cpp:808
static void enableClock(byte clock)
Definition: DW1000.cpp:202
static void(* _handleReceiveTimeout)(void)
Definition: DW1000.h:401
static constexpr byte CHANNEL_7
Definition: DW1000.h:357
static uint16_t getDataLength()
Definition: DW1000.cpp:1191
static void manageLDE()
Definition: DW1000.cpp:175
static void newConfiguration()
Definition: DW1000.cpp:977
static constexpr byte CHANNEL_4
Definition: DW1000.h:355
static void setDeviceAddress(uint16_t val)
Definition: DW1000.cpp:803
static constexpr byte TX_PREAMBLE_LEN_1024
Definition: DW1000.h:340
static void begin(uint8_t irq, uint8_t rst=0xff)
Definition: DW1000.cpp:157
static void getPrintableDeviceMode(char msgBuffer[])
Definition: DW1000.cpp:698
static void interruptOnSent(boolean val)
Definition: DW1000.cpp:904
static const byte WRITE_SUB
Definition: DW1000.h:515
static byte _vmeas3v3
Definition: DW1000.h:413
static void setFrameFilterAllowMAC(boolean val)
Definition: DW1000.cpp:883
static uint8_t _rst
Definition: DW1000.h:393
static const byte BIAS_500_16_ZERO
Definition: DW1000.h:531
static void writeNetworkIdAndDeviceAddress()
Definition: DW1000.cpp:766
static void receivePermanently(boolean val)
Definition: DW1000.cpp:1108
static DW1000Time setDelay(const DW1000Time &delay)
Definition: DW1000.cpp:1017
static void handleInterrupt()
Definition: DW1000.cpp:632
static void(* _handleReceiveTimestampAvailable)(void)
Definition: DW1000.h:402
static void clearInterrupts()
Definition: DW1000.cpp:932
static void waitForResponse(boolean val)
Definition: DW1000.cpp:1004
static boolean getBit(byte data[], uint16_t n, uint16_t bit)
Definition: DW1000.cpp:1504
static void softReset()
Definition: DW1000.cpp:239
static void(* _handleError)(void)
Definition: DW1000.h:397
static constexpr byte PAC_SIZE_8
Definition: DW1000.h:346
static constexpr byte PREAMBLE_CODE_16MHZ_5
Definition: DW1000.h:364
static constexpr byte TX_PULSE_FREQ_16MHZ
Definition: DW1000.h:332
static constexpr byte TX_PREAMBLE_LEN_4096
Definition: DW1000.h:343
static void interruptOnReceiveTimestampAvailable(boolean val)
Definition: DW1000.cpp:924
static void reset()
Definition: DW1000.cpp:224
static void writeSystemConfigurationRegister()
Definition: DW1000.cpp:754
static void clearReceiveStatus()
Definition: DW1000.cpp:1370
static void readNetworkIdAndDeviceAddress()
Definition: DW1000.cpp:762
static constexpr byte BIAS_900_16[]
Definition: DW1000.h:539
static void attachReceivedHandler(void(*handleReceived)(void))
Definition: DW1000.h:255
static void writeTransmitFrameControlRegister()
Definition: DW1000.cpp:790
static byte _txfctrl[LEN_TX_FCTRL]
Definition: DW1000.h:408
static const SPISettings _fastSPI
Definition: DW1000.h:526
static constexpr byte TRX_RATE_850KBPS
Definition: DW1000.h:327
static void attachReceiveFailedHandler(void(*handleReceiveFailed)(void))
Definition: DW1000.h:259
#define LEN_TX_FCTRL
Definition: DW1000Constants.h:154
static boolean _frameCheck
Definition: DW1000.h:432
static constexpr byte CHANNEL_3
Definition: DW1000.h:354
static byte _preambleLength
Definition: DW1000.h:424
static void attachReceiveTimestampAvailableHandler(void(*handleReceiveTimestampAvailable)(void))
Definition: DW1000.h:267
static byte _pacSize
Definition: DW1000.h:427
#define LEN_SYS_CFG
Definition: DW1000Constants.h:52
static void readSystemEventStatusRegister()
Definition: DW1000.cpp:758
static constexpr byte TX_PULSE_FREQ_64MHZ
Definition: DW1000.h:333
static void interruptOnReceived(boolean val)
Definition: DW1000.cpp:908
static constexpr byte TRX_RATE_110KBPS
Definition: DW1000.h:326
static const byte WRITE
Definition: DW1000.h:514
static const byte BIAS_900_64_ZERO
Definition: DW1000.h:534
static uint8_t _irq
Definition: DW1000.h:394
static void attachSentHandler(void(*handleSent)(void))
Definition: DW1000.h:251
static constexpr byte MODE_LONGDATA_FAST_ACCURACY[]
Definition: DW1000.h:387
static void readTransmitFrameControlRegister()
Definition: DW1000.cpp:786
static byte _extendedFrameLength
Definition: DW1000.h:421
static constexpr byte TX_PREAMBLE_LEN_1536
Definition: DW1000.h:341
static void reselect(uint8_t ss)
Definition: DW1000.cpp:151
static constexpr byte MODE_SHORTDATA_FAST_ACCURACY[]
Definition: DW1000.h:386
static void readSystemEventMaskRegister()
Definition: DW1000.cpp:770
static constexpr byte PREAMBLE_CODE_64MHZ_9
Definition: DW1000.h:368
static float getFirstPathPower()
Definition: DW1000.cpp:1402
static constexpr byte PAC_SIZE_16
Definition: DW1000.h:347
static constexpr byte PREAMBLE_CODE_64MHZ_18
Definition: DW1000.h:373
DW1000Class DW1000
Definition: DW1000.cpp:23
static constexpr byte PREAMBLE_CODE_64MHZ_20
Definition: DW1000.h:375
static constexpr byte BIAS_500_16[]
Definition: DW1000.h:537
static byte _preambleCode
Definition: DW1000.h:422
static const byte READ_SUB
Definition: DW1000.h:517
static constexpr byte PREAMBLE_CODE_64MHZ_19
Definition: DW1000.h:374
static const byte RW_SUB_EXT
Definition: DW1000.h:518
static constexpr byte CHANNEL_1
Definition: DW1000.h:352
static void commitConfiguration()
Definition: DW1000.cpp:986
static constexpr byte PREAMBLE_CODE_64MHZ_10
Definition: DW1000.h:369
#define LEN_CHAN_CTRL
Definition: DW1000Constants.h:158
static constexpr byte FRAME_LENGTH_EXTENDED
Definition: DW1000.h:379
static constexpr byte PREAMBLE_CODE_16MHZ_4
Definition: DW1000.h:363
static byte _sysstatus[LEN_SYS_STATUS]
Definition: DW1000.h:407
static void getPrintableExtendedUniqueIdentifier(char msgBuffer[])
Definition: DW1000.cpp:684
static constexpr byte FRAME_LENGTH_NORMAL
Definition: DW1000.h:378
static void setChannel(byte channel)
Definition: DW1000.cpp:1117
Definition: DW1000Time.h:43
static constexpr byte PREAMBLE_CODE_16MHZ_3
Definition: DW1000.h:362
static boolean isReceiveTimestampAvailable()
Definition: DW1000.cpp:1323
static void newTransmit()
Definition: DW1000.cpp:956
static boolean isTransmitDone()
Definition: DW1000.cpp:1319
static float getReceivePower()
Definition: DW1000.cpp:1434
static constexpr byte MODE_LONGDATA_FAST_LOWPOWER[]
Definition: DW1000.h:385
static void writeBytes(byte cmd, uint16_t offset, byte data[], uint16_t n)
Definition: DW1000.cpp:1606
static uint8_t _ss
Definition: DW1000.h:392
static void attachReceiveTimeoutHandler(void(*handleReceiveTimeout)(void))
Definition: DW1000.h:263
static constexpr byte PREAMBLE_CODE_16MHZ_8
Definition: DW1000.h:367
static void interruptOnAutomaticAcknowledgeTrigger(boolean val)
Definition: DW1000.cpp:928
static float getReceiveQuality()
Definition: DW1000.cpp:1391
static constexpr byte PREAMBLE_CODE_64MHZ_11
Definition: DW1000.h:370
static constexpr byte CHANNEL_2
Definition: DW1000.h:353
static void interruptOnReceiveTimeout(boolean val)
Definition: DW1000.cpp:920
static byte _sysctrl[LEN_SYS_CTRL]
Definition: DW1000.h:406
static const byte BIAS_500_64_ZERO
Definition: DW1000.h:532
static void(* _handleReceiveFailed)(void)
Definition: DW1000.h:400
static void correctTimestamp(DW1000Time ×tamp)
Definition: DW1000.cpp:1248
static uint8_t _deviceMode
Definition: DW1000.h:435
static void getTempAndVbat(float &temp, float &vbat)
Definition: DW1000.cpp:830
static constexpr byte PREAMBLE_CODE_16MHZ_2
Definition: DW1000.h:361
static void setBit(byte data[], uint16_t n, uint16_t bit, boolean val)
Definition: DW1000.cpp:1477
static void setFrameFilterAllowReserved(boolean val)
Definition: DW1000.cpp:887
static void writeByte(byte cmd, uint16_t offset, byte data)
Definition: DW1000.cpp:1588
static void setFrameFilterBehaveCoordinator(boolean val)
Definition: DW1000.cpp:867
static void setEUI(char eui[])
Definition: DW1000.cpp:845
static void clearAllStatus()
Definition: DW1000.cpp:1360
static void clearReceiveTimestampAvailableStatus()
Definition: DW1000.cpp:1365
static void readBytes(byte cmd, uint16_t offset, byte data[], uint16_t n)
Definition: DW1000.cpp:1535
static const SPISettings _slowSPI
Definition: DW1000.h:527
static boolean _permanentReceive
Definition: DW1000.h:431
static byte _channel
Definition: DW1000.h:423
static constexpr byte MODE_LONGDATA_RANGE_LOWPOWER[]
Definition: DW1000.h:383
static constexpr byte TX_PREAMBLE_LEN_512
Definition: DW1000.h:339
static void idle()
Definition: DW1000.cpp:936
static void writeValueToBytes(byte data[], int32_t val, uint16_t n)
Definition: DW1000.cpp:1518
static void(* _handleSent)(void)
Definition: DW1000.h:398
static byte _dataRate
Definition: DW1000.h:426
static void getTransmitTimestamp(DW1000Time &time)
Definition: DW1000.cpp:1233
static boolean _smartPower
Definition: DW1000.h:420
static void setInterruptPolarity(boolean val)
Definition: DW1000.cpp:896
static void readChannelControlRegister()
Definition: DW1000.cpp:778
static void setDefaults()
Definition: DW1000.cpp:1132
static constexpr byte PREAMBLE_CODE_16MHZ_1
Definition: DW1000.h:360
static constexpr byte PAC_SIZE_64
Definition: DW1000.h:349
static constexpr byte PREAMBLE_CODE_64MHZ_17
Definition: DW1000.h:372
static void setNetworkId(uint16_t val)
Definition: DW1000.cpp:798
static boolean isReceiveDone()
Definition: DW1000.cpp:1327
static constexpr byte CHANNEL_5
Definition: DW1000.h:356
static void setFrameFilterAllowData(boolean val)
Definition: DW1000.cpp:875
static void getData(byte data[], uint16_t n)
Definition: DW1000.cpp:1208
#define LEN_SYS_STATUS
Definition: DW1000Constants.h:81
static boolean isReceiveTimeout()
Definition: DW1000.cpp:1346
static void setPreambleLength(byte prealen)
Definition: DW1000.cpp:1086
static void setReceiverAutoReenable(boolean val)
Definition: DW1000.cpp:900
static byte _syscfg[LEN_SYS_CFG]
Definition: DW1000.h:405
static constexpr byte TX_PREAMBLE_LEN_256
Definition: DW1000.h:338
static void useSmartPower(boolean smartPower)
Definition: DW1000.cpp:1012
static const byte READ
Definition: DW1000.h:516
static void end()
Definition: DW1000.cpp:107
static boolean isReceiveFailed()
Definition: DW1000.cpp:1334
static const byte XTI_CLOCK
Definition: DW1000.h:522
static void enableMode(const byte mode[])
Definition: DW1000.cpp:254
static DW1000Time _antennaDelay
Definition: DW1000.h:428
static void setDoubleBuffering(boolean val)
Definition: DW1000.cpp:892
static void clearTransmitStatus()
Definition: DW1000.cpp:1382
static constexpr byte PREAMBLE_CODE_16MHZ_6
Definition: DW1000.h:365
static constexpr byte TX_PREAMBLE_LEN_64
Definition: DW1000.h:336
static byte _chanctrl[LEN_CHAN_CTRL]
Definition: DW1000.h:410
#define LEN_SYS_MASK
Definition: DW1000Constants.h:102
static void tune()
Definition: DW1000.cpp:268
static void startTransmit()
Definition: DW1000.cpp:963
#define LEN_PANADR
Definition: DW1000Constants.h:48
static void readBytesOTP(uint16_t address, byte data[])
Definition: DW1000.cpp:1569
static byte getPulseFrequency()
Definition: DW1000.cpp:1082
static void readSystemConfigurationRegister()
Definition: DW1000.cpp:750
static void writeChannelControlRegister()
Definition: DW1000.cpp:782
static void setFrameFilterAllowAcknowledgement(boolean val)
Definition: DW1000.cpp:879
static void setFrameFilterAllowBeacon(boolean val)
Definition: DW1000.cpp:871
static constexpr byte PREAMBLE_CODE_16MHZ_7
Definition: DW1000.h:366
static constexpr byte MODE_SHORTDATA_FAST_LOWPOWER[]
Definition: DW1000.h:384
static byte _networkAndAddress[LEN_PANADR]
Definition: DW1000.h:417
static const byte BIAS_900_16_ZERO
Definition: DW1000.h:533
static void setPreambleCode(byte preacode)
Definition: DW1000.cpp:1123
static constexpr byte BIAS_900_64[]
Definition: DW1000.h:540
static void useExtendedFrameLength(boolean val)
Definition: DW1000.cpp:1102
static constexpr byte PAC_SIZE_32
Definition: DW1000.h:348