feat: rewrite UWB firmware for DW1000 (all 3 boards)

Anchor (esp32/uwb_anchor):
- DW1000Ranging library (200m range, MODE_LONGDATA_RANGE_ACCURACY)
- Unique addresses per anchor (anchor0/anchor1 build envs)
- +RANGE output: anchor_id, tag_addr, range_mm, rssi
- ESP-NOW receiver: forwards tag packets + priority E-STOP to Jetson
- AT+ID? command

Tag with Display (esp32/uwb_tag):
- DW1000Ranging as tag, auto-discovers anchors
- SSD1306 OLED: big distance, per-anchor ranges, RSSI bars, link status
- ESP-NOW broadcast: range/heartbeat/estop packets
- E-Stop on GPIO 0 (BOOT button), 10Hz TX while held
- Display at 5Hz, ranging driven by DW1000Ranging.loop()

Shared:
- lib/DW1000/ extracted from mf_DW1000.zip (Makerfabs fork)
- lib_extra_dirs for PlatformIO to find local library
This commit is contained in:
salty 2026-03-14 12:30:26 -04:00
parent a9e1b9fae5
commit ed1542ae11
377 changed files with 53271 additions and 783 deletions

View File

@ -1,14 +1,9 @@
; SaltyBot UWB Anchor Firmware — Issue #544
; Target: Makerfabs ESP32 UWB Pro (DW3000 chip)
;
; Library: Makerfabs MaUWB_DW3000
; https://github.com/Makerfabs/MaUWB_DW3000
; SaltyBot UWB Anchor Firmware
; Target: Makerfabs ESP32 UWB Pro (DW1000, 200m range)
;
; Flash:
; pio run -e anchor0 --target upload (port-side anchor)
; pio run -e anchor1 --target upload (starboard anchor)
; Monitor:
; pio device monitor -e anchor0 -b 115200
; pio run -e anchor0 --target upload (port-side)
; pio run -e anchor1 --target upload (starboard)
[common]
platform = espressif32
@ -16,8 +11,7 @@ board = esp32dev
framework = arduino
monitor_speed = 115200
upload_speed = 921600
lib_deps =
https://github.com/Makerfabs/MaUWB_DW3000.git
lib_extra_dirs = ../../lib
build_flags =
-DCORE_DEBUG_LEVEL=0

View File

@ -1,61 +1,57 @@
/*
* uwb_anchor SaltyBot ESP32 UWB Pro anchor firmware (TWR responder)
* Issue #544
* uwb_anchor SaltyBot ESP32 UWB Pro anchor (DW1000 TWR responder)
*
* Hardware: Makerfabs ESP32 UWB Pro (DW3000 chip)
* Hardware: Makerfabs ESP32 UWB Pro (DW1000, 200m range)
* Sits on robot body, USB-serial to Jetson Orin.
* Two anchors: anchor-0 (port), anchor-1 (starboard).
*
* Role
*
* Anchor sits on SaltyBot body, USB-connected to Jetson Orin.
* Two anchors per robot (anchor-0 port side, anchor-1 starboard).
* Person-worn tags initiate ranging; anchors respond.
* Serial output to Jetson (115200):
* +RANGE:<anchor_id>,<tag_short_addr>,<range_mm>,<rssi_dbm>\r\n
*
* Protocol: Double-Sided TWR (DS-TWR)
*
* Tag Anchor POLL (msg_type 0x01)
* Anchor Tag RESP (msg_type 0x02, payload: T_poll_rx, T_resp_tx)
* Tag Anchor FINAL (msg_type 0x03, payload: Ra, Da, Db timestamps)
* Anchor computes range via DS-TWR formula, emits +RANGE on Serial.
* Also receives ESP-NOW packets from tag and forwards:
* +ESPNOW:<tag_id>,<msg_type>,<range_mm>,<rssi>,<batt>,<flags>,<seq>\r\n
* +ESTOP:<tag_id>\r\n (priority)
*
* Serial output (115200 8N1, USB-CDC to Jetson)
*
* +RANGE:<anchor_id>,<range_mm>,<rssi_dbm>\r\n (on each successful range)
* AT commands (host anchor):
* AT+ID? +ID:<anchor_id>
*
* AT commands (host anchor)
*
* AT+RANGE? returns last buffered +RANGE line
* AT+RANGE_ADDR=<hex_addr> pair with specific tag (filter others)
* AT+RANGE_ADDR= clear pairing (accept all tags)
* AT+ID? returns +ID:<anchor_id>
*
* Pin mapping Makerfabs ESP32 UWB Pro
*
* SPI SCK 18 SPI MISO 19 SPI MOSI 23
* DW CS 21 DW RST 27 DW IRQ 34
*
* Build
*
* pio run -e anchor0 --target upload (port side)
* pio run -e anchor1 --target upload (starboard)
* Pin map ESP32 UWB Pro (no display):
* SPI: SCK=18 MISO=19 MOSI=23 CS=4
* DW1000: RST=27 IRQ=34
*/
#include <Arduino.h>
#include <SPI.h>
#include <math.h>
#include <WiFi.h>
#include <esp_now.h>
#include <esp_wifi.h>
#include "dw3000.h" // Makerfabs MaUWB_DW3000 library
#include "DW1000Ranging.h"
/* ── Configurable ───────────────────────────────────────────────── */
/* ── Config ─────────────────────────────────────────────────────── */
#ifndef ANCHOR_ID
# define ANCHOR_ID 0 /* 0 = port, 1 = starboard */
# define ANCHOR_ID 0
#endif
#define SERIAL_BAUD 115200
/* ── ESP-NOW packet format (shared with tag firmware) ──────────── */
/* Unique DW1000 address per anchor (last 2 bytes differ) */
#if ANCHOR_ID == 0
# define ANCHOR_ADDR "86:17:5B:D5:A9:9A:E2:00"
#else
# define ANCHOR_ADDR "86:17:5B:D5:A9:9A:E2:01"
#endif
/* ── Pins (ESP32 UWB Pro, no display) ──────────────────────────── */
#define PIN_SCK 18
#define PIN_MISO 19
#define PIN_MOSI 23
#define PIN_CS 4
#define PIN_RST 27
#define PIN_IRQ 34
/* ── ESP-NOW packet format (shared with tag) ───────────────────── */
#define ESPNOW_MAGIC_0 0x5B
#define ESPNOW_MAGIC_1 0x01
@ -79,157 +75,19 @@ struct EspNowPacket {
};
#pragma pack(pop)
/* Ring buffer for received ESP-NOW packets (ISR → main loop) */
#define ESPNOW_QUEUE_SIZE 8
static volatile EspNowPacket g_espnow_queue[ESPNOW_QUEUE_SIZE];
static volatile int g_espnow_head = 0;
static volatile int g_espnow_tail = 0;
/* ISR ring buffer for ESP-NOW */
#define ESPNOW_Q_SIZE 8
static volatile EspNowPacket g_enq[ESPNOW_Q_SIZE];
static volatile int g_en_head = 0, g_en_tail = 0;
static void IRAM_ATTR espnow_rx_cb(const uint8_t *mac, const uint8_t *data, int len) {
if (len < (int)sizeof(EspNowPacket)) return;
const EspNowPacket *pkt = (const EspNowPacket *)data;
if (pkt->magic[0] != ESPNOW_MAGIC_0 || pkt->magic[1] != ESPNOW_MAGIC_1) return;
int next = (g_espnow_head + 1) % ESPNOW_QUEUE_SIZE;
if (next == g_espnow_tail) return; /* queue full, drop */
g_espnow_queue[g_espnow_head] = *pkt;
g_espnow_head = next;
}
/* ── Pin map (Makerfabs ESP32 UWB Pro) ─────────────────────────── */
#define PIN_SCK 18
#define PIN_MISO 19
#define PIN_MOSI 23
#define PIN_CS 21
#define PIN_RST 27
#define PIN_IRQ 34
/* ── DW3000 channel / PHY config ───────────────────────────────── */
static dwt_config_t dw_cfg = {
5, /* channel 5 (6.5 GHz, best penetration) */
DWT_PLEN_128, /* preamble length */
DWT_PAC8, /* PAC size */
9, /* TX preamble code */
9, /* RX preamble code */
1, /* SFD type (IEEE 802.15.4z) */
DWT_BR_6M8, /* data rate 6.8 Mbps */
DWT_PHR_MODE_STD, /* standard PHR */
DWT_PHR_RATE_DATA,
(129 + 8 - 8), /* SFD timeout */
DWT_STS_MODE_OFF, /* STS off — standard TWR */
DWT_STS_LEN_64,
DWT_PDOA_M0, /* no PDoA */
};
/* ── Frame format ──────────────────────────────────────────────── */
/* Byte layout for all frames:
* [0] frame_type (FTYPE_*)
* [1] src_id (tag 8-bit addr, or ANCHOR_ID)
* [2] dst_id
* [3..] payload
* (FCS appended automatically by DW3000 2 bytes)
*/
#define FTYPE_POLL 0x01
#define FTYPE_RESP 0x02
#define FTYPE_FINAL 0x03
#define FRAME_HDR 3
#define FCS_LEN 2
/* RESP payload: T_poll_rx(5 B) + T_resp_tx(5 B) */
#define RESP_PAYLOAD 10
#define RESP_FRAME_LEN (FRAME_HDR + RESP_PAYLOAD + FCS_LEN)
/* FINAL payload: Ra(5 B) + Da(5 B) + Db(5 B) */
#define FINAL_PAYLOAD 15
#define FINAL_FRAME_LEN (FRAME_HDR + FINAL_PAYLOAD + FCS_LEN)
/* ── Timing ────────────────────────────────────────────────────── */
/* Turnaround delay: anchor waits 500 µs after poll_rx before tx_resp.
* DW3000 tick = 1/(128×499.2e6) 15.65 ps 500 µs = ~31.95M ticks.
* Stored as uint32 shifted right 8 bits for dwt_setdelayedtrxtime. */
#define RESP_TX_DLY_US 500UL
#define DWT_TICKS_PER_US 63898UL /* 1µs in DW3000 ticks (×8 prescaler) */
#define RESP_TX_DLY_TICKS (RESP_TX_DLY_US * DWT_TICKS_PER_US)
/* How long anchor listens for FINAL after sending RESP */
#define FINAL_RX_TIMEOUT_US 3000
/* Speed of light (m/s) */
#define SPEED_OF_LIGHT 299702547.0
/* DW3000 40-bit timestamp mask */
#define DWT_TS_MASK 0xFFFFFFFFFFULL
/* Antenna delay (factory default; calibrate per unit for best accuracy) */
#define ANT_DELAY 16385
/* ── Interrupt flags (set in ISR, polled in main) ──────────────── */
static volatile bool g_rx_ok = false;
static volatile bool g_tx_done = false;
static volatile bool g_rx_err = false;
static volatile bool g_rx_to = false;
static uint8_t g_rx_buf[128];
static uint32_t g_rx_len = 0;
/* ── State ──────────────────────────────────────────────────────── */
/* Last successful range (serves AT+RANGE? queries) */
static int32_t g_last_range_mm = -1;
static char g_last_range_line[72] = {};
/* Optional tag pairing: 0 = accept all tags */
static uint8_t g_paired_tag_id = 0;
/* ── DW3000 ISR callbacks ───────────────────────────────────────── */
static void cb_tx_done(const dwt_cb_data_t *) { g_tx_done = true; }
static void cb_rx_ok(const dwt_cb_data_t *d) {
g_rx_len = d->datalength;
if (g_rx_len > sizeof(g_rx_buf)) g_rx_len = sizeof(g_rx_buf);
dwt_readrxdata(g_rx_buf, g_rx_len, 0);
g_rx_ok = true;
}
static void cb_rx_err(const dwt_cb_data_t *) { g_rx_err = true; }
static void cb_rx_to(const dwt_cb_data_t *) { g_rx_to = true; }
/* ── Timestamp helpers ──────────────────────────────────────────── */
static uint64_t ts_read(const uint8_t *p) {
uint64_t v = 0;
for (int i = 4; i >= 0; i--) v = (v << 8) | p[i];
return v;
}
static void ts_write(uint8_t *p, uint64_t v) {
for (int i = 0; i < 5; i++, v >>= 8) p[i] = (uint8_t)(v & 0xFF);
}
static inline uint64_t ts_diff(uint64_t later, uint64_t earlier) {
return (later - earlier) & DWT_TS_MASK;
}
static inline double ticks_to_s(uint64_t t) {
return (double)t / (128.0 * 499200000.0);
}
/* Estimate receive power from CIR diagnostics (dBm) */
static float rx_power_dbm(void) {
dwt_rxdiag_t d;
dwt_readdiagnostics(&d);
if (d.maxGrowthCIR == 0 || d.rxPreamCount == 0) return 0.0f;
float f = (float)d.maxGrowthCIR;
float n = (float)d.rxPreamCount;
return 10.0f * log10f((f * f) / (n * n)) - 121.74f;
const EspNowPacket *p = (const EspNowPacket *)data;
if (p->magic[0] != ESPNOW_MAGIC_0 || p->magic[1] != ESPNOW_MAGIC_1) return;
int next = (g_en_head + 1) % ESPNOW_Q_SIZE;
if (next == g_en_tail) return;
g_enq[g_en_head] = *p;
g_en_head = next;
}
/* ── AT command handler ─────────────────────────────────────────── */
@ -238,24 +96,8 @@ static char g_at_buf[64];
static int g_at_idx = 0;
static void at_dispatch(const char *cmd) {
if (strcmp(cmd, "AT+RANGE?") == 0) {
if (g_last_range_mm >= 0)
Serial.println(g_last_range_line);
else
Serial.println("+RANGE:NO_DATA");
} else if (strcmp(cmd, "AT+ID?") == 0) {
if (strcmp(cmd, "AT+ID?") == 0) {
Serial.printf("+ID:%d\r\n", ANCHOR_ID);
} else if (strncmp(cmd, "AT+RANGE_ADDR=", 14) == 0) {
const char *v = cmd + 14;
if (*v == '\0') {
g_paired_tag_id = 0;
Serial.println("+OK:UNPAIRED");
} else {
g_paired_tag_id = (uint8_t)strtoul(v, nullptr, 0);
Serial.printf("+OK:PAIRED=0x%02X\r\n", g_paired_tag_id);
}
} else {
Serial.println("+ERR:UNKNOWN_CMD");
}
@ -275,227 +117,86 @@ static void serial_poll(void) {
}
}
/* ── DS-TWR anchor state machine ────────────────────────────────── */
/*
* DS-TWR responder (one shot):
* 1. Wait for POLL from tag
* 2. Delayed-TX RESP (carry T_poll_rx + scheduled T_resp_tx)
* 3. Wait for FINAL from tag (tag embeds Ra, Da, Db)
* 4. Compute: Rb = T_final_rx T_resp_tx
* tof = (Ra·Rb Da·Db) / (Ra+Rb+Da+Db)
* range_m = tof × c
* 5. Print +RANGE line
*/
static void twr_cycle(void) {
/* --- 1. Listen for POLL --- */
dwt_setrxtimeout(0);
dwt_rxenable(DWT_START_RX_IMMEDIATE);
g_rx_ok = g_rx_err = false;
uint32_t deadline = millis() + 2000;
while (!g_rx_ok && !g_rx_err) {
serial_poll();
if (millis() > deadline) {
/* restart RX if we've been stuck */
dwt_rxenable(DWT_START_RX_IMMEDIATE);
deadline = millis() + 2000;
}
yield();
}
if (!g_rx_ok || g_rx_len < FRAME_HDR) return;
/* validate POLL */
if (g_rx_buf[0] != FTYPE_POLL) return;
uint8_t tag_id = g_rx_buf[1];
if (g_paired_tag_id != 0 && tag_id != g_paired_tag_id) return;
/* --- 2. Record T_poll_rx --- */
uint8_t poll_rx_raw[5];
dwt_readrxtimestamp(poll_rx_raw);
uint64_t T_poll_rx = ts_read(poll_rx_raw);
/* Compute delayed TX time: poll_rx + turnaround, aligned to 512-tick grid */
uint64_t resp_tx_sched = (T_poll_rx + RESP_TX_DLY_TICKS) & ~0x1FFULL;
/* Build RESP frame */
uint8_t resp[RESP_FRAME_LEN];
resp[0] = FTYPE_RESP;
resp[1] = ANCHOR_ID;
resp[2] = tag_id;
ts_write(&resp[3], T_poll_rx); /* T_poll_rx (tag uses this) */
ts_write(&resp[8], resp_tx_sched); /* scheduled T_resp_tx */
dwt_writetxdata(RESP_FRAME_LEN - FCS_LEN, resp, 0);
dwt_writetxfctrl(RESP_FRAME_LEN, 0, 1 /*ranging*/);
dwt_setdelayedtrxtime((uint32_t)(resp_tx_sched >> 8));
/* Enable RX after TX to receive FINAL */
dwt_setrxaftertxdelay(300);
dwt_setrxtimeout(FINAL_RX_TIMEOUT_US);
/* Fire delayed TX */
g_tx_done = g_rx_ok = g_rx_err = g_rx_to = false;
if (dwt_starttx(DWT_START_TX_DELAYED | DWT_RESPONSE_EXPECTED) != DWT_SUCCESS) {
dwt_forcetrxoff();
return; /* TX window missed — try next cycle */
}
/* Wait for TX done (short wait, ISR fires fast) */
uint32_t t0 = millis();
while (!g_tx_done && millis() - t0 < 15) { yield(); }
/* Read actual T_resp_tx */
uint8_t resp_tx_raw[5];
dwt_readtxtimestamp(resp_tx_raw);
uint64_t T_resp_tx = ts_read(resp_tx_raw);
/* --- 3. Wait for FINAL --- */
t0 = millis();
while (!g_rx_ok && !g_rx_err && !g_rx_to && millis() - t0 < 60) {
serial_poll();
yield();
}
if (!g_rx_ok || g_rx_len < FRAME_HDR + FINAL_PAYLOAD) return;
if (g_rx_buf[0] != FTYPE_FINAL) return;
if (g_rx_buf[1] != tag_id) return;
/* Extract DS-TWR timestamps from FINAL payload */
uint64_t Ra = ts_read(&g_rx_buf[3]); /* tag: T_resp_rx T_poll_tx */
uint64_t Da = ts_read(&g_rx_buf[8]); /* tag: T_final_tx T_resp_rx */
/* g_rx_buf[13..17] = Db from tag (cross-check, unused here) */
/* T_final_rx */
uint8_t final_rx_raw[5];
dwt_readrxtimestamp(final_rx_raw);
uint64_t T_final_rx = ts_read(final_rx_raw);
/* --- 4. DS-TWR formula --- */
uint64_t Rb = ts_diff(T_final_rx, T_resp_tx); /* anchor round-trip */
uint64_t Db = ts_diff(T_resp_tx, T_poll_rx); /* anchor turnaround */
double ra = ticks_to_s(Ra), rb = ticks_to_s(Rb);
double da = ticks_to_s(Da), db = ticks_to_s(Db);
double denom = ra + rb + da + db;
if (denom < 1e-15) return;
double tof = (ra * rb - da * db) / denom;
double range_m = tof * SPEED_OF_LIGHT;
/* Validity window: 0.1 m 130 m */
if (range_m < 0.1 || range_m > 130.0) return;
int32_t range_mm = (int32_t)(range_m * 1000.0 + 0.5);
float rssi = rx_power_dbm();
/* --- 5. Emit +RANGE --- */
snprintf(g_last_range_line, sizeof(g_last_range_line),
"+RANGE:%d,%ld,%.1f", ANCHOR_ID, (long)range_mm, rssi);
g_last_range_mm = range_mm;
Serial.println(g_last_range_line);
}
/* ── ESP-NOW packet processing (main loop context) ──────────────── */
/* ── ESP-NOW processing ─────────────────────────────────────────── */
static void espnow_process(void) {
while (g_espnow_tail != g_espnow_head) {
const EspNowPacket &pkt = (const EspNowPacket &)g_espnow_queue[g_espnow_tail];
g_espnow_tail = (g_espnow_tail + 1) % ESPNOW_QUEUE_SIZE;
while (g_en_tail != g_en_head) {
const EspNowPacket &pkt = (const EspNowPacket &)g_enq[g_en_tail];
g_en_tail = (g_en_tail + 1) % ESPNOW_Q_SIZE;
/* E-STOP gets priority line */
if (pkt.msg_type == MSG_ESTOP) {
if (pkt.flags & 0x01) {
if (pkt.flags & 0x01)
Serial.printf("+ESTOP:%d\r\n", pkt.tag_id);
} else {
else
Serial.printf("+ESTOP_CLEAR:%d\r\n", pkt.tag_id);
}
continue;
}
/* Forward all other packets */
Serial.printf("+ESPNOW:%d,%02X,%d,%ld,%.1f,%lu,%d,%02X,%d\r\n",
pkt.tag_id,
pkt.msg_type,
pkt.anchor_id,
(long)pkt.range_mm,
pkt.rssi_dbm,
(unsigned long)pkt.timestamp_ms,
pkt.battery_pct,
pkt.flags,
pkt.seq_num);
Serial.printf("+ESPNOW:%d,%02X,%ld,%.1f,%d,%02X,%d\r\n",
pkt.tag_id, pkt.msg_type, (long)pkt.range_mm,
pkt.rssi_dbm, pkt.battery_pct, pkt.flags, pkt.seq_num);
}
}
/* ── Arduino setup ──────────────────────────────────────────────── */
/* ── DW1000Ranging callbacks ────────────────────────────────────── */
static void newRange(void) {
uint16_t tag_addr = DW1000Ranging.getDistantDevice()->getShortAddress();
float range_m = DW1000Ranging.getDistantDevice()->getRange();
float rxPow = DW1000Ranging.getDistantDevice()->getRXPower();
if (range_m < 0.0f || range_m > 250.0f) return;
int32_t range_mm = (int32_t)(range_m * 1000.0f + 0.5f);
Serial.printf("+RANGE:%d,%04X,%ld,%.1f\r\n",
ANCHOR_ID, tag_addr, (long)range_mm, rxPow);
}
static void newBlink(DW1000Device *device) {
Serial.printf("+BLINK:%04X\r\n", device->getShortAddress());
}
static void inactiveDevice(DW1000Device *device) {
Serial.printf("+GONE:%04X\r\n", device->getShortAddress());
}
/* ── Setup ──────────────────────────────────────────────────────── */
void setup(void) {
Serial.begin(SERIAL_BAUD);
delay(300);
Serial.printf("\r\n[uwb_anchor] id=%d addr=%s starting\r\n", ANCHOR_ID, ANCHOR_ADDR);
Serial.printf("\r\n[uwb_anchor] anchor_id=%d starting\r\n", ANCHOR_ID);
/* --- ESP-NOW receiver init --- */
/* ESP-NOW receiver */
WiFi.mode(WIFI_STA);
WiFi.disconnect();
esp_wifi_set_channel(1, WIFI_SECOND_CHAN_NONE);
if (esp_now_init() == ESP_OK) {
esp_now_register_recv_cb(espnow_rx_cb);
Serial.println("[uwb_anchor] ESP-NOW receiver ok");
Serial.println("[uwb_anchor] ESP-NOW rx ok");
} else {
Serial.println("[uwb_anchor] WARN: ESP-NOW init failed — tag relay disabled");
Serial.println("[uwb_anchor] WARN: ESP-NOW failed");
}
SPI.begin(PIN_SCK, PIN_MISO, PIN_MOSI, PIN_CS);
/* DW1000 */
SPI.begin(PIN_SCK, PIN_MISO, PIN_MOSI);
DW1000Ranging.initCommunication(PIN_RST, PIN_CS, PIN_IRQ);
/* Hardware reset */
pinMode(PIN_RST, OUTPUT);
digitalWrite(PIN_RST, LOW);
delay(2);
pinMode(PIN_RST, INPUT_PULLUP);
delay(5);
DW1000Ranging.attachNewRange(newRange);
DW1000Ranging.attachBlinkDevice(newBlink);
DW1000Ranging.attachInactiveDevice(inactiveDevice);
/* DW3000 probe + init (Makerfabs MaUWB_DW3000 library) */
if (dwt_probe((struct dwt_probe_s *)&dw3000_probe_interf)) {
Serial.println("[uwb_anchor] FATAL: DW3000 probe failed — check SPI wiring");
for (;;) delay(1000);
}
DW1000Ranging.startAsAnchor(ANCHOR_ADDR, DW1000.MODE_LONGDATA_RANGE_ACCURACY, false);
if (dwt_initialise(DWT_DW_INIT) != DWT_SUCCESS) {
Serial.println("[uwb_anchor] FATAL: dwt_initialise failed");
for (;;) delay(1000);
}
if (dwt_configure(&dw_cfg) != DWT_SUCCESS) {
Serial.println("[uwb_anchor] FATAL: dwt_configure failed");
for (;;) delay(1000);
}
dwt_setrxantennadelay(ANT_DELAY);
dwt_settxantennadelay(ANT_DELAY);
dwt_settxpower(0x0E080222UL); /* max TX power for 120 m range */
dwt_setcallbacks(cb_tx_done, cb_rx_ok, cb_rx_to, cb_rx_err,
nullptr, nullptr, nullptr);
dwt_setinterrupt(
DWT_INT_TXFRS | DWT_INT_RFCG | DWT_INT_RFTO |
DWT_INT_RFSL | DWT_INT_SFDT | DWT_INT_ARFE | DWT_INT_CPERR,
0, DWT_ENABLE_INT_ONLY);
attachInterrupt(digitalPinToInterrupt(PIN_IRQ),
[]() { dwt_isr(); }, RISING);
Serial.printf("[uwb_anchor] DW3000 ready ch=%d 6.8Mbps id=%d\r\n",
dw_cfg.chan, ANCHOR_ID);
Serial.printf("[uwb_anchor] DW1000 ready id=%d MODE_LONGDATA_RANGE_ACCURACY\r\n", ANCHOR_ID);
Serial.println("[uwb_anchor] Listening for tags...");
}
/* ── Arduino loop ───────────────────────────────────────────────── */
/* ── Loop ───────────────────────────────────────────────────────── */
void loop(void) {
serial_poll();
espnow_process(); /* forward tag ESP-NOW packets to Jetson via serial */
twr_cycle();
espnow_process();
DW1000Ranging.loop();
}

View File

@ -1,17 +1,8 @@
; SaltyBot UWB Tag Firmware — Issue #545
; Target: Makerfabs ESP32 UWB Pro with Display (DW3000 + SSD1306 OLED)
;
; The tag is battery-powered, worn by the person being tracked.
; It initiates DS-TWR ranging with each anchor in round-robin,
; shows status on OLED display, and sends data via ESP-NOW.
;
; Library: Makerfabs MaUWB_DW3000
; https://github.com/Makerfabs/MaUWB_DW3000
; SaltyBot UWB Tag Firmware
; Target: Makerfabs ESP32 UWB Pro with Display (DW1000 + SSD1306 OLED)
;
; Flash:
; pio run -e tag --target upload
; Monitor (USB debug):
; pio device monitor -b 115200
[env:tag]
platform = espressif32
@ -19,12 +10,10 @@ board = esp32dev
framework = arduino
monitor_speed = 115200
upload_speed = 921600
lib_extra_dirs = ../../lib
lib_deps =
https://github.com/Makerfabs/MaUWB_DW3000.git
adafruit/Adafruit SSD1306@^2.5.7
adafruit/Adafruit GFX Library@^1.11.5
build_flags =
-DCORE_DEBUG_LEVEL=0
-DTAG_ID=0x01 ; unique per tag (0x010xFE)
-DNUM_ANCHORS=2 ; number of anchors to range with
-DRANGE_INTERVAL_MS=50 ; 20 Hz round-robin across anchors
-DTAG_ID=0x01

View File

@ -1,77 +1,60 @@
/*
* uwb_tag SaltyBot ESP32 UWB Pro tag firmware (DS-TWR initiator)
* Issue #545 + display/ESP-NOW/e-stop extensions
* uwb_tag SaltyBot ESP32 UWB Pro with Display (DW1000 TWR initiator)
*
* Hardware: Makerfabs ESP32 UWB Pro with Display (DW3000 + SSD1306 OLED)
* Hardware: Makerfabs ESP32 UWB Pro with Display
* DW1000 (200m range), SSD1306 128x64 OLED, LiPo battery
*
* Role
*
* Tag is worn by a person riding an EUC while SaltyBot follows.
* Initiates DS-TWR ranging with 2 anchors on the robot at 20 Hz.
* Shows distance/status on OLED. Sends range data via ESP-NOW
* (no WiFi AP needed peer-to-peer, ~1ms latency, works outdoors).
* GPIO 0 = emergency stop button (active low).
* Worn by person on EUC while robot follows.
* Ranges with 2 anchors on robot, shows distance on OLED,
* broadcasts data via ESP-NOW, has e-stop on GPIO 0.
*
* Serial output (USB, 115200) debug
*
* +RANGE:<anchor_id>,<range_mm>,<rssi_dbm>\r\n
* OLED display (5 Hz):
* Line 1: Big distance to nearest anchor
* Line 2: Per-anchor ranges
* Line 3: Link status + RSSI bars
* Line 4: Uptime + packet count
*
* ESP-NOW packet (broadcast, 20 bytes)
*
* [0-1] magic 0x5B 0x01
* [2] tag_id
* [3] msg_type 0x10=range, 0x20=estop, 0x30=heartbeat
* [4] anchor_id
* [5-8] range_mm (int32_t LE)
* [9-12] rssi_dbm (float LE)
* [13-16] timestamp (uint32_t millis)
* [17] battery_pct (0-100 or 0xFF)
* [18] flags bit0=estop_active
* [19] seq_num_lo (uint8_t, rolling)
* ESP-NOW broadcast (20-byte packets):
* Range data after each successful TWR cycle
* Heartbeat every 1s even if ranging fails
* E-stop at 10 Hz while button held
*
* Pin mapping Makerfabs ESP32 UWB Pro with Display
*
* SPI SCK 18 SPI MISO 19 SPI MOSI 23
* DW CS 21 DW RST 27 DW IRQ 34
* I2C SDA 4 I2C SCL 5 OLED addr 0x3C
* LED 2 E-STOP 0 (BOOT, active LOW)
* Pin map ESP32 UWB Pro with Display:
* SPI: SCK=18 MISO=19 MOSI=23 CS=21 (not 4! display board differs)
* DW1000: RST=27 IRQ=34
* I2C: SDA=4 SCL=5 OLED @0x3C
* E-Stop: GPIO 0 (BOOT), active LOW
* LED: GPIO 2
*/
#include <Arduino.h>
#include <SPI.h>
#include <Wire.h>
#include <math.h>
#include <WiFi.h>
#include <esp_now.h>
#include <esp_wifi.h>
#include "dw3000.h"
#include "DW1000Ranging.h"
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
/* ── Configurable ───────────────────────────────────────────────── */
/* ── Config ─────────────────────────────────────────────────────── */
#ifndef TAG_ID
# define TAG_ID 0x01
#endif
#ifndef NUM_ANCHORS
# define NUM_ANCHORS 2
#endif
#ifndef RANGE_INTERVAL_MS
# define RANGE_INTERVAL_MS 50 /* 20 Hz round-robin */
#endif
#define TAG_ADDR "7D:00:22:EA:82:60:3B:9B"
#define SERIAL_BAUD 115200
#define NUM_ANCHORS 2
/* ── Pins ───────────────────────────────────────────────────────── */
#define PIN_SCK 18
#define PIN_MISO 19
#define PIN_MOSI 23
#define PIN_CS 21
#define PIN_CS 21 /* Display board uses 21, not 4 */
#define PIN_RST 27
#define PIN_IRQ 34
@ -79,19 +62,16 @@
#define PIN_SCL 5
#define PIN_LED 2
#define PIN_ESTOP 0 /* BOOT button, active LOW */
#define PIN_ESTOP 0
/* ── OLED ───────────────────────────────────────────────────────── */
#define SCREEN_W 128
#define SCREEN_H 64
Adafruit_SSD1306 display(SCREEN_W, SCREEN_H, &Wire, -1);
Adafruit_SSD1306 display(128, 64, &Wire, -1);
/* ── ESP-NOW ────────────────────────────────────────────────────── */
#define ESPNOW_MAGIC_0 0x5B /* "SB" */
#define ESPNOW_MAGIC_1 0x01 /* v1 */
#define ESPNOW_MAGIC_0 0x5B
#define ESPNOW_MAGIC_1 0x01
#define MSG_RANGE 0x10
#define MSG_ESTOP 0x20
#define MSG_HEARTBEAT 0x30
@ -111,113 +91,10 @@ struct EspNowPacket {
uint8_t battery_pct;
uint8_t flags;
uint8_t seq_num;
uint8_t _pad; /* pad to 20 bytes */
uint8_t _pad;
};
#pragma pack(pop)
static_assert(sizeof(EspNowPacket) == 20, "packet must be 20 bytes");
/* ── DW3000 PHY config (must match anchor) ──────────────────────── */
static dwt_config_t dw_cfg = {
5, /* channel 5 */
DWT_PLEN_128,
DWT_PAC8,
9, 9, /* TX/RX preamble code */
1, /* SFD type */
DWT_BR_6M8,
DWT_PHR_MODE_STD,
DWT_PHR_RATE_DATA,
(129 + 8 - 8),
DWT_STS_MODE_OFF,
DWT_STS_LEN_64,
DWT_PDOA_M0,
};
/* ── Frame format ──────────────────────────────────────────────── */
#define FTYPE_POLL 0x01
#define FTYPE_RESP 0x02
#define FTYPE_FINAL 0x03
#define FRAME_HDR 3
#define FCS_LEN 2
#define POLL_FRAME_LEN (FRAME_HDR + FCS_LEN)
#define RESP_PAYLOAD 10
#define RESP_FRAME_LEN (FRAME_HDR + RESP_PAYLOAD + FCS_LEN)
#define FINAL_PAYLOAD 15
#define FINAL_FRAME_LEN (FRAME_HDR + FINAL_PAYLOAD + FCS_LEN)
/* ── Timing ────────────────────────────────────────────────────── */
#define FINAL_TX_DLY_US 500UL
#define DWT_TICKS_PER_US 63898UL
#define FINAL_TX_DLY_TICKS (FINAL_TX_DLY_US * DWT_TICKS_PER_US)
#define RESP_RX_TIMEOUT_US 3000
#define SPEED_OF_LIGHT 299702547.0
#define DWT_TS_MASK 0xFFFFFFFFFFULL
#define ANT_DELAY 16385
/* ── ISR state ──────────────────────────────────────────────────── */
static volatile bool g_rx_ok = false;
static volatile bool g_tx_done = false;
static volatile bool g_rx_err = false;
static volatile bool g_rx_to = false;
static uint8_t g_rx_buf[128];
static uint32_t g_rx_len = 0;
static void cb_tx_done(const dwt_cb_data_t *) { g_tx_done = true; }
static void cb_rx_ok(const dwt_cb_data_t *d) {
g_rx_len = d->datalength;
if (g_rx_len > sizeof(g_rx_buf)) g_rx_len = sizeof(g_rx_buf);
dwt_readrxdata(g_rx_buf, g_rx_len, 0);
g_rx_ok = true;
}
static void cb_rx_err(const dwt_cb_data_t *) { g_rx_err = true; }
static void cb_rx_to(const dwt_cb_data_t *) { g_rx_to = true; }
/* ── Timestamp helpers ──────────────────────────────────────────── */
static uint64_t ts_read(const uint8_t *p) {
uint64_t v = 0;
for (int i = 4; i >= 0; i--) v = (v << 8) | p[i];
return v;
}
static void ts_write(uint8_t *p, uint64_t v) {
for (int i = 0; i < 5; i++, v >>= 8) p[i] = (uint8_t)(v & 0xFF);
}
static inline uint64_t ts_diff(uint64_t later, uint64_t earlier) {
return (later - earlier) & DWT_TS_MASK;
}
static inline double ticks_to_s(uint64_t t) {
return (double)t / (128.0 * 499200000.0);
}
static float rx_power_dbm(void) {
dwt_rxdiag_t d;
dwt_readdiagnostics(&d);
if (d.maxGrowthCIR == 0 || d.rxPreamCount == 0) return 0.0f;
float f = (float)d.maxGrowthCIR;
float n = (float)d.rxPreamCount;
return 10.0f * log10f((f * f) / (n * n)) - 121.74f;
}
/* ── Shared state for display ───────────────────────────────────── */
static int32_t g_anchor_range_mm[NUM_ANCHORS]; /* last range per anchor */
static float g_anchor_rssi[NUM_ANCHORS]; /* last RSSI per anchor */
static uint32_t g_anchor_last_ok[NUM_ANCHORS]; /* millis() of last good range */
static bool g_estop_active = false;
/* ── ESP-NOW send helper ────────────────────────────────────────── */
static void espnow_send(uint8_t msg_type, uint8_t anchor_id,
int32_t range_mm, float rssi) {
EspNowPacket pkt = {};
@ -229,39 +106,76 @@ static void espnow_send(uint8_t msg_type, uint8_t anchor_id,
pkt.range_mm = range_mm;
pkt.rssi_dbm = rssi;
pkt.timestamp_ms = millis();
pkt.battery_pct = 0xFF; /* TODO: read ADC battery voltage */
pkt.flags = g_estop_active ? 0x01 : 0x00;
pkt.battery_pct = 0xFF; /* TODO: battery ADC */
pkt.flags = 0;
pkt.seq_num = g_seq++;
esp_now_send(broadcast_mac, (uint8_t *)&pkt, sizeof(pkt));
}
/* ── E-Stop handling ────────────────────────────────────────────── */
/* ── Anchor tracking ────────────────────────────────────────────── */
/*
* DW1000Ranging gives us callbacks with a device short address.
* We map the first 2 unique addresses we see to anchor 0 and 1.
*/
static uint16_t g_anchor_addrs[NUM_ANCHORS] = {0, 0};
static int32_t g_anchor_range_mm[NUM_ANCHORS];
static float g_anchor_rssi[NUM_ANCHORS];
static uint32_t g_anchor_last_ok[NUM_ANCHORS];
static int g_num_known_anchors = 0;
static int anchor_index(uint16_t addr) {
for (int i = 0; i < g_num_known_anchors; i++) {
if (g_anchor_addrs[i] == addr) return i;
}
if (g_num_known_anchors < NUM_ANCHORS) {
int idx = g_num_known_anchors++;
g_anchor_addrs[idx] = addr;
Serial.printf("[uwb_tag] Mapped anchor %04X → A%d\r\n", addr, idx);
return idx;
}
return -1; /* more anchors than expected */
}
/* ── E-Stop ─────────────────────────────────────────────────────── */
static bool g_estop_active = false;
static uint32_t g_estop_last_tx = 0;
static void estop_check(void) {
bool pressed = (digitalRead(PIN_ESTOP) == LOW);
if (pressed && !g_estop_active) {
/* Just pressed — enter e-stop */
g_estop_active = true;
Serial.println("+ESTOP:ACTIVE");
}
if (g_estop_active && pressed) {
/* While held: send e-stop at 10 Hz */
if (millis() - g_estop_last_tx >= 100) {
espnow_send(MSG_ESTOP, 0xFF, 0, 0.0f);
EspNowPacket pkt = {};
pkt.magic[0] = ESPNOW_MAGIC_0;
pkt.magic[1] = ESPNOW_MAGIC_1;
pkt.tag_id = TAG_ID;
pkt.msg_type = MSG_ESTOP;
pkt.flags = 0x01;
pkt.seq_num = g_seq++;
pkt.timestamp_ms = millis();
esp_now_send(broadcast_mac, (uint8_t *)&pkt, sizeof(pkt));
g_estop_last_tx = millis();
}
}
if (!pressed && g_estop_active) {
/* Released: send 3x clear packets, resume */
for (int i = 0; i < 3; i++) {
g_estop_active = false; /* clear flag before sending so flags=0 */
espnow_send(MSG_ESTOP, 0xFF, 0, 0.0f);
EspNowPacket pkt = {};
pkt.magic[0] = ESPNOW_MAGIC_0;
pkt.magic[1] = ESPNOW_MAGIC_1;
pkt.tag_id = TAG_ID;
pkt.msg_type = MSG_ESTOP;
pkt.flags = 0x00; /* clear */
pkt.seq_num = g_seq++;
pkt.timestamp_ms = millis();
esp_now_send(broadcast_mac, (uint8_t *)&pkt, sizeof(pkt));
delay(10);
}
g_estop_active = false;
@ -269,18 +183,17 @@ static void estop_check(void) {
}
}
/* ── OLED display update (5 Hz) ─────────────────────────────────── */
/* ── OLED display (5 Hz) ────────────────────────────────────────── */
static uint32_t g_display_last = 0;
static uint32_t g_disp_last = 0;
static void display_update(void) {
if (millis() - g_display_last < 200) return;
g_display_last = millis();
if (millis() - g_disp_last < 200) return;
g_disp_last = millis();
display.clearDisplay();
if (g_estop_active) {
/* Big E-STOP warning */
display.setTextSize(3);
display.setTextColor(SSD1306_WHITE);
display.setCursor(10, 4);
@ -301,7 +214,7 @@ static void display_update(void) {
min_range = g_anchor_range_mm[i];
}
/* Line 1: Big distance to nearest anchor */
/* Line 1: Big distance */
display.setTextSize(3);
display.setTextColor(SSD1306_WHITE);
display.setCursor(0, 0);
@ -318,16 +231,15 @@ static void display_update(void) {
/* Line 2: Both anchor ranges */
display.setTextSize(1);
display.setCursor(0, 30);
for (int i = 0; i < NUM_ANCHORS && i < 2; i++) {
for (int i = 0; i < NUM_ANCHORS; i++) {
if (g_anchor_range_mm[i] > 0) {
float m = g_anchor_range_mm[i] / 1000.0f;
display.printf("A%d:%.1fm ", i, m);
display.printf("A%d:%.1fm ", i, g_anchor_range_mm[i] / 1000.0f);
} else {
display.printf("A%d:--- ", i);
}
}
/* Line 3: Connection status */
/* Line 3: Link status + RSSI bars */
display.setCursor(0, 42);
bool any_linked = false;
for (int i = 0; i < NUM_ANCHORS; i++) {
@ -338,7 +250,6 @@ static void display_update(void) {
}
if (any_linked) {
/* RSSI bar: map -90..-30 dBm to 0-5 bars */
float best_rssi = -100.0f;
for (int i = 0; i < NUM_ANCHORS; i++) {
if (g_anchor_rssi[i] > best_rssi) best_rssi = g_anchor_rssi[i];
@ -346,7 +257,6 @@ static void display_update(void) {
int bars = constrain((int)((best_rssi + 90.0f) / 12.0f), 0, 5);
display.print(F("LINKED "));
/* Draw signal bars */
for (int b = 0; b < 5; b++) {
int x = 50 + b * 6;
int h = 2 + b * 2;
@ -356,101 +266,56 @@ static void display_update(void) {
else
display.drawRect(x, y, 4, h, SSD1306_WHITE);
}
display.printf(" %.0fdB", best_rssi);
display.printf(" %.0f", best_rssi);
} else {
display.println(F("LOST -- searching --"));
}
/* Line 4: Uptime */
/* Line 4: Uptime + seq */
display.setCursor(0, 54);
uint32_t secs = now / 1000;
display.printf("UP %02d:%02d seq:%d", secs / 60, secs % 60, g_seq);
display.printf("UP %02d:%02d pkt:%d", secs / 60, secs % 60, g_seq);
display.display();
}
/* ── DS-TWR initiator (one anchor, one cycle) ───────────────────── */
/* ── DW1000Ranging callbacks ────────────────────────────────────── */
static int32_t twr_range_once(uint8_t anchor_id) {
static void newRange(void) {
uint16_t addr = DW1000Ranging.getDistantDevice()->getShortAddress();
float range = DW1000Ranging.getDistantDevice()->getRange();
float rxPow = DW1000Ranging.getDistantDevice()->getRXPower();
/* --- 1. TX POLL --- */
uint8_t poll[POLL_FRAME_LEN];
poll[0] = FTYPE_POLL;
poll[1] = TAG_ID;
poll[2] = anchor_id;
if (range < 0.0f || range > 250.0f) return;
dwt_writetxdata(POLL_FRAME_LEN - FCS_LEN, poll, 0);
dwt_writetxfctrl(POLL_FRAME_LEN, 0, 1);
int idx = anchor_index(addr);
int32_t range_mm = (int32_t)(range * 1000.0f + 0.5f);
dwt_setrxaftertxdelay(300);
dwt_setrxtimeout(RESP_RX_TIMEOUT_US);
g_tx_done = g_rx_ok = g_rx_err = g_rx_to = false;
if (dwt_starttx(DWT_START_TX_IMMEDIATE | DWT_RESPONSE_EXPECTED) != DWT_SUCCESS)
return -1;
uint32_t t0 = millis();
while (!g_tx_done && millis() - t0 < 15) yield();
uint8_t poll_tx_raw[5];
dwt_readtxtimestamp(poll_tx_raw);
uint64_t T_poll_tx = ts_read(poll_tx_raw);
/* --- 2. Wait for RESP --- */
t0 = millis();
while (!g_rx_ok && !g_rx_err && !g_rx_to && millis() - t0 < 60) yield();
if (!g_rx_ok || g_rx_len < FRAME_HDR + RESP_PAYLOAD) return -1;
if (g_rx_buf[0] != FTYPE_RESP) return -1;
if (g_rx_buf[2] != TAG_ID) return -1;
if (g_rx_buf[1] != anchor_id) return -1;
uint8_t resp_rx_raw[5];
dwt_readrxtimestamp(resp_rx_raw);
uint64_t T_resp_rx = ts_read(resp_rx_raw);
uint64_t T_poll_rx_a = ts_read(&g_rx_buf[3]);
uint64_t T_resp_tx_a = ts_read(&g_rx_buf[8]);
/* --- 3. Compute DS-TWR values for FINAL --- */
uint64_t Ra = ts_diff(T_resp_rx, T_poll_tx);
uint64_t Db = ts_diff(T_resp_tx_a, T_poll_rx_a);
uint64_t final_tx_sched = (T_resp_rx + FINAL_TX_DLY_TICKS) & ~0x1FFULL;
uint64_t Da = ts_diff(final_tx_sched, T_resp_rx);
/* --- 4. TX FINAL --- */
uint8_t final_buf[FINAL_FRAME_LEN];
final_buf[0] = FTYPE_FINAL;
final_buf[1] = TAG_ID;
final_buf[2] = anchor_id;
ts_write(&final_buf[3], Ra);
ts_write(&final_buf[8], Da);
ts_write(&final_buf[13], Db);
dwt_writetxdata(FINAL_FRAME_LEN - FCS_LEN, final_buf, 0);
dwt_writetxfctrl(FINAL_FRAME_LEN, 0, 1);
dwt_setdelayedtrxtime((uint32_t)(final_tx_sched >> 8));
g_tx_done = false;
if (dwt_starttx(DWT_START_TX_DELAYED) != DWT_SUCCESS) {
dwt_forcetrxoff();
return -1;
if (idx >= 0) {
g_anchor_range_mm[idx] = range_mm;
g_anchor_rssi[idx] = rxPow;
g_anchor_last_ok[idx] = millis();
}
t0 = millis();
while (!g_tx_done && millis() - t0 < 15) yield();
/* --- 5. Local range estimate (debug) --- */
uint8_t final_tx_raw[5];
dwt_readtxtimestamp(final_tx_raw);
/* uint64_t T_final_tx = ts_read(final_tx_raw); -- unused, tag uses SS estimate */
/* Serial debug */
Serial.printf("+RANGE:%d,%04X,%ld,%.1f\r\n",
(idx >= 0 ? idx : 99), addr, (long)range_mm, rxPow);
double ra = ticks_to_s(Ra);
double db = ticks_to_s(Db);
double tof = (ra - db) / 2.0;
double range_m = tof * SPEED_OF_LIGHT;
/* ESP-NOW broadcast */
espnow_send(MSG_RANGE, (uint8_t)(idx >= 0 ? idx : 0xFF), range_mm, rxPow);
if (range_m < 0.1 || range_m > 130.0) return -1;
return (int32_t)(range_m * 1000.0 + 0.5);
/* LED blink */
digitalWrite(PIN_LED, HIGH);
delay(1);
digitalWrite(PIN_LED, LOW);
}
static void newDevice(DW1000Device *device) {
Serial.printf("+NEW:%04X\r\n", device->getShortAddress());
}
static void inactiveDevice(DW1000Device *device) {
Serial.printf("+GONE:%04X\r\n", device->getShortAddress());
}
/* ── Setup ──────────────────────────────────────────────────────── */
@ -459,18 +324,16 @@ void setup(void) {
Serial.begin(SERIAL_BAUD);
delay(300);
/* E-Stop button */
pinMode(PIN_ESTOP, INPUT_PULLUP);
pinMode(PIN_LED, OUTPUT);
digitalWrite(PIN_LED, LOW);
Serial.printf("\r\n[uwb_tag] tag_id=0x%02X num_anchors=%d starting\r\n",
TAG_ID, NUM_ANCHORS);
Serial.printf("\r\n[uwb_tag] tag_id=0x%02X starting\r\n", TAG_ID);
/* --- OLED init --- */
/* OLED */
Wire.begin(PIN_SDA, PIN_SCL);
if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
Serial.println("[uwb_tag] WARN: SSD1306 not found — running headless");
Serial.println("[uwb_tag] WARN: SSD1306 not found");
} else {
display.clearDisplay();
display.setTextSize(2);
@ -479,137 +342,70 @@ void setup(void) {
display.println(F("SaltyBot"));
display.setTextSize(1);
display.setCursor(0, 20);
display.printf("Tag 0x%02X v2.0", TAG_ID);
display.printf("Tag 0x%02X", TAG_ID);
display.setCursor(0, 35);
display.println(F("DW3000 DS-TWR + ESP-NOW"));
display.println(F("DW1000 200m + ESP-NOW"));
display.setCursor(0, 50);
display.println(F("Initializing..."));
display.println(F("Searching anchors..."));
display.display();
Serial.println("[uwb_tag] OLED ok");
}
/* --- ESP-NOW init --- */
/* ESP-NOW */
WiFi.mode(WIFI_STA);
WiFi.disconnect();
/* Set WiFi channel to match anchors (default ch 1) */
esp_wifi_set_channel(1, WIFI_SECOND_CHAN_NONE);
if (esp_now_init() != ESP_OK) {
Serial.println("[uwb_tag] FATAL: esp_now_init failed");
for (;;) delay(1000);
}
/* Add broadcast peer */
if (esp_now_init() == ESP_OK) {
esp_now_peer_info_t peer = {};
memcpy(peer.peer_addr, broadcast_mac, 6);
peer.channel = 0; /* use current channel */
peer.channel = 0;
peer.encrypt = false;
esp_now_add_peer(&peer);
Serial.println("[uwb_tag] ESP-NOW ok");
/* --- DW3000 init --- */
SPI.begin(PIN_SCK, PIN_MISO, PIN_MOSI, PIN_CS);
pinMode(PIN_RST, OUTPUT);
digitalWrite(PIN_RST, LOW);
delay(2);
pinMode(PIN_RST, INPUT_PULLUP);
delay(5);
if (dwt_probe((struct dwt_probe_s *)&dw3000_probe_interf)) {
Serial.println("[uwb_tag] FATAL: DW3000 probe failed");
for (;;) delay(1000);
Serial.println("[uwb_tag] ESP-NOW tx ok");
} else {
Serial.println("[uwb_tag] WARN: ESP-NOW failed");
}
if (dwt_initialise(DWT_DW_INIT) != DWT_SUCCESS) {
Serial.println("[uwb_tag] FATAL: dwt_initialise failed");
for (;;) delay(1000);
}
/* DW1000 */
SPI.begin(PIN_SCK, PIN_MISO, PIN_MOSI);
DW1000Ranging.initCommunication(PIN_RST, PIN_CS, PIN_IRQ);
if (dwt_configure(&dw_cfg) != DWT_SUCCESS) {
Serial.println("[uwb_tag] FATAL: dwt_configure failed");
for (;;) delay(1000);
}
DW1000Ranging.attachNewRange(newRange);
DW1000Ranging.attachNewDevice(newDevice);
DW1000Ranging.attachInactiveDevice(inactiveDevice);
dwt_setrxantennadelay(ANT_DELAY);
dwt_settxantennadelay(ANT_DELAY);
dwt_settxpower(0x0E080222UL);
DW1000Ranging.startAsTag(TAG_ADDR, DW1000.MODE_LONGDATA_RANGE_ACCURACY);
dwt_setcallbacks(cb_tx_done, cb_rx_ok, cb_rx_to, cb_rx_err,
nullptr, nullptr, nullptr);
dwt_setinterrupt(
DWT_INT_TXFRS | DWT_INT_RFCG | DWT_INT_RFTO |
DWT_INT_RFSL | DWT_INT_SFDT | DWT_INT_ARFE | DWT_INT_CPERR,
0, DWT_ENABLE_INT_ONLY);
attachInterrupt(digitalPinToInterrupt(PIN_IRQ),
[]() { dwt_isr(); }, RISING);
/* Init range state */
/* Init state */
for (int i = 0; i < NUM_ANCHORS; i++) {
g_anchor_range_mm[i] = -1;
g_anchor_rssi[i] = -100.0f;
g_anchor_last_ok[i] = 0;
}
Serial.printf("[uwb_tag] DW3000 ready ch=%d 6.8Mbps tag=0x%02X\r\n",
dw_cfg.chan, TAG_ID);
Serial.println("[uwb_tag] Ranging + ESP-NOW + display active");
Serial.println("[uwb_tag] DW1000 ready MODE_LONGDATA_RANGE_ACCURACY");
Serial.println("[uwb_tag] Ranging + display + ESP-NOW active");
}
/* ── Main loop ──────────────────────────────────────────────────── */
/* ── Loop ───────────────────────────────────────────────────────── */
static uint32_t g_last_hb = 0;
void loop(void) {
static uint8_t anchor_idx = 0;
static uint32_t last_range_ms = 0;
static uint32_t last_hb_ms = 0;
/* E-Stop always has priority */
/* E-stop always first */
estop_check();
if (g_estop_active) {
display_update();
return; /* skip ranging while e-stop active */
}
/* Heartbeat every 1 second */
uint32_t now = millis();
if (now - last_hb_ms >= 1000) {
/* Heartbeat every 1s */
if (millis() - g_last_hb >= 1000) {
espnow_send(MSG_HEARTBEAT, 0xFF, 0, 0.0f);
last_hb_ms = now;
g_last_hb = millis();
}
/* Ranging at configured interval */
if (now - last_range_ms >= RANGE_INTERVAL_MS) {
last_range_ms = now;
uint8_t anchor_id = anchor_idx % NUM_ANCHORS;
int32_t range_mm = twr_range_once(anchor_id);
if (range_mm > 0) {
float rssi = rx_power_dbm();
/* Update shared state for display */
g_anchor_range_mm[anchor_id] = range_mm;
g_anchor_rssi[anchor_id] = rssi;
g_anchor_last_ok[anchor_id] = now;
/* Serial debug */
Serial.printf("+RANGE:%d,%ld,%.1f\r\n",
anchor_id, (long)range_mm, rssi);
/* ESP-NOW broadcast */
espnow_send(MSG_RANGE, anchor_id, range_mm, rssi);
/* LED blink */
digitalWrite(PIN_LED, HIGH);
delay(2);
digitalWrite(PIN_LED, LOW);
/* DW1000Ranging handles TWR internally —
calls newRange() callback when range is available */
if (!g_estop_active) {
DW1000Ranging.loop();
}
anchor_idx++;
if (anchor_idx >= NUM_ANCHORS) anchor_idx = 0;
}
/* Display at 5 Hz (non-blocking) */
/* Display at 5 Hz */
display_update();
}

176
lib/DW1000/LICENSE.md Normal file
View File

@ -0,0 +1,176 @@
Apache License
Version 2.0, January 2004
https://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS

174
lib/DW1000/README.md Normal file
View File

@ -0,0 +1,174 @@
# arduino-dw1000
![Maintenance](https://img.shields.io/maintenance/no/2019.svg)
![Required know-how](https://img.shields.io/badge/Required%20know--how-professional-red.svg)
![Additional hardware required](https://img.shields.io/badge/Additional%20hardware-required-orange.svg)
![c++11](https://img.shields.io/badge/C%2B%2B-11-brightgreen.svg)
[![releases](https://img.shields.io/github/release/thotro/arduino-dw1000.svg?colorB=00aa00)](https://github.com/thotro/arduino-dw1000/releases)
![min arduino ide](https://img.shields.io/badge/ArduinoIDE-%3E%3D1.6.10-lightgrey.svg)
[![GitHub license](https://img.shields.io/badge/license-Apache%202-blue.svg)](https://raw.githubusercontent.com/thotro/arduino-dw1000/master/LICENSE.md)
A library that offers basic functionality to use Decawave's DW1000 chips/modules with Arduino
(see https://www.decawave.com/products/dwm1000-module).
Project state
-------------
**Development:**
There is **no active development** by the owner *thotro*.
This library is currently (2019) **not actively maintained**.
Anyway you can create pull requests if you found a bug or developed a new feature. They maybe help others.
**TODOs:**
* Fill wiki: https://github.com/thotro/arduino-dw1000/wiki
* MAC and frame filtering, error handling
* Sleep/power optimizations
* Refactor `DW1000Mac`
* Refactor `DW1000Ranging`
* Refactor `DW1000Device`
* Update examples (complete todos in header notice)
**What can I do with this lib?:**
Stable transmission of messages between two modules is possible. The code for device tuning is working as well, hence different modes of operation can be chosen. As frame filtering (i.e. via MAC conforming messages) is partially implemented yet, internal features of the chip for node addressing and auto-acknowledgement of messages can not be used. This is part of a future milestone. For now, if acknowledgements are required, they have to be sent manually and node addresses have to be encoded in the message payload and processed by the host controller.
**General notice:**
* The documentation https://github.com/thotro/arduino-dw1000/tree/master/extras/doc is manually generated and maybe out of date.
* Datasheet and application notices are available at https://www.decawave.com/ (require free registration).
Installation
------------
**Requires c++11 support**, Arduino IDE >= 1.6.6 support c++11.
1. Get a ZIP file of the master branch or the latest release and save somewhere on your machine.
2. Open your Arduino IDE and goto _Sketch_ / _Include Library_ / _Add .ZIP Library..._
3. Select the downloaded ZIP file of the DW1000 library
4. You should now see the library in the list and have access to the examples in the dedicated section of the IDE
Note that in version 1.6.6 of your Arduino IDE you can get the library via the Arduino library manager.
Contents
--------
* [Project structure](../../wiki/Project-structure)
* [Features and design intentions](../../wiki/Features)
* [Testbed and Adapter board](../../wiki/Testbed-and-Adapter-board)
* [Projects, Media, Links](../../wiki/Projects)
* [Benchmarks](../../wiki/Benchmarks)
* API docs
* [HTML](https://cdn.rawgit.com/thotro/arduino-dw1000/master/extras/doc/html/index.html)
* [PDF](https://cdn.rawgit.com/thotro/arduino-dw1000/master/extras/doc/DW1000_Arduino_API_doc.pdf)
Usage
-----
General usage of the DW1000 library is depicted below. Please see the Arduino test example codes (described in the [project structure](../../wiki/Project-structure)) for more up-to-date and operational reference usage.
At the moment the library contains two types:
* **DW1000:**
State: stable.
The statically accessible entity to work with your modules. Offers a variety of configuration options and manages module states and actions.
* **DW1000Time:**
State: stable.
Container entities that handle DW1000 specific timing values. These are required to allow accurate timestamps and time based computations; they aid in avoiding potential precision and capacity problems of standard number formats in Arduino and basically are wrapper objects for 64-bit signed integer data types; most importantly they take care of all bit-to-time-and-distance (and vice versa) conversions.
* **DW1000Ranging:**
State: prototype.
Contain all functions which allow to make the ranging protocole.
* **DW1000Device:**
State: prototype.
Contain all informations (long address, short ephemeral address, DW1000Time of transition) about a distant device (anchor or tag) on the same network.
* **DW1000Mac:**
State: prototype.
This class is a child of the DW1000Device class and allow to generate the MAC frame for his DW1000Device parent.
```Arduino
#include <DW1000.h>
...
// init with interrupt line and optionally with reset line
DW1000.begin(irq_pin[, rst_pin]);
// select a specific chip via a chip select line
DW1000.select(cs_pin);
// or use DW1000.reselect(cs_pin) to switch to previously selected chip
...
// open a device configuration sessions
DW1000.newConfiguration();
// configure specific aspects and/or choose defaults
DW1000.setDefaults();
DW1000.setDeviceAddress(5);
DW1000.setNetworkId(10);
// modes that define data rate, frequency, etc. (see API docs)
DW1000.enableMode(DW1000.MODE_LONGDATA_RANGE_LOWPOWER);
// ... and other stuff - finally upload to the module.
DW1000.commitConfiguration();
...
// set some interrupt callback routines
DW1000.attachSentHandler(some_handler_function);
DW1000.attachReceivedHandler(another_handler_function);
...
// open a new transmit session
DW1000.newTransmit();
// configure specific aspects and/or choose defaults
DW1000.setDefaults();
DW1000.setData(some_data);
DW1000Time delayTime = DW1000Time(100, DW1000Time::MILLISECONDS);
[DW1000Time futureTimestamp = ]DW1000.setDelay(delayTime);
// ... and other stuff - finally start the transmission
DW1000.startTransmit();
...
// similar for a receiving session, like so ...
DW1000.newReceive();
DW1000.setDefaults();
// so we don't need to restart the receiver manually each time
DW1000.receivePermanently(true);
// ... and other stuff - finally start awaiting messages
DW1000.startReceive();
...
```
Dependency
----------
Disclaimer:
This is maybe a incomplete list. Please notice that some dependency libraries may **require** a **reproduction** of copyright and license, **even if they are shipped as binary!!**
* **Arduino.h**
* From: Arduino IDE / target specific
* License: (target: Arduino) GNU Lesser General Public License 2.1
* **SPI.h**
* From: Arduino IDE / target specific
* License: (target: Arduino) GNU Lesser General Public License 2.1
* **stdint.h**
* From: Arduino IDE / Compiler and target specific
* License: different
* **stdio.h**
* From: Arduino IDE / Compiler and target specific
* License: different
* **stdlib.h**
* From: Arduino IDE / Compiler and target specific
* License: different
* **string.h**
* From: Arduino IDE / Compiler and target specific
* License: different
License
-------
Apache License 2.0 (see [LICENSE.md](https://github.com/thotro/arduino-dw1000/blob/master/LICENSE.md))

Binary file not shown.

After

Width:  |  Height:  |  Size: 163 KiB

View File

@ -0,0 +1,26 @@
G04 MADE WITH FRITZING*
G04 WWW.FRITZING.ORG*
G04 DOUBLE SIDED*
G04 HOLES PLATED*
G04 CONTOUR ON CENTER OF CONTOUR VECTOR*
%ASAXBY*%
%FSLAX23Y23*%
%MOIN*%
%OFA0B0*%
%SFA1.0B1.0*%
%ADD10R,1.091190X1.314330*%
%ADD11C,0.008000*%
%ADD10C,0.008*%
%LNCONTOUR*%
G90*
G70*
G54D10*
G54D11*
X4Y1310D02*
X1087Y1310D01*
X1087Y4D01*
X4Y4D01*
X4Y1310D01*
D02*
G04 End of contour*
M02*

View File

@ -0,0 +1,652 @@
G04 MADE WITH FRITZING*
G04 WWW.FRITZING.ORG*
G04 DOUBLE SIDED*
G04 HOLES PLATED*
G04 CONTOUR ON CENTER OF CONTOUR VECTOR*
%ASAXBY*%
%FSLAX23Y23*%
%MOIN*%
%OFA0B0*%
%SFA1.0B1.0*%
%ADD10C,0.075000*%
%ADD11C,0.078000*%
%LNCOPPER0*%
G90*
G70*
G54D10*
X219Y822D03*
G54D11*
X995Y885D03*
X995Y785D03*
X995Y685D03*
X995Y585D03*
X995Y485D03*
X995Y385D03*
X995Y285D03*
X995Y185D03*
X995Y85D03*
X95Y885D03*
X95Y785D03*
X95Y685D03*
X95Y585D03*
X95Y485D03*
X95Y385D03*
X95Y285D03*
X95Y185D03*
X95Y85D03*
G36*
X158Y902D02*
X158Y872D01*
X156Y872D01*
X156Y866D01*
X154Y866D01*
X154Y862D01*
X152Y862D01*
X152Y858D01*
X150Y858D01*
X150Y854D01*
X148Y854D01*
X148Y852D01*
X146Y852D01*
X146Y850D01*
X144Y850D01*
X144Y848D01*
X142Y848D01*
X142Y844D01*
X140Y844D01*
X140Y824D01*
X142Y824D01*
X142Y822D01*
X144Y822D01*
X144Y820D01*
X146Y820D01*
X146Y818D01*
X148Y818D01*
X148Y814D01*
X150Y814D01*
X150Y812D01*
X152Y812D01*
X152Y808D01*
X154Y808D01*
X154Y804D01*
X156Y804D01*
X156Y798D01*
X158Y798D01*
X158Y772D01*
X156Y772D01*
X156Y766D01*
X154Y766D01*
X154Y762D01*
X152Y762D01*
X152Y758D01*
X150Y758D01*
X150Y754D01*
X148Y754D01*
X148Y752D01*
X146Y752D01*
X146Y750D01*
X144Y750D01*
X144Y748D01*
X142Y748D01*
X142Y744D01*
X140Y744D01*
X140Y724D01*
X142Y724D01*
X142Y722D01*
X144Y722D01*
X144Y720D01*
X146Y720D01*
X146Y718D01*
X148Y718D01*
X148Y714D01*
X150Y714D01*
X150Y712D01*
X152Y712D01*
X152Y708D01*
X154Y708D01*
X154Y704D01*
X156Y704D01*
X156Y698D01*
X158Y698D01*
X158Y672D01*
X156Y672D01*
X156Y666D01*
X154Y666D01*
X154Y662D01*
X152Y662D01*
X152Y658D01*
X150Y658D01*
X150Y654D01*
X148Y654D01*
X148Y652D01*
X146Y652D01*
X146Y650D01*
X144Y650D01*
X144Y648D01*
X142Y648D01*
X142Y644D01*
X140Y644D01*
X140Y624D01*
X142Y624D01*
X142Y622D01*
X144Y622D01*
X144Y620D01*
X146Y620D01*
X146Y618D01*
X148Y618D01*
X148Y614D01*
X150Y614D01*
X150Y612D01*
X152Y612D01*
X152Y608D01*
X154Y608D01*
X154Y604D01*
X156Y604D01*
X156Y598D01*
X158Y598D01*
X158Y572D01*
X156Y572D01*
X156Y566D01*
X154Y566D01*
X154Y562D01*
X152Y562D01*
X152Y558D01*
X150Y558D01*
X150Y554D01*
X148Y554D01*
X148Y552D01*
X146Y552D01*
X146Y550D01*
X144Y550D01*
X144Y548D01*
X142Y548D01*
X142Y544D01*
X140Y544D01*
X140Y524D01*
X142Y524D01*
X142Y522D01*
X144Y522D01*
X144Y520D01*
X146Y520D01*
X146Y518D01*
X148Y518D01*
X148Y514D01*
X150Y514D01*
X150Y512D01*
X152Y512D01*
X152Y508D01*
X154Y508D01*
X154Y504D01*
X156Y504D01*
X156Y498D01*
X158Y498D01*
X158Y472D01*
X156Y472D01*
X156Y466D01*
X154Y466D01*
X154Y462D01*
X152Y462D01*
X152Y458D01*
X150Y458D01*
X150Y454D01*
X148Y454D01*
X148Y452D01*
X146Y452D01*
X146Y450D01*
X144Y450D01*
X144Y448D01*
X142Y448D01*
X142Y444D01*
X140Y444D01*
X140Y424D01*
X142Y424D01*
X142Y422D01*
X144Y422D01*
X144Y420D01*
X146Y420D01*
X146Y418D01*
X148Y418D01*
X148Y414D01*
X150Y414D01*
X150Y412D01*
X152Y412D01*
X152Y408D01*
X154Y408D01*
X154Y404D01*
X156Y404D01*
X156Y398D01*
X158Y398D01*
X158Y372D01*
X156Y372D01*
X156Y366D01*
X154Y366D01*
X154Y362D01*
X152Y362D01*
X152Y358D01*
X150Y358D01*
X150Y354D01*
X148Y354D01*
X148Y352D01*
X146Y352D01*
X146Y350D01*
X144Y350D01*
X144Y348D01*
X142Y348D01*
X142Y344D01*
X140Y344D01*
X140Y324D01*
X142Y324D01*
X142Y322D01*
X144Y322D01*
X144Y320D01*
X146Y320D01*
X146Y318D01*
X148Y318D01*
X148Y314D01*
X150Y314D01*
X150Y312D01*
X152Y312D01*
X152Y308D01*
X154Y308D01*
X154Y304D01*
X156Y304D01*
X156Y298D01*
X158Y298D01*
X158Y272D01*
X156Y272D01*
X156Y266D01*
X154Y266D01*
X154Y262D01*
X152Y262D01*
X152Y258D01*
X150Y258D01*
X150Y254D01*
X148Y254D01*
X148Y252D01*
X146Y252D01*
X146Y250D01*
X144Y250D01*
X144Y248D01*
X142Y248D01*
X142Y244D01*
X140Y244D01*
X140Y224D01*
X142Y224D01*
X142Y222D01*
X144Y222D01*
X144Y220D01*
X146Y220D01*
X146Y218D01*
X148Y218D01*
X148Y214D01*
X150Y214D01*
X150Y212D01*
X152Y212D01*
X152Y208D01*
X154Y208D01*
X154Y204D01*
X156Y204D01*
X156Y198D01*
X158Y198D01*
X158Y172D01*
X156Y172D01*
X156Y166D01*
X154Y166D01*
X154Y162D01*
X152Y162D01*
X152Y158D01*
X150Y158D01*
X150Y154D01*
X148Y154D01*
X148Y152D01*
X146Y152D01*
X146Y150D01*
X144Y150D01*
X144Y148D01*
X142Y148D01*
X142Y144D01*
X140Y144D01*
X140Y124D01*
X142Y124D01*
X142Y122D01*
X144Y122D01*
X144Y120D01*
X146Y120D01*
X146Y118D01*
X148Y118D01*
X148Y114D01*
X150Y114D01*
X150Y112D01*
X152Y112D01*
X152Y108D01*
X154Y108D01*
X154Y104D01*
X156Y104D01*
X156Y98D01*
X158Y98D01*
X158Y72D01*
X156Y72D01*
X156Y66D01*
X154Y66D01*
X154Y62D01*
X152Y62D01*
X152Y40D01*
X938Y40D01*
X938Y60D01*
X936Y60D01*
X936Y66D01*
X934Y66D01*
X934Y70D01*
X932Y70D01*
X932Y80D01*
X930Y80D01*
X930Y88D01*
X932Y88D01*
X932Y98D01*
X934Y98D01*
X934Y104D01*
X936Y104D01*
X936Y108D01*
X938Y108D01*
X938Y112D01*
X940Y112D01*
X940Y116D01*
X942Y116D01*
X942Y118D01*
X944Y118D01*
X944Y120D01*
X946Y120D01*
X946Y124D01*
X948Y124D01*
X948Y146D01*
X946Y146D01*
X946Y148D01*
X944Y148D01*
X944Y152D01*
X942Y152D01*
X942Y154D01*
X940Y154D01*
X940Y158D01*
X938Y158D01*
X938Y160D01*
X936Y160D01*
X936Y166D01*
X934Y166D01*
X934Y170D01*
X932Y170D01*
X932Y180D01*
X930Y180D01*
X930Y188D01*
X932Y188D01*
X932Y198D01*
X934Y198D01*
X934Y204D01*
X936Y204D01*
X936Y208D01*
X938Y208D01*
X938Y212D01*
X940Y212D01*
X940Y216D01*
X942Y216D01*
X942Y218D01*
X944Y218D01*
X944Y220D01*
X946Y220D01*
X946Y224D01*
X948Y224D01*
X948Y246D01*
X946Y246D01*
X946Y248D01*
X944Y248D01*
X944Y252D01*
X942Y252D01*
X942Y254D01*
X940Y254D01*
X940Y258D01*
X938Y258D01*
X938Y260D01*
X936Y260D01*
X936Y266D01*
X934Y266D01*
X934Y270D01*
X932Y270D01*
X932Y280D01*
X930Y280D01*
X930Y288D01*
X932Y288D01*
X932Y298D01*
X934Y298D01*
X934Y304D01*
X936Y304D01*
X936Y308D01*
X938Y308D01*
X938Y312D01*
X940Y312D01*
X940Y316D01*
X942Y316D01*
X942Y318D01*
X944Y318D01*
X944Y320D01*
X946Y320D01*
X946Y324D01*
X948Y324D01*
X948Y346D01*
X946Y346D01*
X946Y348D01*
X944Y348D01*
X944Y352D01*
X942Y352D01*
X942Y354D01*
X940Y354D01*
X940Y358D01*
X938Y358D01*
X938Y360D01*
X936Y360D01*
X936Y366D01*
X934Y366D01*
X934Y370D01*
X932Y370D01*
X932Y380D01*
X930Y380D01*
X930Y388D01*
X932Y388D01*
X932Y398D01*
X934Y398D01*
X934Y404D01*
X936Y404D01*
X936Y408D01*
X938Y408D01*
X938Y412D01*
X940Y412D01*
X940Y416D01*
X942Y416D01*
X942Y418D01*
X944Y418D01*
X944Y420D01*
X946Y420D01*
X946Y424D01*
X948Y424D01*
X948Y446D01*
X946Y446D01*
X946Y448D01*
X944Y448D01*
X944Y452D01*
X942Y452D01*
X942Y454D01*
X940Y454D01*
X940Y458D01*
X938Y458D01*
X938Y460D01*
X936Y460D01*
X936Y466D01*
X934Y466D01*
X934Y470D01*
X932Y470D01*
X932Y480D01*
X930Y480D01*
X930Y488D01*
X932Y488D01*
X932Y498D01*
X934Y498D01*
X934Y504D01*
X936Y504D01*
X936Y508D01*
X938Y508D01*
X938Y512D01*
X940Y512D01*
X940Y516D01*
X942Y516D01*
X942Y518D01*
X944Y518D01*
X944Y520D01*
X946Y520D01*
X946Y524D01*
X948Y524D01*
X948Y546D01*
X946Y546D01*
X946Y548D01*
X944Y548D01*
X944Y552D01*
X942Y552D01*
X942Y554D01*
X940Y554D01*
X940Y558D01*
X938Y558D01*
X938Y560D01*
X936Y560D01*
X936Y566D01*
X934Y566D01*
X934Y570D01*
X932Y570D01*
X932Y580D01*
X930Y580D01*
X930Y588D01*
X932Y588D01*
X932Y598D01*
X934Y598D01*
X934Y604D01*
X936Y604D01*
X936Y608D01*
X938Y608D01*
X938Y612D01*
X940Y612D01*
X940Y616D01*
X942Y616D01*
X942Y618D01*
X944Y618D01*
X944Y620D01*
X946Y620D01*
X946Y624D01*
X948Y624D01*
X948Y646D01*
X946Y646D01*
X946Y648D01*
X944Y648D01*
X944Y652D01*
X942Y652D01*
X942Y654D01*
X940Y654D01*
X940Y658D01*
X938Y658D01*
X938Y660D01*
X936Y660D01*
X936Y666D01*
X934Y666D01*
X934Y670D01*
X932Y670D01*
X932Y680D01*
X930Y680D01*
X930Y688D01*
X932Y688D01*
X932Y698D01*
X934Y698D01*
X934Y704D01*
X936Y704D01*
X936Y708D01*
X938Y708D01*
X938Y712D01*
X940Y712D01*
X940Y716D01*
X942Y716D01*
X942Y718D01*
X944Y718D01*
X944Y720D01*
X946Y720D01*
X946Y724D01*
X948Y724D01*
X948Y746D01*
X946Y746D01*
X946Y748D01*
X944Y748D01*
X944Y752D01*
X942Y752D01*
X942Y754D01*
X940Y754D01*
X940Y758D01*
X938Y758D01*
X938Y760D01*
X936Y760D01*
X936Y766D01*
X934Y766D01*
X934Y770D01*
X932Y770D01*
X932Y780D01*
X930Y780D01*
X930Y788D01*
X932Y788D01*
X932Y798D01*
X934Y798D01*
X934Y804D01*
X936Y804D01*
X936Y808D01*
X938Y808D01*
X938Y812D01*
X940Y812D01*
X940Y816D01*
X942Y816D01*
X942Y818D01*
X944Y818D01*
X944Y820D01*
X946Y820D01*
X946Y824D01*
X948Y824D01*
X948Y846D01*
X946Y846D01*
X946Y848D01*
X944Y848D01*
X944Y852D01*
X942Y852D01*
X942Y854D01*
X940Y854D01*
X940Y858D01*
X938Y858D01*
X938Y860D01*
X936Y860D01*
X936Y866D01*
X934Y866D01*
X934Y870D01*
X932Y870D01*
X932Y880D01*
X930Y880D01*
X930Y902D01*
X158Y902D01*
G37*
D02*
G36*
X926Y909D02*
X972Y909D01*
X972Y864D01*
X926Y864D01*
X926Y909D01*
G37*
D02*
G36*
X1010Y909D02*
X1050Y909D01*
X1050Y864D01*
X1010Y864D01*
X1010Y909D01*
G37*
D02*
G04 End of Copper0*
M02*

View File

@ -0,0 +1,734 @@
G04 MADE WITH FRITZING*
G04 WWW.FRITZING.ORG*
G04 DOUBLE SIDED*
G04 HOLES PLATED*
G04 CONTOUR ON CENTER OF CONTOUR VECTOR*
%ASAXBY*%
%FSLAX23Y23*%
%MOIN*%
%OFA0B0*%
%SFA1.0B1.0*%
%ADD10C,0.075000*%
%ADD11C,0.078000*%
%ADD12C,0.024000*%
%LNCOPPER1*%
G90*
G70*
G54D10*
X447Y824D03*
G54D11*
X995Y885D03*
X995Y785D03*
X995Y685D03*
X995Y585D03*
X995Y485D03*
X995Y385D03*
X995Y285D03*
X995Y185D03*
X995Y85D03*
X95Y885D03*
X95Y785D03*
X95Y685D03*
X95Y585D03*
X95Y485D03*
X95Y385D03*
X95Y285D03*
X95Y185D03*
X95Y85D03*
G54D12*
X195Y785D02*
X256Y791D01*
D02*
X195Y885D02*
X257Y865D01*
D02*
X195Y520D02*
X256Y520D01*
D02*
X125Y785D02*
X195Y785D01*
D02*
X125Y885D02*
X195Y885D01*
D02*
X195Y485D02*
X195Y520D01*
D02*
X795Y885D02*
X795Y865D01*
D02*
X494Y685D02*
X494Y465D01*
D02*
X494Y465D02*
X342Y465D01*
D02*
X694Y795D02*
X694Y686D01*
D02*
X694Y686D02*
X752Y685D01*
D02*
X752Y795D02*
X694Y795D01*
D02*
X795Y836D02*
X795Y810D01*
D02*
X752Y685D02*
X494Y685D01*
D02*
X965Y885D02*
X795Y885D01*
D02*
X125Y485D02*
X195Y485D01*
D02*
X299Y534D02*
X299Y561D01*
D02*
X299Y589D02*
X299Y616D01*
D02*
X895Y585D02*
X837Y579D01*
D02*
X895Y520D02*
X837Y520D01*
D02*
X895Y485D02*
X895Y520D01*
D02*
X895Y740D02*
X837Y740D01*
D02*
X895Y785D02*
X895Y740D01*
D02*
X895Y630D02*
X837Y630D01*
D02*
X895Y685D02*
X895Y630D01*
D02*
X195Y685D02*
X256Y685D01*
D02*
X965Y485D02*
X895Y485D01*
D02*
X965Y585D02*
X895Y585D01*
D02*
X965Y685D02*
X895Y685D01*
D02*
X965Y785D02*
X895Y785D01*
D02*
X519Y85D02*
X519Y332D01*
D02*
X125Y85D02*
X519Y85D01*
D02*
X464Y185D02*
X464Y332D01*
D02*
X125Y185D02*
X464Y185D01*
D02*
X193Y385D02*
X340Y375D01*
D02*
X409Y285D02*
X409Y332D01*
D02*
X125Y285D02*
X409Y285D01*
D02*
X125Y385D02*
X193Y385D01*
D02*
X116Y606D02*
X195Y685D01*
D02*
X194Y741D02*
X256Y740D01*
D02*
X121Y700D02*
X194Y741D01*
D02*
X695Y585D02*
X715Y481D01*
D02*
X715Y481D02*
X730Y417D01*
D02*
X695Y685D02*
X695Y585D01*
D02*
X752Y685D02*
X695Y685D01*
D02*
X895Y385D02*
X813Y451D01*
D02*
X575Y85D02*
X574Y332D01*
D02*
X965Y85D02*
X574Y85D01*
D02*
X630Y185D02*
X630Y332D01*
D02*
X965Y185D02*
X630Y185D01*
D02*
X685Y285D02*
X685Y332D01*
D02*
X965Y285D02*
X685Y285D01*
D02*
X965Y385D02*
X895Y385D01*
G36*
X372Y900D02*
X372Y448D01*
X722Y448D01*
X722Y900D01*
X372Y900D01*
G37*
D02*
G36*
X868Y900D02*
X868Y820D01*
X888Y820D01*
X888Y822D01*
X946Y822D01*
X946Y824D01*
X948Y824D01*
X948Y846D01*
X946Y846D01*
X946Y848D01*
X944Y848D01*
X944Y852D01*
X942Y852D01*
X942Y854D01*
X940Y854D01*
X940Y858D01*
X938Y858D01*
X938Y860D01*
X936Y860D01*
X936Y866D01*
X934Y866D01*
X934Y870D01*
X932Y870D01*
X932Y880D01*
X930Y880D01*
X930Y900D01*
X868Y900D01*
G37*
D02*
G36*
X142Y848D02*
X142Y844D01*
X140Y844D01*
X140Y824D01*
X142Y824D01*
X142Y822D01*
X204Y822D01*
X204Y844D01*
X198Y844D01*
X198Y846D01*
X192Y846D01*
X192Y848D01*
X142Y848D01*
G37*
D02*
G36*
X206Y644D02*
X206Y642D01*
X204Y642D01*
X204Y640D01*
X202Y640D01*
X202Y638D01*
X200Y638D01*
X200Y636D01*
X198Y636D01*
X198Y634D01*
X196Y634D01*
X196Y632D01*
X194Y632D01*
X194Y630D01*
X192Y630D01*
X192Y628D01*
X190Y628D01*
X190Y626D01*
X188Y626D01*
X188Y624D01*
X186Y624D01*
X186Y622D01*
X184Y622D01*
X184Y620D01*
X182Y620D01*
X182Y618D01*
X180Y618D01*
X180Y616D01*
X178Y616D01*
X178Y614D01*
X176Y614D01*
X176Y612D01*
X174Y612D01*
X174Y610D01*
X172Y610D01*
X172Y608D01*
X170Y608D01*
X170Y606D01*
X168Y606D01*
X168Y604D01*
X166Y604D01*
X166Y602D01*
X164Y602D01*
X164Y600D01*
X162Y600D01*
X162Y598D01*
X160Y598D01*
X160Y596D01*
X158Y596D01*
X158Y572D01*
X156Y572D01*
X156Y566D01*
X154Y566D01*
X154Y562D01*
X152Y562D01*
X152Y558D01*
X150Y558D01*
X150Y554D01*
X148Y554D01*
X148Y552D01*
X146Y552D01*
X146Y550D01*
X144Y550D01*
X144Y548D01*
X142Y548D01*
X142Y544D01*
X140Y544D01*
X140Y528D01*
X160Y528D01*
X160Y534D01*
X162Y534D01*
X162Y538D01*
X164Y538D01*
X164Y542D01*
X166Y542D01*
X166Y544D01*
X168Y544D01*
X168Y546D01*
X170Y546D01*
X170Y548D01*
X172Y548D01*
X172Y550D01*
X176Y550D01*
X176Y552D01*
X180Y552D01*
X180Y554D01*
X184Y554D01*
X184Y556D01*
X226Y556D01*
X226Y644D01*
X206Y644D01*
G37*
D02*
G36*
X204Y450D02*
X204Y448D01*
X142Y448D01*
X142Y444D01*
X140Y444D01*
X140Y424D01*
X142Y424D01*
X142Y422D01*
X226Y422D01*
X226Y450D01*
X204Y450D01*
G37*
D02*
G36*
X898Y448D02*
X898Y428D01*
X902Y428D01*
X902Y426D01*
X904Y426D01*
X904Y424D01*
X906Y424D01*
X906Y422D01*
X946Y422D01*
X946Y424D01*
X948Y424D01*
X948Y446D01*
X946Y446D01*
X946Y448D01*
X898Y448D01*
G37*
D02*
G36*
X784Y410D02*
X784Y322D01*
X946Y322D01*
X946Y324D01*
X948Y324D01*
X948Y346D01*
X946Y346D01*
X946Y348D01*
X886Y348D01*
X886Y350D01*
X880Y350D01*
X880Y352D01*
X876Y352D01*
X876Y354D01*
X874Y354D01*
X874Y356D01*
X870Y356D01*
X870Y358D01*
X868Y358D01*
X868Y360D01*
X866Y360D01*
X866Y362D01*
X862Y362D01*
X862Y364D01*
X860Y364D01*
X860Y366D01*
X858Y366D01*
X858Y368D01*
X856Y368D01*
X856Y370D01*
X852Y370D01*
X852Y372D01*
X850Y372D01*
X850Y374D01*
X848Y374D01*
X848Y376D01*
X846Y376D01*
X846Y378D01*
X842Y378D01*
X842Y380D01*
X840Y380D01*
X840Y382D01*
X838Y382D01*
X838Y384D01*
X836Y384D01*
X836Y386D01*
X832Y386D01*
X832Y388D01*
X830Y388D01*
X830Y390D01*
X828Y390D01*
X828Y392D01*
X826Y392D01*
X826Y394D01*
X822Y394D01*
X822Y396D01*
X820Y396D01*
X820Y398D01*
X818Y398D01*
X818Y400D01*
X814Y400D01*
X814Y402D01*
X812Y402D01*
X812Y404D01*
X810Y404D01*
X810Y406D01*
X808Y406D01*
X808Y408D01*
X804Y408D01*
X804Y410D01*
X784Y410D01*
G37*
D02*
G36*
X142Y348D02*
X142Y344D01*
X140Y344D01*
X140Y324D01*
X142Y324D01*
X142Y322D01*
X294Y322D01*
X294Y342D01*
X264Y342D01*
X264Y344D01*
X236Y344D01*
X236Y346D01*
X206Y346D01*
X206Y348D01*
X142Y348D01*
G37*
D02*
G36*
X142Y248D02*
X142Y244D01*
X140Y244D01*
X140Y224D01*
X142Y224D01*
X142Y222D01*
X428Y222D01*
X428Y248D01*
X142Y248D01*
G37*
D02*
G36*
X666Y248D02*
X666Y222D01*
X946Y222D01*
X946Y224D01*
X948Y224D01*
X948Y246D01*
X946Y246D01*
X946Y248D01*
X666Y248D01*
G37*
D02*
G36*
X142Y148D02*
X142Y144D01*
X140Y144D01*
X140Y124D01*
X142Y124D01*
X142Y122D01*
X482Y122D01*
X482Y148D01*
X142Y148D01*
G37*
D02*
G36*
X612Y148D02*
X612Y122D01*
X946Y122D01*
X946Y124D01*
X948Y124D01*
X948Y146D01*
X946Y146D01*
X946Y148D01*
X612Y148D01*
G37*
D02*
G36*
X1010Y909D02*
X1050Y909D01*
X1050Y864D01*
X1010Y864D01*
X1010Y909D01*
G37*
D02*
G36*
X718Y865D02*
X790Y865D01*
X790Y840D01*
X718Y840D01*
X718Y865D01*
G37*
D02*
G36*
X738Y403D02*
X784Y403D01*
X784Y350D01*
X738Y350D01*
X738Y403D01*
G37*
D02*
G36*
X334Y326D02*
X373Y326D01*
X373Y423D01*
X334Y423D01*
X334Y326D02*
G37*
D02*
G36*
X389Y326D02*
X428Y326D01*
X428Y423D01*
X389Y423D01*
X389Y326D02*
G37*
D02*
G36*
X444Y326D02*
X483Y326D01*
X483Y423D01*
X444Y423D01*
X444Y326D02*
G37*
D02*
G36*
X499Y326D02*
X539Y326D01*
X539Y423D01*
X499Y423D01*
X499Y326D02*
G37*
D02*
G36*
X554Y326D02*
X594Y326D01*
X594Y423D01*
X554Y423D01*
X554Y326D02*
G37*
D02*
G36*
X609Y326D02*
X649Y326D01*
X649Y423D01*
X609Y423D01*
X609Y326D02*
G37*
D02*
G36*
X665Y326D02*
X704Y326D01*
X704Y423D01*
X665Y423D01*
X665Y326D02*
G37*
D02*
G36*
X720Y326D02*
X759Y326D01*
X759Y423D01*
X720Y423D01*
X720Y326D02*
G37*
D02*
G36*
X250Y445D02*
X347Y445D01*
X347Y485D01*
X250Y485D01*
X250Y445D02*
G37*
D02*
G36*
X250Y500D02*
X347Y500D01*
X347Y540D01*
X250Y540D01*
X250Y500D02*
G37*
D02*
G36*
X250Y555D02*
X347Y555D01*
X347Y595D01*
X250Y595D01*
X250Y555D02*
G37*
D02*
G36*
X250Y611D02*
X347Y611D01*
X347Y650D01*
X250Y650D01*
X250Y611D02*
G37*
D02*
G36*
X250Y666D02*
X347Y666D01*
X347Y705D01*
X250Y705D01*
X250Y666D02*
G37*
D02*
G36*
X250Y721D02*
X347Y721D01*
X347Y760D01*
X250Y760D01*
X250Y721D02*
G37*
D02*
G36*
X250Y776D02*
X347Y776D01*
X347Y815D01*
X250Y815D01*
X250Y776D02*
G37*
D02*
G36*
X250Y831D02*
X347Y831D01*
X347Y870D01*
X250Y870D01*
X250Y831D02*
G37*
D02*
G36*
X746Y445D02*
X842Y445D01*
X842Y485D01*
X746Y485D01*
X746Y445D02*
G37*
D02*
G36*
X746Y500D02*
X842Y500D01*
X842Y540D01*
X746Y540D01*
X746Y500D02*
G37*
D02*
G36*
X746Y555D02*
X842Y555D01*
X842Y595D01*
X746Y595D01*
X746Y555D02*
G37*
D02*
G36*
X746Y611D02*
X842Y611D01*
X842Y650D01*
X746Y650D01*
X746Y611D02*
G37*
D02*
G36*
X746Y666D02*
X842Y666D01*
X842Y705D01*
X746Y705D01*
X746Y666D02*
G37*
D02*
G36*
X746Y721D02*
X842Y721D01*
X842Y760D01*
X746Y760D01*
X746Y721D02*
G37*
D02*
G36*
X746Y776D02*
X842Y776D01*
X842Y815D01*
X746Y815D01*
X746Y776D02*
G37*
D02*
G36*
X746Y831D02*
X842Y831D01*
X842Y870D01*
X746Y870D01*
X746Y831D02*
G37*
D02*
G04 End of Copper1*
M02*

View File

@ -0,0 +1,27 @@
; NON-PLATED HOLES START AT T1
; THROUGH (PLATED) HOLES START AT T100
M48
INCH
T100C0.038000
%
T100
X009947Y004851
X000947Y006851
X000947Y000851
X009947Y005851
X000947Y007851
X000947Y001851
X009947Y006851
X009947Y000851
X000947Y008851
X000947Y002851
X009947Y007851
X009947Y001851
X000947Y003851
X009947Y008851
X009947Y002851
X000947Y004851
X009947Y003851
X000947Y005851
T00
M30

View File

@ -0,0 +1,35 @@
G04 MADE WITH FRITZING*
G04 WWW.FRITZING.ORG*
G04 DOUBLE SIDED*
G04 HOLES PLATED*
G04 CONTOUR ON CENTER OF CONTOUR VECTOR*
%ASAXBY*%
%FSLAX23Y23*%
%MOIN*%
%OFA0B0*%
%SFA1.0B1.0*%
%ADD10C,0.088000*%
%LNMASK0*%
G90*
G70*
G54D10*
X995Y885D03*
X995Y785D03*
X995Y685D03*
X995Y585D03*
X995Y485D03*
X995Y385D03*
X995Y285D03*
X995Y185D03*
X995Y85D03*
X95Y885D03*
X95Y785D03*
X95Y685D03*
X95Y585D03*
X95Y485D03*
X95Y385D03*
X95Y285D03*
X95Y185D03*
X95Y85D03*
G04 End of Mask0*
M02*

View File

@ -0,0 +1,229 @@
G04 MADE WITH FRITZING*
G04 WWW.FRITZING.ORG*
G04 DOUBLE SIDED*
G04 HOLES PLATED*
G04 CONTOUR ON CENTER OF CONTOUR VECTOR*
%ASAXBY*%
%FSLAX23Y23*%
%MOIN*%
%OFA0B0*%
%SFA1.0B1.0*%
%ADD10C,0.088000*%
%ADD11C,0.010000*%
%LNMASK1*%
G90*
G70*
G54D10*
X995Y885D03*
X995Y785D03*
X995Y685D03*
X995Y585D03*
X995Y485D03*
X995Y385D03*
X995Y285D03*
X995Y185D03*
X995Y85D03*
X95Y885D03*
X95Y785D03*
X95Y685D03*
X95Y585D03*
X95Y485D03*
X95Y385D03*
X95Y285D03*
X95Y185D03*
X95Y85D03*
G54D11*
G36*
X334Y326D02*
X373Y326D01*
X373Y423D01*
X334Y423D01*
X334Y326D02*
G37*
D02*
G36*
X389Y326D02*
X428Y326D01*
X428Y423D01*
X389Y423D01*
X389Y326D02*
G37*
D02*
G36*
X444Y326D02*
X483Y326D01*
X483Y423D01*
X444Y423D01*
X444Y326D02*
G37*
D02*
G36*
X499Y326D02*
X539Y326D01*
X539Y423D01*
X499Y423D01*
X499Y326D02*
G37*
D02*
G36*
X554Y326D02*
X594Y326D01*
X594Y423D01*
X554Y423D01*
X554Y326D02*
G37*
D02*
G36*
X609Y326D02*
X649Y326D01*
X649Y423D01*
X609Y423D01*
X609Y326D02*
G37*
D02*
G36*
X665Y326D02*
X704Y326D01*
X704Y423D01*
X665Y423D01*
X665Y326D02*
G37*
D02*
G36*
X720Y326D02*
X759Y326D01*
X759Y423D01*
X720Y423D01*
X720Y326D02*
G37*
D02*
G36*
X250Y445D02*
X347Y445D01*
X347Y485D01*
X250Y485D01*
X250Y445D02*
G37*
D02*
G36*
X250Y500D02*
X347Y500D01*
X347Y540D01*
X250Y540D01*
X250Y500D02*
G37*
D02*
G36*
X250Y555D02*
X347Y555D01*
X347Y595D01*
X250Y595D01*
X250Y555D02*
G37*
D02*
G36*
X250Y611D02*
X347Y611D01*
X347Y650D01*
X250Y650D01*
X250Y611D02*
G37*
D02*
G36*
X250Y666D02*
X347Y666D01*
X347Y705D01*
X250Y705D01*
X250Y666D02*
G37*
D02*
G36*
X250Y721D02*
X347Y721D01*
X347Y760D01*
X250Y760D01*
X250Y721D02*
G37*
D02*
G36*
X250Y776D02*
X347Y776D01*
X347Y815D01*
X250Y815D01*
X250Y776D02*
G37*
D02*
G36*
X250Y831D02*
X347Y831D01*
X347Y870D01*
X250Y870D01*
X250Y831D02*
G37*
D02*
G36*
X746Y445D02*
X842Y445D01*
X842Y485D01*
X746Y485D01*
X746Y445D02*
G37*
D02*
G36*
X746Y500D02*
X842Y500D01*
X842Y540D01*
X746Y540D01*
X746Y500D02*
G37*
D02*
G36*
X746Y555D02*
X842Y555D01*
X842Y595D01*
X746Y595D01*
X746Y555D02*
G37*
D02*
G36*
X746Y611D02*
X842Y611D01*
X842Y650D01*
X746Y650D01*
X746Y611D02*
G37*
D02*
G36*
X746Y666D02*
X842Y666D01*
X842Y705D01*
X746Y705D01*
X746Y666D02*
G37*
D02*
G36*
X746Y721D02*
X842Y721D01*
X842Y760D01*
X746Y760D01*
X746Y721D02*
G37*
D02*
G36*
X746Y776D02*
X842Y776D01*
X842Y815D01*
X746Y815D01*
X746Y776D02*
G37*
D02*
G36*
X746Y831D02*
X842Y831D01*
X842Y870D01*
X746Y870D01*
X746Y831D02*
G37*
D02*
G04 End of Mask1*
M02*

View File

@ -0,0 +1,207 @@
G04 MADE WITH FRITZING*
G04 WWW.FRITZING.ORG*
G04 DOUBLE SIDED*
G04 HOLES PLATED*
G04 CONTOUR ON CENTER OF CONTOUR VECTOR*
%ASAXBY*%
%FSLAX23Y23*%
%MOIN*%
%OFA0B0*%
%SFA1.0B1.0*%
%LNPASTEMASK1*%
G90*
G70*
G36*
X334Y326D02*
X373Y326D01*
X373Y423D01*
X334Y423D01*
X334Y326D02*
G37*
D02*
G36*
X389Y326D02*
X428Y326D01*
X428Y423D01*
X389Y423D01*
X389Y326D02*
G37*
D02*
G36*
X444Y326D02*
X483Y326D01*
X483Y423D01*
X444Y423D01*
X444Y326D02*
G37*
D02*
G36*
X499Y326D02*
X539Y326D01*
X539Y423D01*
X499Y423D01*
X499Y326D02*
G37*
D02*
G36*
X554Y326D02*
X594Y326D01*
X594Y423D01*
X554Y423D01*
X554Y326D02*
G37*
D02*
G36*
X609Y326D02*
X649Y326D01*
X649Y423D01*
X609Y423D01*
X609Y326D02*
G37*
D02*
G36*
X665Y326D02*
X704Y326D01*
X704Y423D01*
X665Y423D01*
X665Y326D02*
G37*
D02*
G36*
X720Y326D02*
X759Y326D01*
X759Y423D01*
X720Y423D01*
X720Y326D02*
G37*
D02*
G36*
X250Y445D02*
X347Y445D01*
X347Y485D01*
X250Y485D01*
X250Y445D02*
G37*
D02*
G36*
X250Y500D02*
X347Y500D01*
X347Y540D01*
X250Y540D01*
X250Y500D02*
G37*
D02*
G36*
X250Y555D02*
X347Y555D01*
X347Y595D01*
X250Y595D01*
X250Y555D02*
G37*
D02*
G36*
X250Y611D02*
X347Y611D01*
X347Y650D01*
X250Y650D01*
X250Y611D02*
G37*
D02*
G36*
X250Y666D02*
X347Y666D01*
X347Y705D01*
X250Y705D01*
X250Y666D02*
G37*
D02*
G36*
X250Y721D02*
X347Y721D01*
X347Y760D01*
X250Y760D01*
X250Y721D02*
G37*
D02*
G36*
X250Y776D02*
X347Y776D01*
X347Y815D01*
X250Y815D01*
X250Y776D02*
G37*
D02*
G36*
X250Y831D02*
X347Y831D01*
X347Y870D01*
X250Y870D01*
X250Y831D02*
G37*
D02*
G36*
X746Y445D02*
X842Y445D01*
X842Y485D01*
X746Y485D01*
X746Y445D02*
G37*
D02*
G36*
X746Y500D02*
X842Y500D01*
X842Y540D01*
X746Y540D01*
X746Y500D02*
G37*
D02*
G36*
X746Y555D02*
X842Y555D01*
X842Y595D01*
X746Y595D01*
X746Y555D02*
G37*
D02*
G36*
X746Y611D02*
X842Y611D01*
X842Y650D01*
X746Y650D01*
X746Y611D02*
G37*
D02*
G36*
X746Y666D02*
X842Y666D01*
X842Y705D01*
X746Y705D01*
X746Y666D02*
G37*
D02*
G36*
X746Y721D02*
X842Y721D01*
X842Y760D01*
X746Y760D01*
X746Y721D02*
G37*
D02*
G36*
X746Y776D02*
X842Y776D01*
X842Y815D01*
X746Y815D01*
X746Y776D02*
G37*
D02*
G36*
X746Y831D02*
X842Y831D01*
X842Y870D01*
X746Y870D01*
X746Y831D02*
G37*
D02*
G04 End of PasteMask1*
M02*

View File

@ -0,0 +1,44 @@
*Pick And Place List
*Company=
*Author=
*eMail=
*
*Project=adapterBoard
*Date=23:02:27
*CreatedBy=Fritzing 0.9.1b.11.19.8d2d5970658f0bed09c661c9ea9a515b5f40f44c
*
*
*Coordinates in mm, always center of component
*Origin 0/0=Lower left corner of PCB
*Rotation in degree (0-360, math. pos.)
*
*No;Value;Package;X;Y;Rotation;Side;Name
1;;;4.6482;-11.0829;0;Bottom;Copper Fill8
2;;;19.812;-3.43751;0;Bottom;Copper Fill15
3;;;23.0632;-21.8524;0;Bottom;Copper Fill5
4;;;21.9964;-9.30491;0;Bottom;Copper Fill10
5;;;13.7524;-28.0652;0;Bottom;TXT5
6;;;20.4978;-5.97751;0;Bottom;Copper Fill13
7;;;13.8938;-17.128;0;Bottom;Copper Fill4
8;;;26.162;-22.5255;0;Bottom;Copper Fill3
9;;;19.1516;-21.6619;0;Bottom;Copper Fill17
10;;;19.3294;-9.57161;0;Bottom;Copper Fill18
11;;;3.53977;-31.6432;0;Bottom;TXT1
12;;;3.60541;-29.1154;0;Bottom;TXT2
13;;;15.7336;-28.6196;0;Top;blkr1
14;;;4.3688;-21.2174;0;Bottom;Copper Fill6
15;;;5.5118;-8.51751;0;Bottom;Copper Fill11
16;;;3.47951;-30.4071;0;Bottom;TXT3
17;;;24.1046;-22.5255;0;Bottom;Copper Fill2
18;;THT;25.2671;-12.323;0;Bottom;18
19;;;-10.7315;16.7336;90;Bottom;Ruler1
20;;23 mm x 13 mm x 2.9 mm 24-
pin side castellation package;14.3919;-19.303;0;Top;DWM1k
21;;;23.4442;-11.0575;0;Bottom;Copper Fill9
22;;;14.5709;-28.5508;0;Bottom;blkr2
23;;THT;2.40707;-12.323;0;Bottom;1
24;;;13.8176;-11.9718;0;Bottom;Copper Fill1
25;;;7.8994;-3.43751;0;Bottom;Copper Fill14
26;;;26.162;-22.5255;0;Bottom;Copper Fill16
27;;;4.6482;-14.8929;0;Bottom;Copper Fill7
28;;;7.2136;-5.97751;0;Bottom;Copper Fill12

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,360 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Generator: Adobe Illustrator 16.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.1"
id="_x30_"
x="0px"
y="0px"
width="114.60302"
height="96.560883"
viewBox="-0.023 0 114.60302 96.560885"
xml:space="preserve"
inkscape:version="0.48.4 r9939"
sodipodi:docname="DWM1000_AdapterBoard_Breadboard.svg"><metadata
id="metadata42"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs
id="defs40" /><sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1600"
inkscape:window-height="848"
id="namedview38"
showgrid="false"
inkscape:zoom="4.675669"
inkscape:cx="44.82082"
inkscape:cy="59.635354"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="_x30_"
showguides="false"
inkscape:snap-global="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"><inkscape:grid
type="xygrid"
id="grid6437"
empspacing="5"
visible="true"
enabled="true"
snapvisiblegridlinesonly="true"
units="in"
spacingx="0.1in"
spacingy="0.1in"
originx="0.18466378in"
originy="-0.80813387in" /></sodipodi:namedview><desc
id="0.0"><referenceFile
id="0.0.0">ADXL327_Breadboard.svg</referenceFile></desc><path
id="_x30_.1"
d="M 0.64285112,0.66585219 V 43.518181 53.045897 95.895029 H 113.91417 V 0.66585219 H 0.64285112 l 0,0 z"
inkscape:connector-curvature="0"
style="fill:#f9f9f9;stroke:#f9f9f9;stroke-width:1.33170438" /><text
xml:space="preserve"
style="font-size:3.16164279px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:OCRA;-inkscape-font-specification:OCRA"
x="6.8096652"
y="-85.265022"
id="text6444-9"
sodipodi:linespacing="125%"
transform="matrix(0,1,-1,0,0,0)"><tspan
sodipodi:role="line"
id="tspan6446-9"
x="6.8096652"
y="-85.265022">1</tspan></text>
<circle
style="fill:#403619;stroke:#9a916c;stroke-width:1.5"
sodipodi:ry="1.75"
sodipodi:rx="1.75"
sodipodi:cy="4.0910001"
sodipodi:cx="3.4920001"
d="m 5.2420001,4.0910001 c 0,0.9664983 -0.7835017,1.75 -1.75,1.75 -0.9664983,0 -1.75,-0.7835017 -1.75,-1.75 0,-0.9664983 0.7835017,-1.75 1.75,-1.75 0.9664983,0 1.75,0.7835017 1.75,1.75 z"
r="1.75"
cy="4.0910001"
cx="3.4920001"
id="connector16pin-44-6-7"
transform="matrix(1.1710985,0,0,1.1710985,65.322414,84.21127)" /><circle
style="fill:#403619;stroke:#9a916c;stroke-width:1.5"
sodipodi:ry="1.75"
sodipodi:rx="1.75"
sodipodi:cy="4.0910001"
sodipodi:cx="3.4920001"
d="m 5.2420001,4.0910001 c 0,0.9664983 -0.7835017,1.75 -1.75,1.75 -0.9664983,0 -1.75,-0.7835017 -1.75,-1.75 0,-0.9664983 0.7835017,-1.75 1.75,-1.75 0.9664983,0 1.75,0.7835017 1.75,1.75 z"
r="1.75"
cy="4.0910001"
cx="3.4920001"
id="connector16pin"
transform="matrix(1.1710985,0,0,1.1710985,2.4256301,2.9888922)" /><g
id="g9902"
transform="matrix(1.1811969,0,0,1.1811969,9.4993777,131.52725)"><path
style="fill:#237b3d"
inkscape:connector-curvature="0"
d="m 20.044827,-89.395066 v 16.465375 3.660885 16.464146 H 86.739159 V -89.395066 H 20.044827 l 0,0 z"
id="_x30_.1-2" /><a
transform="matrix(1.4022727,0,0,1.4573843,-16.337479,-103.34463)"
id="a13620"><path
sodipodi:nodetypes="ccccccc"
inkscape:connector-curvature="0"
id="rect13618"
d="m 30.151871,11.335799 20.964258,0 0,18.737412 c -2.801983,2.66493 -0.188424,0.01525 -2.813027,2.737411 l -20.627801,0 0,-18.737412 c 2.118974,-2.516187 0.145645,-0.246361 2.47657,-2.737411 z"
style="fill:#cccccc;stroke:#999999"
transform="translate(-0.02300107,0)" /></a><rect
y="-81.664757"
x="59.538132"
height="20.524864"
width="25.21303"
id="rect13626"
style="fill:#ececec;stroke:#cccccc;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none" /><text
sodipodi:linespacing="125%"
id="text6438"
y="-69.209473"
x="66.028358"
style="font-size:4.90661716px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:OCRA;-inkscape-font-specification:OCRA"
xml:space="preserve"><tspan
y="-69.209473"
x="66.028358"
id="tspan6440"
sodipodi:role="line">UWB42</tspan></text>
<path
inkscape:transform-center-x="0.56727608"
transform="matrix(0.87210022,0,0,0.87210022,7.824491,-89.616491)"
d="m 65.271715,18.912532 0,2.253293 0,2.253293 -1.951409,-1.126647 -1.951409,-1.126646 1.951409,-1.126647 z"
inkscape:randomized="0"
inkscape:rounded="0"
inkscape:flatsided="false"
sodipodi:arg2="0"
sodipodi:arg1="-1.0471976"
sodipodi:r2="1.3009394"
sodipodi:r1="2.6018789"
sodipodi:cy="21.165825"
sodipodi:cx="63.970776"
sodipodi:sides="3"
id="path6442"
style="fill:#000000;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none"
sodipodi:type="star" /></g><text
xml:space="preserve"
style="font-size:3.82296562px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:OCRA;-inkscape-font-specification:OCRA"
x="2.6755021"
y="-108.76115"
id="text6444"
sodipodi:linespacing="125%"
transform="matrix(0,1,-1,0,0,0)"><tspan
sodipodi:role="line"
id="tspan6446"
x="2.6755021"
y="-108.76115">DWM1000</tspan></text>
<text
xml:space="preserve"
style="font-size:3.82296562px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:OCRA;-inkscape-font-specification:OCRA"
x="2.7408555"
y="-104.57258"
id="text6444-1"
sodipodi:linespacing="125%"
transform="matrix(0,1,-1,0,0,0)"><tspan
sodipodi:role="line"
id="tspan6446-6"
x="2.7408555"
y="-104.57258">Adapter</tspan></text>
<text
xml:space="preserve"
style="font-size:3.16164279px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:OCRA;-inkscape-font-specification:OCRA"
x="86.593353"
y="-85.158089"
id="text6444-9-2"
sodipodi:linespacing="125%"
transform="matrix(0,1,-1,0,0,0)"><tspan
sodipodi:role="line"
id="tspan6446-9-9"
x="86.593353"
y="-85.158089">18</tspan></text>
<circle
style="fill:#403619;stroke:#9a916c;stroke-width:1.5"
sodipodi:ry="1.75"
sodipodi:rx="1.75"
sodipodi:cy="4.0910001"
sodipodi:cx="3.4920001"
d="m 5.2420001,4.0910001 c 0,0.9664983 -0.7835017,1.75 -1.75,1.75 -0.9664983,0 -1.75,-0.7835017 -1.75,-1.75 0,-0.9664983 0.7835017,-1.75 1.75,-1.75 0.9664983,0 1.75,0.7835017 1.75,1.75 z"
r="1.75"
cy="4.0910001"
cx="3.4920001"
id="connector16pin-4"
transform="matrix(1.1710985,0,0,1.1710985,11.393493,3.1141622)" /><circle
style="fill:#403619;stroke:#9a916c;stroke-width:1.5"
sodipodi:ry="1.75"
sodipodi:rx="1.75"
sodipodi:cy="4.0910001"
sodipodi:cx="3.4920001"
d="m 5.2420001,4.0910001 c 0,0.9664983 -0.7835017,1.75 -1.75,1.75 -0.9664983,0 -1.75,-0.7835017 -1.75,-1.75 0,-0.9664983 0.7835017,-1.75 1.75,-1.75 0.9664983,0 1.75,0.7835017 1.75,1.75 z"
r="1.75"
cy="4.0910001"
cx="3.4920001"
id="connector16pin-5"
transform="matrix(1.1710985,0,0,1.1710985,20.316131,3.1897722)" /><circle
style="fill:#403619;stroke:#9a916c;stroke-width:1.5"
sodipodi:ry="1.75"
sodipodi:rx="1.75"
sodipodi:cy="4.0910001"
sodipodi:cx="3.4920001"
d="m 5.2420001,4.0910001 c 0,0.9664983 -0.7835017,1.75 -1.75,1.75 -0.9664983,0 -1.75,-0.7835017 -1.75,-1.75 0,-0.9664983 0.7835017,-1.75 1.75,-1.75 0.9664983,0 1.75,0.7835017 1.75,1.75 z"
r="1.75"
cy="4.0910001"
cx="3.4920001"
id="connector16pin-44"
transform="matrix(1.1710985,0,0,1.1710985,29.314384,3.1897722)" /><circle
style="fill:#403619;stroke:#9a916c;stroke-width:1.5"
sodipodi:ry="1.75"
sodipodi:rx="1.75"
sodipodi:cy="4.0910001"
sodipodi:cx="3.4920001"
d="m 5.2420001,4.0910001 c 0,0.9664983 -0.7835017,1.75 -1.75,1.75 -0.9664983,0 -1.75,-0.7835017 -1.75,-1.75 0,-0.9664983 0.7835017,-1.75 1.75,-1.75 0.9664983,0 1.75,0.7835017 1.75,1.75 z"
r="1.75"
cy="4.0910001"
cx="3.4920001"
id="connector16pin-2"
transform="matrix(1.1710985,0,0,1.1710985,38.403448,3.1649422)" /><circle
style="fill:#403619;stroke:#9a916c;stroke-width:1.5"
sodipodi:ry="1.75"
sodipodi:rx="1.75"
sodipodi:cy="4.0910001"
sodipodi:cx="3.4920001"
d="m 5.2420001,4.0910001 c 0,0.9664983 -0.7835017,1.75 -1.75,1.75 -0.9664983,0 -1.75,-0.7835017 -1.75,-1.75 0,-0.9664983 0.7835017,-1.75 1.75,-1.75 0.9664983,0 1.75,0.7835017 1.75,1.75 z"
r="1.75"
cy="4.0910001"
cx="3.4920001"
id="connector16pin-4-6"
transform="matrix(1.1710985,0,0,1.1710985,47.371311,3.2145922)" /><circle
style="fill:#403619;stroke:#9a916c;stroke-width:1.5"
sodipodi:ry="1.75"
sodipodi:rx="1.75"
sodipodi:cy="4.0910001"
sodipodi:cx="3.4920001"
d="m 5.2420001,4.0910001 c 0,0.9664983 -0.7835017,1.75 -1.75,1.75 -0.9664983,0 -1.75,-0.7835017 -1.75,-1.75 0,-0.9664983 0.7835017,-1.75 1.75,-1.75 0.9664983,0 1.75,0.7835017 1.75,1.75 z"
r="1.75"
cy="4.0910001"
cx="3.4920001"
id="connector16pin-5-9"
transform="matrix(1.1710985,0,0,1.1710985,56.369565,3.2145822)" /><circle
style="fill:#403619;stroke:#9a916c;stroke-width:1.5"
sodipodi:ry="1.75"
sodipodi:rx="1.75"
sodipodi:cy="4.0910001"
sodipodi:cx="3.4920001"
d="m 5.2420001,4.0910001 c 0,0.9664983 -0.7835017,1.75 -1.75,1.75 -0.9664983,0 -1.75,-0.7835017 -1.75,-1.75 0,-0.9664983 0.7835017,-1.75 1.75,-1.75 0.9664983,0 1.75,0.7835017 1.75,1.75 z"
r="1.75"
cy="4.0910001"
cx="3.4920001"
id="connector16pin-44-6"
transform="matrix(1.1710985,0,0,1.1710985,65.367819,3.2145822)" /><circle
style="fill:#403619;stroke:#9a916c;stroke-width:1.5"
sodipodi:ry="1.75"
sodipodi:rx="1.75"
sodipodi:cy="4.0910001"
sodipodi:cx="3.4920001"
d="m 5.2420001,4.0910001 c 0,0.9664983 -0.7835017,1.75 -1.75,1.75 -0.9664983,0 -1.75,-0.7835017 -1.75,-1.75 0,-0.9664983 0.7835017,-1.75 1.75,-1.75 0.9664983,0 1.75,0.7835017 1.75,1.75 z"
r="1.75"
cy="4.0910001"
cx="3.4920001"
id="connector16pin-7"
transform="matrix(1.1710985,0,0,1.1710985,2.3046089,84.212428)" /><circle
style="fill:#403619;stroke:#9a916c;stroke-width:1.5"
sodipodi:ry="1.75"
sodipodi:rx="1.75"
sodipodi:cy="4.0910001"
sodipodi:cx="3.4920001"
d="m 5.2420001,4.0910001 c 0,0.9664983 -0.7835017,1.75 -1.75,1.75 -0.9664983,0 -1.75,-0.7835017 -1.75,-1.75 0,-0.9664983 0.7835017,-1.75 1.75,-1.75 0.9664983,0 1.75,0.7835017 1.75,1.75 z"
r="1.75"
cy="4.0910001"
cx="3.4920001"
id="connector16pin-4-5"
transform="matrix(1.1710985,0,0,1.1710985,11.348088,84.262082)" /><circle
style="fill:#403619;stroke:#9a916c;stroke-width:1.5"
sodipodi:ry="1.75"
sodipodi:rx="1.75"
sodipodi:cy="4.0910001"
sodipodi:cx="3.4920001"
d="m 5.2420001,4.0910001 c 0,0.9664983 -0.7835017,1.75 -1.75,1.75 -0.9664983,0 -1.75,-0.7835017 -1.75,-1.75 0,-0.9664983 0.7835017,-1.75 1.75,-1.75 0.9664983,0 1.75,0.7835017 1.75,1.75 z"
r="1.75"
cy="4.0910001"
cx="3.4920001"
id="connector16pin-5-7"
transform="matrix(1.1710985,0,0,1.1710985,20.346342,84.262076)" /><circle
style="fill:#403619;stroke:#9a916c;stroke-width:1.5"
sodipodi:ry="1.75"
sodipodi:rx="1.75"
sodipodi:cy="4.0910001"
sodipodi:cx="3.4920001"
d="m 5.2420001,4.0910001 c 0,0.9664983 -0.7835017,1.75 -1.75,1.75 -0.9664983,0 -1.75,-0.7835017 -1.75,-1.75 0,-0.9664983 0.7835017,-1.75 1.75,-1.75 0.9664983,0 1.75,0.7835017 1.75,1.75 z"
r="1.75"
cy="4.0910001"
cx="3.4920001"
id="connector16pin-44-5"
transform="matrix(1.1710985,0,0,1.1710985,29.344596,84.262076)" /><circle
style="fill:#403619;stroke:#9a916c;stroke-width:1.5"
sodipodi:ry="1.75"
sodipodi:rx="1.75"
sodipodi:cy="4.0910001"
sodipodi:cx="3.4920001"
d="m 5.2420001,4.0910001 c 0,0.9664983 -0.7835017,1.75 -1.75,1.75 -0.9664983,0 -1.75,-0.7835017 -1.75,-1.75 0,-0.9664983 0.7835017,-1.75 1.75,-1.75 0.9664983,0 1.75,0.7835017 1.75,1.75 z"
r="1.75"
cy="4.0910001"
cx="3.4920001"
id="connector16pin-2-6"
transform="matrix(1.1710985,0,0,1.1710985,38.358043,84.237246)" /><circle
style="fill:#403619;stroke:#9a916c;stroke-width:1.5"
sodipodi:ry="1.75"
sodipodi:rx="1.75"
sodipodi:cy="4.0910001"
sodipodi:cx="3.4920001"
d="m 5.2420001,4.0910001 c 0,0.9664983 -0.7835017,1.75 -1.75,1.75 -0.9664983,0 -1.75,-0.7835017 -1.75,-1.75 0,-0.9664983 0.7835017,-1.75 1.75,-1.75 0.9664983,0 1.75,0.7835017 1.75,1.75 z"
r="1.75"
cy="4.0910001"
cx="3.4920001"
id="connector16pin-4-6-9"
transform="matrix(1.1710985,0,0,1.1710985,47.325906,84.21128)" /><circle
style="fill:#403619;stroke:#9a916c;stroke-width:1.5"
sodipodi:ry="1.75"
sodipodi:rx="1.75"
sodipodi:cy="4.0910001"
sodipodi:cx="3.4920001"
d="m 5.2420001,4.0910001 c 0,0.9664983 -0.7835017,1.75 -1.75,1.75 -0.9664983,0 -1.75,-0.7835017 -1.75,-1.75 0,-0.9664983 0.7835017,-1.75 1.75,-1.75 0.9664983,0 1.75,0.7835017 1.75,1.75 z"
r="1.75"
cy="4.0910001"
cx="3.4920001"
id="connector16pin-5-9-8"
transform="matrix(1.1710985,0,0,1.1710985,56.399776,84.21127)" /><circle
style="fill:#403619;stroke:#9a916c;stroke-width:1.5"
sodipodi:ry="1.75"
sodipodi:rx="1.75"
sodipodi:cy="4.0910001"
sodipodi:cx="3.4920001"
d="m 5.2420001,4.0910001 c 0,0.9664983 -0.7835017,1.75 -1.75,1.75 -0.9664983,0 -1.75,-0.7835017 -1.75,-1.75 0,-0.9664983 0.7835017,-1.75 1.75,-1.75 0.9664983,0 1.75,0.7835017 1.75,1.75 z"
r="1.75"
cy="4.0910001"
cx="3.4920001"
id="connector16pin-44-6-7-1"
transform="matrix(1.1710985,0,0,1.1710985,74.197554,84.151865)" /><circle
style="fill:#403619;stroke:#9a916c;stroke-width:1.5"
sodipodi:ry="1.75"
sodipodi:rx="1.75"
sodipodi:cy="4.0910001"
sodipodi:cx="3.4920001"
d="m 5.2420001,4.0910001 c 0,0.9664983 -0.7835017,1.75 -1.75,1.75 -0.9664983,0 -1.75,-0.7835017 -1.75,-1.75 0,-0.9664983 0.7835017,-1.75 1.75,-1.75 0.9664983,0 1.75,0.7835017 1.75,1.75 z"
r="1.75"
cy="4.0910001"
cx="3.4920001"
id="connector16pin-44-6-4"
transform="matrix(1.1710985,0,0,1.1710985,74.242959,3.1551722)" /></svg>

After

Width:  |  Height:  |  Size: 16 KiB

View File

@ -0,0 +1,186 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE eagle SYSTEM "eagle.dtd">
<eagle version="8.2.1">
<drawing>
<settings>
<setting alwaysvectorfont="no"/>
<setting verticaltext="up"/>
</settings>
<grid distance="0.1" unitdist="inch" unit="inch" style="lines" multiple="1" display="no" altdistance="0.01" altunitdist="inch" altunit="inch"/>
<layers>
<layer number="1" name="Top" color="4" fill="1" visible="yes" active="yes"/>
<layer number="16" name="Bottom" color="1" fill="1" visible="no" active="yes"/>
<layer number="17" name="Pads" color="2" fill="1" visible="no" active="yes"/>
<layer number="18" name="Vias" color="2" fill="1" visible="no" active="yes"/>
<layer number="19" name="Unrouted" color="6" fill="1" visible="no" active="yes"/>
<layer number="20" name="Dimension" color="15" fill="1" visible="no" active="yes"/>
<layer number="21" name="tPlace" color="7" fill="1" visible="yes" active="yes"/>
<layer number="22" name="bPlace" color="7" fill="1" visible="no" active="yes"/>
<layer number="23" name="tOrigins" color="15" fill="1" visible="no" active="yes"/>
<layer number="24" name="bOrigins" color="15" fill="1" visible="no" active="yes"/>
<layer number="25" name="tNames" color="7" fill="1" visible="yes" active="yes"/>
<layer number="26" name="bNames" color="7" fill="1" visible="no" active="yes"/>
<layer number="27" name="tValues" color="7" fill="1" visible="yes" active="yes"/>
<layer number="28" name="bValues" color="7" fill="1" visible="no" active="yes"/>
<layer number="29" name="tStop" color="7" fill="3" visible="no" active="yes"/>
<layer number="30" name="bStop" color="7" fill="6" visible="no" active="yes"/>
<layer number="31" name="tCream" color="7" fill="4" visible="no" active="yes"/>
<layer number="32" name="bCream" color="7" fill="5" visible="no" active="yes"/>
<layer number="33" name="tFinish" color="6" fill="3" visible="no" active="yes"/>
<layer number="34" name="bFinish" color="6" fill="6" visible="no" active="yes"/>
<layer number="35" name="tGlue" color="7" fill="4" visible="no" active="yes"/>
<layer number="36" name="bGlue" color="7" fill="5" visible="no" active="yes"/>
<layer number="37" name="tTest" color="7" fill="1" visible="no" active="yes"/>
<layer number="38" name="bTest" color="7" fill="1" visible="no" active="yes"/>
<layer number="39" name="tKeepout" color="4" fill="11" visible="yes" active="yes"/>
<layer number="40" name="bKeepout" color="1" fill="11" visible="no" active="yes"/>
<layer number="41" name="tRestrict" color="4" fill="10" visible="yes" active="yes"/>
<layer number="42" name="bRestrict" color="1" fill="10" visible="yes" active="yes"/>
<layer number="43" name="vRestrict" color="2" fill="10" visible="no" active="yes"/>
<layer number="44" name="Drills" color="7" fill="1" visible="no" active="yes"/>
<layer number="45" name="Holes" color="7" fill="1" visible="no" active="yes"/>
<layer number="46" name="Milling" color="3" fill="1" visible="no" active="yes"/>
<layer number="47" name="Measures" color="7" fill="1" visible="no" active="yes"/>
<layer number="48" name="Document" color="7" fill="1" visible="no" active="yes"/>
<layer number="49" name="Reference" color="7" fill="1" visible="no" active="yes"/>
<layer number="51" name="tDocu" color="7" fill="1" visible="no" active="yes"/>
<layer number="52" name="bDocu" color="7" fill="1" visible="no" active="yes"/>
<layer number="91" name="Nets" color="2" fill="1" visible="yes" active="yes"/>
<layer number="92" name="Busses" color="1" fill="1" visible="yes" active="yes"/>
<layer number="93" name="Pins" color="2" fill="1" visible="yes" active="yes"/>
<layer number="94" name="Symbols" color="4" fill="1" visible="yes" active="yes"/>
<layer number="95" name="Names" color="7" fill="1" visible="yes" active="yes"/>
<layer number="96" name="Values" color="7" fill="1" visible="yes" active="yes"/>
<layer number="97" name="Info" color="7" fill="1" visible="yes" active="yes"/>
<layer number="98" name="Guide" color="6" fill="1" visible="yes" active="yes"/>
</layers>
<library>
<packages>
<package name="DWM1000">
<smd name="10" x="-3.5" y="0.205" dx="1" dy="2.45" layer="1" rot="R180"/>
<smd name="9" x="-4.9" y="0.205" dx="1" dy="2.45" layer="1" rot="R180"/>
<smd name="11" x="-2.1" y="0.205" dx="1" dy="2.45" layer="1" rot="R180"/>
<smd name="12" x="-0.7" y="0.205" dx="1" dy="2.45" layer="1" rot="R180"/>
<smd name="13" x="0.7" y="0.205" dx="1" dy="2.45" layer="1" rot="R180"/>
<smd name="14" x="2.1" y="0.205" dx="1" dy="2.45" layer="1" rot="R180"/>
<smd name="15" x="3.5" y="0.205" dx="1" dy="2.45" layer="1" rot="R180"/>
<smd name="16" x="4.9" y="0.205" dx="1" dy="2.45" layer="1" rot="R180"/>
<smd name="8" x="-6.3" y="2.5" dx="1" dy="2.45" layer="1" rot="R270"/>
<smd name="7" x="-6.3" y="3.9" dx="1" dy="2.45" layer="1" rot="R270"/>
<smd name="6" x="-6.3" y="5.3" dx="1" dy="2.45" layer="1" rot="R270"/>
<smd name="5" x="-6.3" y="6.7" dx="1" dy="2.45" layer="1" rot="R270"/>
<smd name="4" x="-6.3" y="8.1" dx="1" dy="2.45" layer="1" rot="R270"/>
<smd name="3" x="-6.3" y="9.5" dx="1" dy="2.45" layer="1" rot="R270"/>
<smd name="17" x="6.3" y="2.5" dx="1" dy="2.45" layer="1" rot="R270"/>
<smd name="18" x="6.3" y="3.9" dx="1" dy="2.45" layer="1" rot="R270"/>
<smd name="19" x="6.3" y="5.3" dx="1" dy="2.45" layer="1" rot="R270"/>
<smd name="20" x="6.3" y="6.7" dx="1" dy="2.45" layer="1" rot="R270"/>
<smd name="21" x="6.3" y="8.1" dx="1" dy="2.45" layer="1" rot="R270"/>
<smd name="23" x="6.3" y="10.9" dx="1" dy="2.45" layer="1" rot="R270"/>
<smd name="22" x="6.3" y="9.5" dx="1" dy="2.45" layer="1" rot="R270"/>
<smd name="2" x="-6.3" y="10.9" dx="1" dy="2.45" layer="1" rot="R270"/>
<smd name="1" x="-6.3" y="12.3" dx="1" dy="2.45" layer="1" rot="R270"/>
<smd name="24" x="6.3" y="12.3" dx="1" dy="2.45" layer="1" rot="R270"/>
<wire x1="-6.5" y1="0" x2="-6.5" y2="23" width="0.127" layer="21"/>
<wire x1="-6.5" y1="23" x2="6.5" y2="23" width="0.127" layer="21"/>
<wire x1="6.5" y1="23" x2="6.5" y2="0" width="0.127" layer="21"/>
<wire x1="6.5" y1="0" x2="-6.5" y2="0" width="0.127" layer="21"/>
<text x="-3.5" y="14.94" size="1.27" layer="25">&gt;NAME</text>
<text x="-3.5" y="20.02" size="1.27" layer="27">&gt;VALUE</text>
<polygon width="0.000128125" layer="41">
<vertex x="-16.1" y="12.925"/>
<vertex x="16.1" y="12.925"/>
<vertex x="16.1" y="27.7"/>
<vertex x="-16.1" y="27.7"/>
</polygon>
<polygon width="0.000128125" layer="42">
<vertex x="-16.1" y="12.925"/>
<vertex x="16.1" y="12.925"/>
<vertex x="16.1" y="27.7"/>
<vertex x="-16.1" y="27.7"/>
</polygon>
</package>
</packages>
<symbols>
<symbol name="DWM1000">
<pin name="EXTON" x="33.02" y="12.7" length="middle" direction="out" rot="R180"/>
<pin name="WAKEUP" x="33.02" y="10.16" length="middle" rot="R180"/>
<pin name="!RST" x="33.02" y="7.62" length="middle" direction="in" rot="R180"/>
<pin name="GPIO7" x="-35.56" y="7.62" length="middle"/>
<pin name="VDDAON" x="2.54" y="20.32" length="middle" rot="R270"/>
<pin name="VDD" x="-5.08" y="20.32" length="middle" direction="pas" rot="R270"/>
<pin name="VSS" x="-7.62" y="-20.32" length="middle" direction="pas" rot="R90"/>
<pin name="VDD@2" x="-7.62" y="20.32" length="middle" direction="pas" rot="R270"/>
<pin name="VSS@2" x="-5.08" y="-20.32" length="middle" direction="pas" rot="R90"/>
<pin name="VSS@3" x="-2.54" y="-20.32" length="middle" direction="pas" rot="R90"/>
<pin name="IRQ/GPIO8" x="-35.56" y="10.16" length="middle"/>
<pin name="VSS@4" x="0" y="-20.32" length="middle" direction="pas" rot="R90"/>
<pin name="SPICLK" x="33.02" y="-5.08" length="middle" direction="in" rot="R180"/>
<pin name="SPIMISO" x="33.02" y="-7.62" length="middle" direction="out" rot="R180"/>
<pin name="SPIMOSI" x="33.02" y="-10.16" length="middle" direction="in" rot="R180"/>
<pin name="!SPICS" x="33.02" y="-12.7" length="middle" direction="in" rot="R180"/>
<pin name="GPIO6" x="-35.56" y="5.08" length="middle"/>
<pin name="GPIO5/SPIPOL" x="-35.56" y="2.54" length="middle"/>
<pin name="GPIO4" x="-35.56" y="0" length="middle"/>
<pin name="GPIO3/TXLED" x="-35.56" y="-2.54" length="middle"/>
<pin name="GPIO2/RXLED" x="-35.56" y="-5.08" length="middle"/>
<pin name="GPIO1/SFDLED" x="-35.56" y="-7.62" length="middle"/>
<pin name="GPIO0/RXOKLED" x="-35.56" y="-10.16" length="middle"/>
<pin name="VSS@5" x="2.54" y="-20.32" length="middle" rot="R90"/>
<wire x1="-30.48" y1="15.24" x2="-30.48" y2="-15.24" width="0.254" layer="94"/>
<wire x1="-30.48" y1="-15.24" x2="27.94" y2="-15.24" width="0.254" layer="94"/>
<wire x1="27.94" y1="-15.24" x2="27.94" y2="15.24" width="0.254" layer="94"/>
<wire x1="27.94" y1="15.24" x2="-30.48" y2="15.24" width="0.254" layer="94"/>
<text x="-5.08" y="-1.27" size="1.27" layer="95">&gt;NAME</text>
<text x="-27.94" y="-19.05" size="1.27" layer="96">&gt;VALUE</text>
</symbol>
</symbols>
<devicesets>
<deviceset name="DWM1000" prefix="U">
<description>The DWM1000 module is based on Decawave's DW1000 Ultra
Wideband (UWB) transceiver IC. It integrates antenna, all RF
circuitry, power management and clock circuitry in one module.
It can be used in 2-way ranging or TDOA location systems to
locate assets to a precision of 10 cm and supports data rates of
up to 6.8 Mbps</description>
<gates>
<gate name="G$1" symbol="DWM1000" x="2.54" y="-17.78"/>
</gates>
<devices>
<device name="" package="DWM1000">
<connects>
<connect gate="G$1" pin="!RST" pad="3"/>
<connect gate="G$1" pin="!SPICS" pad="17"/>
<connect gate="G$1" pin="EXTON" pad="1"/>
<connect gate="G$1" pin="GPIO0/RXOKLED" pad="15"/>
<connect gate="G$1" pin="GPIO1/SFDLED" pad="14"/>
<connect gate="G$1" pin="GPIO2/RXLED" pad="13"/>
<connect gate="G$1" pin="GPIO3/TXLED" pad="12"/>
<connect gate="G$1" pin="GPIO4" pad="11"/>
<connect gate="G$1" pin="GPIO5/SPIPOL" pad="10"/>
<connect gate="G$1" pin="GPIO6" pad="9"/>
<connect gate="G$1" pin="GPIO7" pad="4"/>
<connect gate="G$1" pin="IRQ/GPIO8" pad="22"/>
<connect gate="G$1" pin="SPICLK" pad="20"/>
<connect gate="G$1" pin="SPIMISO" pad="19"/>
<connect gate="G$1" pin="SPIMOSI" pad="18"/>
<connect gate="G$1" pin="VDD" pad="7"/>
<connect gate="G$1" pin="VDD@2" pad="6"/>
<connect gate="G$1" pin="VDDAON" pad="5"/>
<connect gate="G$1" pin="VSS" pad="8"/>
<connect gate="G$1" pin="VSS@2" pad="24"/>
<connect gate="G$1" pin="VSS@3" pad="23"/>
<connect gate="G$1" pin="VSS@4" pad="21"/>
<connect gate="G$1" pin="VSS@5" pad="16"/>
<connect gate="G$1" pin="WAKEUP" pad="2"/>
</connects>
<technologies>
<technology name=""/>
</technologies>
</device>
</devices>
</deviceset>
</devicesets>
</library>
</drawing>
</eagle>

View File

@ -0,0 +1,859 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE eagle SYSTEM "eagle.dtd">
<eagle version="6.2">
<drawing>
<settings>
<setting alwaysvectorfont="no"/>
<setting verticaltext="up"/>
</settings>
<grid distance="0.2" unitdist="mm" unit="mm" style="lines" multiple="1" display="no" altdistance="0.025" altunitdist="inch" altunit="inch"/>
<layers>
<layer number="1" name="Top" color="4" fill="1" visible="yes" active="yes"/>
<layer number="16" name="Bottom" color="1" fill="1" visible="yes" active="yes"/>
<layer number="17" name="Pads" color="2" fill="1" visible="yes" active="yes"/>
<layer number="18" name="Vias" color="2" fill="1" visible="yes" active="yes"/>
<layer number="19" name="Unrouted" color="6" fill="1" visible="yes" active="yes"/>
<layer number="20" name="Dimension" color="15" fill="1" visible="yes" active="yes"/>
<layer number="21" name="tPlace" color="7" fill="1" visible="yes" active="yes"/>
<layer number="22" name="bPlace" color="7" fill="1" visible="yes" active="yes"/>
<layer number="23" name="tOrigins" color="15" fill="1" visible="yes" active="yes"/>
<layer number="24" name="bOrigins" color="15" fill="1" visible="yes" active="yes"/>
<layer number="25" name="tNames" color="7" fill="1" visible="yes" active="yes"/>
<layer number="26" name="bNames" color="7" fill="1" visible="yes" active="yes"/>
<layer number="27" name="tValues" color="7" fill="1" visible="yes" active="yes"/>
<layer number="28" name="bValues" color="7" fill="1" visible="yes" active="yes"/>
<layer number="29" name="tStop" color="7" fill="3" visible="yes" active="yes"/>
<layer number="30" name="bStop" color="7" fill="6" visible="yes" active="yes"/>
<layer number="31" name="tCream" color="7" fill="4" visible="yes" active="yes"/>
<layer number="32" name="bCream" color="7" fill="5" visible="yes" active="yes"/>
<layer number="33" name="tFinish" color="6" fill="3" visible="yes" active="yes"/>
<layer number="34" name="bFinish" color="6" fill="6" visible="yes" active="yes"/>
<layer number="35" name="tGlue" color="7" fill="4" visible="yes" active="yes"/>
<layer number="36" name="bGlue" color="7" fill="5" visible="yes" active="yes"/>
<layer number="37" name="tTest" color="7" fill="1" visible="yes" active="yes"/>
<layer number="38" name="bTest" color="7" fill="1" visible="yes" active="yes"/>
<layer number="39" name="tKeepout" color="4" fill="11" visible="yes" active="yes"/>
<layer number="40" name="bKeepout" color="1" fill="11" visible="yes" active="yes"/>
<layer number="41" name="tRestrict" color="4" fill="10" visible="yes" active="yes"/>
<layer number="42" name="bRestrict" color="1" fill="10" visible="yes" active="yes"/>
<layer number="43" name="vRestrict" color="2" fill="10" visible="yes" active="yes"/>
<layer number="44" name="Drills" color="7" fill="1" visible="yes" active="yes"/>
<layer number="45" name="Holes" color="7" fill="1" visible="yes" active="yes"/>
<layer number="46" name="Milling" color="3" fill="1" visible="yes" active="yes"/>
<layer number="47" name="Measures" color="7" fill="1" visible="yes" active="yes"/>
<layer number="48" name="Document" color="7" fill="1" visible="yes" active="yes"/>
<layer number="49" name="Reference" color="7" fill="1" visible="yes" active="yes"/>
<layer number="50" name="dxf" color="7" fill="1" visible="no" active="no"/>
<layer number="51" name="tDocu" color="7" fill="1" visible="yes" active="yes"/>
<layer number="52" name="bDocu" color="7" fill="1" visible="yes" active="yes"/>
<layer number="53" name="tGND_GNDA" color="7" fill="9" visible="no" active="no"/>
<layer number="54" name="bGND_GNDA" color="1" fill="9" visible="no" active="no"/>
<layer number="56" name="wert" color="7" fill="1" visible="no" active="no"/>
<layer number="91" name="Nets" color="2" fill="1" visible="no" active="no"/>
<layer number="92" name="Busses" color="1" fill="1" visible="no" active="no"/>
<layer number="93" name="Pins" color="2" fill="1" visible="no" active="no"/>
<layer number="94" name="Symbols" color="4" fill="1" visible="no" active="no"/>
<layer number="95" name="Names" color="7" fill="1" visible="no" active="no"/>
<layer number="96" name="Values" color="7" fill="1" visible="no" active="no"/>
<layer number="97" name="Info" color="7" fill="1" visible="no" active="no"/>
<layer number="98" name="Guide" color="6" fill="1" visible="no" active="no"/>
<layer number="100" name="Muster" color="7" fill="1" visible="no" active="no"/>
<layer number="101" name="Patch_Top" color="12" fill="4" visible="yes" active="yes"/>
<layer number="102" name="Vscore" color="7" fill="1" visible="yes" active="yes"/>
<layer number="103" name="tMap" color="7" fill="1" visible="yes" active="yes"/>
<layer number="104" name="Name" color="16" fill="1" visible="yes" active="yes"/>
<layer number="105" name="tPlate" color="7" fill="1" visible="yes" active="yes"/>
<layer number="106" name="bPlate" color="7" fill="1" visible="yes" active="yes"/>
<layer number="107" name="Crop" color="7" fill="1" visible="yes" active="yes"/>
<layer number="116" name="Patch_BOT" color="9" fill="4" visible="yes" active="yes"/>
<layer number="121" name="_tsilk" color="7" fill="1" visible="yes" active="yes"/>
<layer number="122" name="_bsilk" color="7" fill="1" visible="yes" active="yes"/>
<layer number="125" name="_tNames" color="7" fill="1" visible="yes" active="yes"/>
<layer number="144" name="Drill_legend" color="7" fill="1" visible="yes" active="yes"/>
<layer number="151" name="HeatSink" color="7" fill="1" visible="yes" active="yes"/>
<layer number="200" name="200bmp" color="1" fill="10" visible="yes" active="yes"/>
<layer number="201" name="201bmp" color="2" fill="10" visible="yes" active="yes"/>
<layer number="202" name="202bmp" color="3" fill="10" visible="yes" active="yes"/>
<layer number="203" name="203bmp" color="4" fill="10" visible="yes" active="yes"/>
<layer number="204" name="204bmp" color="5" fill="10" visible="yes" active="yes"/>
<layer number="205" name="205bmp" color="6" fill="10" visible="yes" active="yes"/>
<layer number="206" name="206bmp" color="7" fill="10" visible="yes" active="yes"/>
<layer number="207" name="207bmp" color="8" fill="10" visible="yes" active="yes"/>
<layer number="208" name="208bmp" color="9" fill="10" visible="yes" active="yes"/>
<layer number="209" name="209bmp" color="7" fill="1" visible="yes" active="yes"/>
<layer number="210" name="210bmp" color="7" fill="1" visible="yes" active="yes"/>
<layer number="211" name="211bmp" color="7" fill="1" visible="yes" active="yes"/>
<layer number="212" name="212bmp" color="7" fill="1" visible="yes" active="yes"/>
<layer number="213" name="213bmp" color="7" fill="1" visible="yes" active="yes"/>
<layer number="214" name="214bmp" color="7" fill="1" visible="yes" active="yes"/>
<layer number="215" name="215bmp" color="7" fill="1" visible="yes" active="yes"/>
<layer number="216" name="216bmp" color="7" fill="1" visible="yes" active="yes"/>
<layer number="217" name="217bmp" color="18" fill="1" visible="no" active="no"/>
<layer number="218" name="218bmp" color="19" fill="1" visible="no" active="no"/>
<layer number="219" name="219bmp" color="20" fill="1" visible="no" active="no"/>
<layer number="220" name="220bmp" color="21" fill="1" visible="no" active="no"/>
<layer number="221" name="221bmp" color="22" fill="1" visible="no" active="no"/>
<layer number="222" name="222bmp" color="23" fill="1" visible="no" active="no"/>
<layer number="223" name="223bmp" color="24" fill="1" visible="no" active="no"/>
<layer number="224" name="224bmp" color="25" fill="1" visible="no" active="no"/>
<layer number="250" name="Descript" color="3" fill="1" visible="no" active="no"/>
<layer number="251" name="SMDround" color="12" fill="11" visible="no" active="no"/>
<layer number="254" name="cooling" color="7" fill="1" visible="yes" active="yes"/>
</layers>
<board>
<plain>
<wire x1="2.2" y1="0" x2="34.6" y2="0" width="0" layer="20"/>
<wire x1="34.6" y1="0" x2="34.6" y2="47.4" width="0" layer="20"/>
<wire x1="34.6" y1="47.4" x2="2.2" y2="47.4" width="0" layer="20"/>
<wire x1="2.2" y1="47.4" x2="2.2" y2="0" width="0" layer="20"/>
<rectangle x1="5.4" y1="17.4" x2="7.4" y2="21.2" layer="1"/>
<rectangle x1="29.1" y1="32.5" x2="31.1" y2="36.3" layer="1" rot="R90"/>
</plain>
<libraries>
<library name="SparkFun">
<description>&lt;h3&gt;SparkFun Electronics' preferred foot prints&lt;/h3&gt;
We've spent an enormous amount of time creating and checking these footprints and parts. If you enjoy using this library, please buy one of our products at www.sparkfun.com.
&lt;br&gt;&lt;br&gt;
&lt;b&gt;Licensing:&lt;/b&gt; CC v3.0 Share-Alike You are welcome to use this library for commercial purposes. For attribution, we ask that when you begin to sell your device using our footprint, you email us with a link to the product being sold. We want bragging rights that we helped (in a very small part) to create your 8th world wonder. We would like the opportunity to feature your device on our homepage.</description>
<packages>
<package name="SOT223">
<description>&lt;b&gt;SOT-223&lt;/b&gt;</description>
<wire x1="3.2766" y1="1.651" x2="3.2766" y2="-1.651" width="0.2032" layer="21"/>
<wire x1="3.2766" y1="-1.651" x2="-3.2766" y2="-1.651" width="0.2032" layer="21"/>
<wire x1="-3.2766" y1="-1.651" x2="-3.2766" y2="1.651" width="0.2032" layer="21"/>
<wire x1="-3.2766" y1="1.651" x2="3.2766" y2="1.651" width="0.2032" layer="21"/>
<smd name="1" x="-2.3114" y="-3.0988" dx="1.2192" dy="2.2352" layer="1"/>
<smd name="2" x="0" y="-3.0988" dx="1.2192" dy="2.2352" layer="1"/>
<smd name="3" x="2.3114" y="-3.0988" dx="1.2192" dy="2.2352" layer="1"/>
<smd name="4" x="0" y="3.099" dx="3.6" dy="2.2" layer="1"/>
<text x="-0.8255" y="4.5085" size="0.4064" layer="25">&gt;NAME</text>
<text x="-1.0795" y="-0.1905" size="0.4064" layer="27">&gt;VALUE</text>
<rectangle x1="-1.6002" y1="1.8034" x2="1.6002" y2="3.6576" layer="51"/>
<rectangle x1="-0.4318" y1="-3.6576" x2="0.4318" y2="-1.8034" layer="51"/>
<rectangle x1="-2.7432" y1="-3.6576" x2="-1.8796" y2="-1.8034" layer="51"/>
<rectangle x1="1.8796" y1="-3.6576" x2="2.7432" y2="-1.8034" layer="51"/>
<rectangle x1="-1.6002" y1="1.8034" x2="1.6002" y2="3.6576" layer="51"/>
<rectangle x1="-0.4318" y1="-3.6576" x2="0.4318" y2="-1.8034" layer="51"/>
<rectangle x1="-2.7432" y1="-3.6576" x2="-1.8796" y2="-1.8034" layer="51"/>
<rectangle x1="1.8796" y1="-3.6576" x2="2.7432" y2="-1.8034" layer="51"/>
</package>
<package name="EIA3528-KIT">
<description>&lt;h3&gt;EIA3528-KIT&lt;/h3&gt;
&lt;b&gt;Warning:&lt;/b&gt; This is the KIT version of this package. This package has longer pads to make hand soldering easier.&lt;br&gt;</description>
<wire x1="-0.9" y1="-1.6" x2="-3.1" y2="-1.6" width="0.2032" layer="21"/>
<wire x1="-3.1" y1="-1.6" x2="-3.1" y2="1.55" width="0.2032" layer="21"/>
<wire x1="-3.1" y1="1.55" x2="-0.9" y2="1.55" width="0.2032" layer="21"/>
<wire x1="1" y1="-1.55" x2="2.7" y2="-1.55" width="0.2032" layer="21"/>
<wire x1="2.7" y1="-1.55" x2="3.1" y2="-1.2" width="0.2032" layer="21"/>
<wire x1="3.1" y1="-1.2" x2="3.1" y2="1.25" width="0.2032" layer="21"/>
<wire x1="3.1" y1="1.25" x2="2.7" y2="1.55" width="0.2032" layer="21"/>
<wire x1="2.7" y1="1.55" x2="1" y2="1.55" width="0.2032" layer="21"/>
<wire x1="0.609" y1="1.311" x2="0.609" y2="-1.286" width="0.4" layer="21" style="longdash"/>
<smd name="C" x="-1.9" y="0" dx="1.7" dy="2.5" layer="1"/>
<smd name="A" x="1.9" y="0" dx="1.7" dy="2.5" layer="1"/>
<text x="-2.27" y="-1.27" size="1.27" layer="25" rot="R90">&gt;NAME</text>
<text x="3.24" y="-1.37" size="1.27" layer="27" rot="R90">&gt;VALUE</text>
</package>
<package name="0805">
<wire x1="-0.3" y1="0.6" x2="0.3" y2="0.6" width="0.1524" layer="21"/>
<wire x1="-0.3" y1="-0.6" x2="0.3" y2="-0.6" width="0.1524" layer="21"/>
<smd name="1" x="-0.9" y="0" dx="0.8" dy="1.2" layer="1"/>
<smd name="2" x="0.9" y="0" dx="0.8" dy="1.2" layer="1"/>
<text x="-0.762" y="0.8255" size="0.4064" layer="25">&gt;NAME</text>
<text x="-1.016" y="-1.397" size="0.4064" layer="27">&gt;VALUE</text>
</package>
<package name="LUXEON-PAD">
<smd name="P$1" x="0" y="0" dx="3.9" dy="2.4" layer="1" roundness="25"/>
<text x="-1.5" y="2" size="1.27" layer="25" ratio="10">&gt;NAME</text>
<text x="-1.5" y="-3" size="1.27" layer="27">&gt;VALUE</text>
</package>
<package name="TQFP32-08">
<description>&lt;B&gt;Thin Plasic Quad Flat Package&lt;/B&gt; Grid 0.8 mm</description>
<wire x1="3.505" y1="3.505" x2="3.505" y2="-3.505" width="0.1524" layer="21"/>
<wire x1="3.505" y1="-3.505" x2="-3.505" y2="-3.505" width="0.1524" layer="21"/>
<wire x1="-3.505" y1="-3.505" x2="-3.505" y2="3.15" width="0.1524" layer="21"/>
<wire x1="-3.15" y1="3.505" x2="3.505" y2="3.505" width="0.1524" layer="21"/>
<wire x1="-3.15" y1="3.505" x2="-3.505" y2="3.15" width="0.1524" layer="21"/>
<circle x="-2.7432" y="2.7432" radius="0.3592" width="0.1524" layer="21"/>
<smd name="1" x="-4.2926" y="2.8" dx="1.27" dy="0.5588" layer="1"/>
<smd name="2" x="-4.2926" y="2" dx="1.27" dy="0.5588" layer="1"/>
<smd name="3" x="-4.2926" y="1.2" dx="1.27" dy="0.5588" layer="1"/>
<smd name="4" x="-4.2926" y="0.4" dx="1.27" dy="0.5588" layer="1"/>
<smd name="5" x="-4.2926" y="-0.4" dx="1.27" dy="0.5588" layer="1"/>
<smd name="6" x="-4.2926" y="-1.2" dx="1.27" dy="0.5588" layer="1"/>
<smd name="7" x="-4.2926" y="-2" dx="1.27" dy="0.5588" layer="1"/>
<smd name="8" x="-4.2926" y="-2.8" dx="1.27" dy="0.5588" layer="1"/>
<smd name="9" x="-2.8" y="-4.2926" dx="0.5588" dy="1.27" layer="1"/>
<smd name="10" x="-2" y="-4.2926" dx="0.5588" dy="1.27" layer="1"/>
<smd name="11" x="-1.2" y="-4.2926" dx="0.5588" dy="1.27" layer="1"/>
<smd name="12" x="-0.4" y="-4.2926" dx="0.5588" dy="1.27" layer="1"/>
<smd name="13" x="0.4" y="-4.2926" dx="0.5588" dy="1.27" layer="1"/>
<smd name="14" x="1.2" y="-4.2926" dx="0.5588" dy="1.27" layer="1"/>
<smd name="15" x="2" y="-4.2926" dx="0.5588" dy="1.27" layer="1"/>
<smd name="16" x="2.8" y="-4.2926" dx="0.5588" dy="1.27" layer="1"/>
<smd name="17" x="4.2926" y="-2.8" dx="1.27" dy="0.5588" layer="1"/>
<smd name="18" x="4.2926" y="-2" dx="1.27" dy="0.5588" layer="1"/>
<smd name="19" x="4.2926" y="-1.2" dx="1.27" dy="0.5588" layer="1"/>
<smd name="20" x="4.2926" y="-0.4" dx="1.27" dy="0.5588" layer="1"/>
<smd name="21" x="4.2926" y="0.4" dx="1.27" dy="0.5588" layer="1"/>
<smd name="22" x="4.2926" y="1.2" dx="1.27" dy="0.5588" layer="1"/>
<smd name="23" x="4.2926" y="2" dx="1.27" dy="0.5588" layer="1"/>
<smd name="24" x="4.2926" y="2.8" dx="1.27" dy="0.5588" layer="1"/>
<smd name="25" x="2.8" y="4.2926" dx="0.5588" dy="1.27" layer="1"/>
<smd name="26" x="2" y="4.2926" dx="0.5588" dy="1.27" layer="1"/>
<smd name="27" x="1.2" y="4.2926" dx="0.5588" dy="1.27" layer="1"/>
<smd name="28" x="0.4" y="4.2926" dx="0.5588" dy="1.27" layer="1"/>
<smd name="29" x="-0.4" y="4.2926" dx="0.5588" dy="1.27" layer="1"/>
<smd name="30" x="-1.2" y="4.2926" dx="0.5588" dy="1.27" layer="1"/>
<smd name="31" x="-2" y="4.2926" dx="0.5588" dy="1.27" layer="1"/>
<smd name="32" x="-2.8" y="4.2926" dx="0.5588" dy="1.27" layer="1"/>
<text x="-3.175" y="5.08" size="0.4064" layer="25">&gt;NAME</text>
<text x="-2.54" y="-6.35" size="0.4064" layer="27">&gt;VALUE</text>
<rectangle x1="-4.5466" y1="2.5714" x2="-3.556" y2="3.0286" layer="51"/>
<rectangle x1="-4.5466" y1="1.7714" x2="-3.556" y2="2.2286" layer="51"/>
<rectangle x1="-4.5466" y1="0.9714" x2="-3.556" y2="1.4286" layer="51"/>
<rectangle x1="-4.5466" y1="0.1714" x2="-3.556" y2="0.6286" layer="51"/>
<rectangle x1="-4.5466" y1="-0.6286" x2="-3.556" y2="-0.1714" layer="51"/>
<rectangle x1="-4.5466" y1="-1.4286" x2="-3.556" y2="-0.9714" layer="51"/>
<rectangle x1="-4.5466" y1="-2.2286" x2="-3.556" y2="-1.7714" layer="51"/>
<rectangle x1="-4.5466" y1="-3.0286" x2="-3.556" y2="-2.5714" layer="51"/>
<rectangle x1="-3.0286" y1="-4.5466" x2="-2.5714" y2="-3.556" layer="51"/>
<rectangle x1="-2.2286" y1="-4.5466" x2="-1.7714" y2="-3.556" layer="51"/>
<rectangle x1="-1.4286" y1="-4.5466" x2="-0.9714" y2="-3.556" layer="51"/>
<rectangle x1="-0.6286" y1="-4.5466" x2="-0.1714" y2="-3.556" layer="51"/>
<rectangle x1="0.1714" y1="-4.5466" x2="0.6286" y2="-3.556" layer="51"/>
<rectangle x1="0.9714" y1="-4.5466" x2="1.4286" y2="-3.556" layer="51"/>
<rectangle x1="1.7714" y1="-4.5466" x2="2.2286" y2="-3.556" layer="51"/>
<rectangle x1="2.5714" y1="-4.5466" x2="3.0286" y2="-3.556" layer="51"/>
<rectangle x1="3.556" y1="-3.0286" x2="4.5466" y2="-2.5714" layer="51"/>
<rectangle x1="3.556" y1="-2.2286" x2="4.5466" y2="-1.7714" layer="51"/>
<rectangle x1="3.556" y1="-1.4286" x2="4.5466" y2="-0.9714" layer="51"/>
<rectangle x1="3.556" y1="-0.6286" x2="4.5466" y2="-0.1714" layer="51"/>
<rectangle x1="3.556" y1="0.1714" x2="4.5466" y2="0.6286" layer="51"/>
<rectangle x1="3.556" y1="0.9714" x2="4.5466" y2="1.4286" layer="51"/>
<rectangle x1="3.556" y1="1.7714" x2="4.5466" y2="2.2286" layer="51"/>
<rectangle x1="3.556" y1="2.5714" x2="4.5466" y2="3.0286" layer="51"/>
<rectangle x1="2.5714" y1="3.556" x2="3.0286" y2="4.5466" layer="51"/>
<rectangle x1="1.7714" y1="3.556" x2="2.2286" y2="4.5466" layer="51"/>
<rectangle x1="0.9714" y1="3.556" x2="1.4286" y2="4.5466" layer="51"/>
<rectangle x1="0.1714" y1="3.556" x2="0.6286" y2="4.5466" layer="51"/>
<rectangle x1="-0.6286" y1="3.556" x2="-0.1714" y2="4.5466" layer="51"/>
<rectangle x1="-1.4286" y1="3.556" x2="-0.9714" y2="4.5466" layer="51"/>
<rectangle x1="-2.2286" y1="3.556" x2="-1.7714" y2="4.5466" layer="51"/>
<rectangle x1="-3.0286" y1="3.556" x2="-2.5714" y2="4.5466" layer="51"/>
</package>
<package name="USB-MICROB">
<description>Micro USB Package</description>
<wire x1="-3.4" y1="-2.15" x2="-3" y2="-2.15" width="0.127" layer="51"/>
<wire x1="3" y1="-2.15" x2="3.4" y2="-2.15" width="0.127" layer="51"/>
<wire x1="-3.4" y1="-2.15" x2="-3.4" y2="-1.45" width="0.127" layer="51"/>
<wire x1="-3.4" y1="-1.45" x2="-3.4" y2="2.85" width="0.127" layer="51"/>
<wire x1="3.4" y1="2.85" x2="2.2" y2="2.85" width="0.127" layer="51"/>
<wire x1="3.4" y1="2.85" x2="3.4" y2="-1.45" width="0.127" layer="51"/>
<wire x1="3.4" y1="-1.45" x2="3.4" y2="-2.15" width="0.127" layer="51"/>
<wire x1="-3.4" y1="-1.45" x2="3.4" y2="-1.45" width="0.127" layer="51"/>
<wire x1="-3.4" y1="1.25" x2="-3.4" y2="2.85" width="0.2032" layer="21"/>
<wire x1="-3.4" y1="2.85" x2="-2.2" y2="2.85" width="0.2032" layer="21"/>
<wire x1="3.4" y1="2.85" x2="2.2" y2="2.85" width="0.2032" layer="21"/>
<wire x1="3.4" y1="1.25" x2="3.4" y2="2.85" width="0.2032" layer="21"/>
<wire x1="-3.4" y1="-1.45" x2="3.4" y2="-1.45" width="0.2032" layer="21"/>
<wire x1="-2.2" y1="1.45" x2="2.2" y2="1.45" width="0.127" layer="51"/>
<wire x1="2.2" y1="1.45" x2="2.2" y2="2.85" width="0.127" layer="51"/>
<wire x1="-2.2" y1="1.45" x2="-2.2" y2="2.85" width="0.127" layer="51"/>
<wire x1="-3.4" y1="2.85" x2="-2.2" y2="2.85" width="0.127" layer="51"/>
<wire x1="-2.2" y1="2.85" x2="-2.2" y2="1.45" width="0.2032" layer="21"/>
<wire x1="-2.2" y1="1.45" x2="2.2" y2="1.45" width="0.2032" layer="21"/>
<wire x1="2.2" y1="1.45" x2="2.2" y2="2.85" width="0.2032" layer="21"/>
<wire x1="-3.4" y1="-2.15" x2="-4" y2="-2.75" width="0.2032" layer="51"/>
<wire x1="3.4" y1="-2.15" x2="4" y2="-2.75" width="0.2032" layer="51"/>
<wire x1="-3" y1="-2.15" x2="-3" y2="-2.55" width="0.127" layer="51"/>
<wire x1="-2.8" y1="-2.8" x2="2.75" y2="-2.8" width="0.127" layer="51"/>
<wire x1="3" y1="-2.6" x2="3" y2="-2.15" width="0.127" layer="51"/>
<wire x1="-3" y1="-2.55" x2="-2.8" y2="-2.8" width="0.127" layer="51" curve="84.547378"/>
<wire x1="2.75" y1="-2.8" x2="3" y2="-2.6" width="0.127" layer="51" curve="84.547378"/>
<smd name="VBUS" x="-1.3" y="2.65" dx="1.4" dy="0.35" layer="1" rot="R90"/>
<smd name="GND" x="1.3" y="2.65" dx="1.4" dy="0.35" layer="1" rot="R90"/>
<smd name="D-" x="-0.65" y="2.65" dx="1.4" dy="0.35" layer="1" rot="R90"/>
<smd name="D+" x="0" y="2.65" dx="1.4" dy="0.35" layer="1" rot="R90"/>
<smd name="ID" x="0.65" y="2.65" dx="1.4" dy="0.35" layer="1" rot="R90"/>
<smd name="MT1" x="-4" y="0" dx="1.8" dy="1.9" layer="1"/>
<smd name="MT2" x="4" y="0" dx="1.8" dy="1.9" layer="1"/>
<text x="-1.6" y="-0.35" size="0.762" layer="25">&gt;NAME</text>
<text x="-1.905" y="-3.175" size="0.762" layer="27">&gt;VALUE</text>
</package>
</packages>
</library>
<library name="DWM1000">
<packages>
<package name="DWM1000">
<smd name="GPIO5" x="0" y="0" dx="1" dy="2.45" layer="1" rot="R180"/>
<smd name="GPIO6" x="-1.4" y="0" dx="1" dy="2.45" layer="1" rot="R180"/>
<smd name="GPIO4" x="1.4" y="0" dx="1" dy="2.45" layer="1" rot="R180"/>
<smd name="GPIO3" x="2.8" y="0" dx="1" dy="2.45" layer="1" rot="R180"/>
<smd name="GPIO2" x="4.2" y="0" dx="1" dy="2.45" layer="1" rot="R180"/>
<smd name="GPIO1" x="5.6" y="0" dx="1" dy="2.45" layer="1" rot="R180"/>
<smd name="GPIO0" x="7" y="0" dx="1" dy="2.45" layer="1" rot="R180"/>
<smd name="VSS.5" x="8.4" y="0" dx="1" dy="2.45" layer="1" rot="R180"/>
<smd name="VSS" x="-2.8" y="2.8" dx="1" dy="2.45" layer="1" rot="R270"/>
<smd name="VDD3V3" x="-2.8" y="4.2" dx="1" dy="2.45" layer="1" rot="R270"/>
<smd name="VDD3V3.2" x="-2.8" y="5.6" dx="1" dy="2.45" layer="1" rot="R270"/>
<smd name="VDDAON" x="-2.8" y="7" dx="1" dy="2.45" layer="1" rot="R270"/>
<smd name="GPIO7" x="-2.8" y="8.4" dx="1" dy="2.45" layer="1" rot="R270"/>
<smd name="RST" x="-2.8" y="9.8" dx="1" dy="2.45" layer="1" rot="R270"/>
<smd name="SPICSN" x="9.8" y="2.8" dx="1" dy="2.45" layer="1" rot="R270"/>
<smd name="SPIMOSI" x="9.8" y="4.2" dx="1" dy="2.45" layer="1" rot="R270"/>
<smd name="SPIMISO" x="9.8" y="5.6" dx="1" dy="2.45" layer="1" rot="R270"/>
<smd name="SPICLK" x="9.8" y="7" dx="1" dy="2.45" layer="1" rot="R270"/>
<smd name="VSS.4" x="9.8" y="8.4" dx="1" dy="2.45" layer="1" rot="R270"/>
<smd name="VSS.3" x="9.8" y="11.2" dx="1" dy="2.45" layer="1" rot="R270"/>
<smd name="IRQ/GPIO8" x="9.8" y="9.8" dx="1" dy="2.45" layer="1" rot="R270"/>
<smd name="WAKEUP" x="-2.8" y="11.2" dx="1" dy="2.45" layer="1" rot="R270"/>
<smd name="EXTON" x="-2.8" y="12.6" dx="1" dy="2.45" layer="1" rot="R270"/>
<smd name="VSS.2" x="9.8" y="12.6" dx="1" dy="2.45" layer="1" rot="R270"/>
<smd name="GND" x="3.5" y="7.5" dx="9" dy="11" layer="1"/>
<text x="0" y="15.24" size="1.27" layer="21">DW1000</text>
<wire x1="-3" y1="0" x2="-3" y2="23" width="0.127" layer="21"/>
<wire x1="-3" y1="23" x2="10" y2="23" width="0.127" layer="21"/>
<wire x1="10" y1="23" x2="10" y2="0" width="0.127" layer="21"/>
<wire x1="10" y1="0" x2="-3" y2="0" width="0.127" layer="21"/>
</package>
</packages>
</library>
</libraries>
<attributes>
</attributes>
<variantdefs>
</variantdefs>
<classes>
<class number="0" name="default" width="0" drill="0">
</class>
</classes>
<designrules>
<description language="de">&lt;b&gt;EAGLE Design Rules&lt;/b&gt;
&lt;p&gt;
Die Standard-Design-Rules sind so gewählt, dass sie für
die meisten Anwendungen passen. Sollte ihre Platine
besondere Anforderungen haben, treffen Sie die erforderlichen
Einstellungen hier und speichern die Design Rules unter
einem neuen Namen ab.</description>
<description language="en">&lt;b&gt;EAGLE Design Rules&lt;/b&gt;
&lt;p&gt;
The default Design Rules have been set to cover
a wide range of applications. Your particular design
may have different requirements, so please make the
necessary adjustments and save your customized
design rules under a new name.</description>
<param name="layerSetup" value="(1*16)"/>
<param name="mtCopper" value="0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm"/>
<param name="mtIsolate" value="1.5mm 0.15mm 0.2mm 0.15mm 0.2mm 0.15mm 0.2mm 0.15mm 0.2mm 0.15mm 0.2mm 0.15mm 0.2mm 0.15mm 0.2mm"/>
<param name="mdWireWire" value="8mil"/>
<param name="mdWirePad" value="8mil"/>
<param name="mdWireVia" value="8mil"/>
<param name="mdPadPad" value="8mil"/>
<param name="mdPadVia" value="8mil"/>
<param name="mdViaVia" value="8mil"/>
<param name="mdSmdPad" value="8mil"/>
<param name="mdSmdVia" value="8mil"/>
<param name="mdSmdSmd" value="8mil"/>
<param name="mdViaViaSameLayer" value="8mil"/>
<param name="mnLayersViaInSmd" value="2"/>
<param name="mdCopperDimension" value="40mil"/>
<param name="mdDrill" value="8mil"/>
<param name="mdSmdStop" value="0mil"/>
<param name="msWidth" value="10mil"/>
<param name="msDrill" value="24mil"/>
<param name="msMicroVia" value="9.99mm"/>
<param name="msBlindViaRatio" value="0.5"/>
<param name="rvPadTop" value="0.25"/>
<param name="rvPadInner" value="0.25"/>
<param name="rvPadBottom" value="0.25"/>
<param name="rvViaOuter" value="0.25"/>
<param name="rvViaInner" value="0.25"/>
<param name="rvMicroViaOuter" value="0.25"/>
<param name="rvMicroViaInner" value="0.25"/>
<param name="rlMinPadTop" value="10mil"/>
<param name="rlMaxPadTop" value="20mil"/>
<param name="rlMinPadInner" value="10mil"/>
<param name="rlMaxPadInner" value="20mil"/>
<param name="rlMinPadBottom" value="10mil"/>
<param name="rlMaxPadBottom" value="20mil"/>
<param name="rlMinViaOuter" value="8mil"/>
<param name="rlMaxViaOuter" value="20mil"/>
<param name="rlMinViaInner" value="8mil"/>
<param name="rlMaxViaInner" value="20mil"/>
<param name="rlMinMicroViaOuter" value="4mil"/>
<param name="rlMaxMicroViaOuter" value="20mil"/>
<param name="rlMinMicroViaInner" value="4mil"/>
<param name="rlMaxMicroViaInner" value="20mil"/>
<param name="psTop" value="-1"/>
<param name="psBottom" value="-1"/>
<param name="psFirst" value="-1"/>
<param name="psElongationLong" value="100"/>
<param name="psElongationOffset" value="100"/>
<param name="mvStopFrame" value="1"/>
<param name="mvCreamFrame" value="0"/>
<param name="mlMinStopFrame" value="4mil"/>
<param name="mlMaxStopFrame" value="4mil"/>
<param name="mlMinCreamFrame" value="0mil"/>
<param name="mlMaxCreamFrame" value="0mil"/>
<param name="mlViaStopLimit" value="0mil"/>
<param name="srRoundness" value="0"/>
<param name="srMinRoundness" value="0mil"/>
<param name="srMaxRoundness" value="0mil"/>
<param name="slThermalIsolate" value="10mil"/>
<param name="slThermalsForVias" value="0"/>
<param name="dpMaxLengthDifference" value="10mm"/>
<param name="dpGapFactor" value="2.5"/>
<param name="checkGrid" value="0"/>
<param name="checkAngle" value="0"/>
<param name="checkFont" value="1"/>
<param name="checkRestrict" value="1"/>
<param name="useDiameter" value="13"/>
<param name="maxErrors" value="50"/>
</designrules>
<autorouter>
<pass name="Default">
<param name="RoutingGrid" value="50mil"/>
<param name="tpViaShape" value="round"/>
<param name="PrefDir.1" value="|"/>
<param name="PrefDir.2" value="0"/>
<param name="PrefDir.3" value="0"/>
<param name="PrefDir.4" value="0"/>
<param name="PrefDir.5" value="0"/>
<param name="PrefDir.6" value="0"/>
<param name="PrefDir.7" value="0"/>
<param name="PrefDir.8" value="0"/>
<param name="PrefDir.9" value="0"/>
<param name="PrefDir.10" value="0"/>
<param name="PrefDir.11" value="0"/>
<param name="PrefDir.12" value="0"/>
<param name="PrefDir.13" value="0"/>
<param name="PrefDir.14" value="0"/>
<param name="PrefDir.15" value="0"/>
<param name="PrefDir.16" value="-"/>
<param name="cfVia" value="8"/>
<param name="cfNonPref" value="5"/>
<param name="cfChangeDir" value="2"/>
<param name="cfOrthStep" value="2"/>
<param name="cfDiagStep" value="3"/>
<param name="cfExtdStep" value="0"/>
<param name="cfBonusStep" value="1"/>
<param name="cfMalusStep" value="1"/>
<param name="cfPadImpact" value="4"/>
<param name="cfSmdImpact" value="4"/>
<param name="cfBusImpact" value="0"/>
<param name="cfHugging" value="3"/>
<param name="cfAvoid" value="4"/>
<param name="cfPolygon" value="10"/>
<param name="cfBase.1" value="0"/>
<param name="cfBase.2" value="1"/>
<param name="cfBase.3" value="1"/>
<param name="cfBase.4" value="1"/>
<param name="cfBase.5" value="1"/>
<param name="cfBase.6" value="1"/>
<param name="cfBase.7" value="1"/>
<param name="cfBase.8" value="1"/>
<param name="cfBase.9" value="1"/>
<param name="cfBase.10" value="1"/>
<param name="cfBase.11" value="1"/>
<param name="cfBase.12" value="1"/>
<param name="cfBase.13" value="1"/>
<param name="cfBase.14" value="1"/>
<param name="cfBase.15" value="1"/>
<param name="cfBase.16" value="0"/>
<param name="mnVias" value="20"/>
<param name="mnSegments" value="9999"/>
<param name="mnExtdSteps" value="9999"/>
<param name="mnRipupLevel" value="10"/>
<param name="mnRipupSteps" value="100"/>
<param name="mnRipupTotal" value="100"/>
</pass>
<pass name="Follow-me" refer="Default" active="yes">
</pass>
<pass name="Busses" refer="Default" active="yes">
<param name="cfNonPref" value="4"/>
<param name="cfBusImpact" value="4"/>
<param name="cfHugging" value="0"/>
<param name="mnVias" value="0"/>
</pass>
<pass name="Route" refer="Default" active="yes">
</pass>
<pass name="Optimize1" refer="Default" active="yes">
<param name="cfVia" value="99"/>
<param name="cfExtdStep" value="10"/>
<param name="cfHugging" value="1"/>
<param name="mnExtdSteps" value="1"/>
<param name="mnRipupLevel" value="0"/>
</pass>
<pass name="Optimize2" refer="Optimize1" active="yes">
<param name="cfNonPref" value="0"/>
<param name="cfChangeDir" value="6"/>
<param name="cfExtdStep" value="0"/>
<param name="cfBonusStep" value="2"/>
<param name="cfMalusStep" value="2"/>
<param name="cfPadImpact" value="2"/>
<param name="cfSmdImpact" value="2"/>
<param name="cfHugging" value="0"/>
</pass>
<pass name="Optimize3" refer="Optimize2" active="yes">
<param name="cfChangeDir" value="8"/>
<param name="cfPadImpact" value="0"/>
<param name="cfSmdImpact" value="0"/>
</pass>
<pass name="Optimize4" refer="Optimize3" active="yes">
<param name="cfChangeDir" value="25"/>
</pass>
</autorouter>
<elements>
<element name="IC1" library="SparkFun" package="SOT223" value="" x="23.87" y="19.97"/>
<element name="C1" library="SparkFun" package="EIA3528-KIT" value="" x="24.08" y="11.4" rot="R269.9"/>
<element name="C2" library="SparkFun" package="EIA3528-KIT" value="" x="30.58" y="18.74" rot="R180"/>
<element name="R1" library="SparkFun" package="0805" value="" x="5.82" y="25.06" rot="R90"/>
<element name="JP1" library="SparkFun" package="LUXEON-PAD" value="M01SMD" x="6.62" y="13.36"/>
<element name="U2" library="SparkFun" package="TQFP32-08" value="ATMEGA168" x="16.91" y="11.43"/>
<element name="JP2" library="SparkFun" package="LUXEON-PAD" value="M01SMD" x="6.62" y="10.15"/>
<element name="JP3" library="SparkFun" package="LUXEON-PAD" value="M01SMD" x="17.25" y="19.25" rot="R90"/>
<element name="JP4" library="SparkFun" package="LUXEON-PAD" value="M01SMD" x="9.49" y="19.22" rot="R90"/>
<element name="JP5" library="SparkFun" package="LUXEON-PAD" value="M01SMD" x="13.28" y="19.22" rot="R270"/>
<element name="R2" library="SparkFun" package="0805" value="" x="25.45" y="35.1" rot="R270"/>
<element name="JP7" library="SparkFun" package="LUXEON-PAD" value="M01SMD" x="20.8" y="2.6" rot="R90"/>
<element name="JP8" library="SparkFun" package="LUXEON-PAD" value="M01SMD" x="16.6" y="2.6" rot="R90"/>
<element name="JP9" library="SparkFun" package="LUXEON-PAD" value="M01SMD" x="12.4" y="2.6" rot="R90"/>
<element name="JP6" library="SparkFun" package="LUXEON-PAD" value="M01SMD" x="24.4" y="2.6" rot="R90"/>
<element name="JP10" library="SparkFun" package="LUXEON-PAD" value="M01SMD" x="25.4" y="31.8"/>
<element name="JP11" library="SparkFun" package="LUXEON-PAD" value="M01SMD" x="30.4" y="29.6" rot="R180"/>
<element name="JP12" library="SparkFun" package="LUXEON-PAD" value="M01SMD" x="25.4" y="27.6"/>
<element name="JP13" library="SparkFun" package="LUXEON-PAD" value="M01SMD" x="30.4" y="25.8"/>
<element name="JP14" library="SparkFun" package="LUXEON-PAD" value="M01SMD" x="31.6" y="2.6" rot="R270"/>
<element name="JP15" library="SparkFun" package="LUXEON-PAD" value="M01SMD" x="28" y="2.6" rot="R90"/>
<element name="X1" library="SparkFun" package="USB-MICROB" value="USB-MICROB" x="31" y="10.4" rot="R90"/>
<element name="JP16" library="SparkFun" package="LUXEON-PAD" value="M01SMD" x="30.4" y="22.2"/>
<element name="U$1" library="DWM1000" package="DWM1000" value="DWM1000" x="11.2" y="24.2"/>
</elements>
<signals>
<signal name="VCC3.3">
<contactref element="C1" pad="A"/>
<contactref element="IC1" pad="2"/>
<contactref element="JP15" pad="P$1"/>
<contactref element="U2" pad="18"/>
<contactref element="U2" pad="6"/>
<contactref element="U2" pad="20"/>
<wire x1="6.33" y1="28.33" x2="5.6" y2="27.6" width="0.4064" layer="1"/>
<wire x1="5.6" y1="27.6" x2="5.6" y2="25.8" width="0.4064" layer="1"/>
<wire x1="12.6174" y1="10.23" x2="18.83" y2="10.23" width="0.4064" layer="1"/>
<wire x1="18.83" y1="10.23" x2="19" y2="10.4" width="0.4064" layer="1"/>
<wire x1="19.6" y1="11" x2="21.1726" y2="11" width="0.4064" layer="1"/>
<wire x1="21.1726" y1="11" x2="21.2026" y2="11.03" width="0.4064" layer="1"/>
<wire x1="21.2026" y1="11.03" x2="19.63" y2="11.03" width="0.4064" layer="1"/>
<wire x1="19.63" y1="11.03" x2="19.6" y2="11" width="0.4064" layer="1"/>
<wire x1="19.6" y1="11" x2="19" y2="10.4" width="0.4064" layer="1"/>
<wire x1="19" y1="10.4" x2="19" y2="10.2" width="0.4064" layer="1"/>
<wire x1="19" y1="10.2" x2="19.8" y2="9.4" width="0.4064" layer="1"/>
<wire x1="19.8" y1="9.4" x2="21.1726" y2="9.4" width="0.4064" layer="1"/>
<wire x1="21.1726" y1="9.4" x2="21.2026" y2="9.43" width="0.4064" layer="1"/>
<wire x1="5.6" y1="25.8" x2="4.4" y2="25.8" width="0.4064" layer="1"/>
<wire x1="4.4" y1="25.8" x2="4.4" y2="16.8" width="0.4064" layer="1"/>
<wire x1="4.4" y1="16.8" x2="5.6" y2="15.6" width="0.4064" layer="1"/>
<wire x1="5.6" y1="15.6" x2="8.2" y2="15.6" width="0.4064" layer="1"/>
<wire x1="8.2" y1="15.6" x2="10.8" y2="13" width="0.4064" layer="1"/>
<wire x1="10.8" y1="13" x2="10.8" y2="10.8" width="0.4064" layer="1"/>
<wire x1="10.8" y1="10.8" x2="11.4" y2="10.2" width="0.4064" layer="1"/>
<wire x1="11.4" y1="10.2" x2="12.5874" y2="10.2" width="0.4064" layer="1"/>
<wire x1="12.5874" y1="10.2" x2="12.6174" y2="10.23" width="0.4064" layer="1"/>
<wire x1="27.794634375" y1="5.00318125" x2="28" y2="2.6" width="0.4064" layer="1"/>
<contactref element="R1" pad="2"/>
<wire x1="5.82" y1="25.96" x2="5.76" y2="25.96" width="0.4064" layer="1"/>
<wire x1="5.76" y1="25.96" x2="5.6" y2="25.8" width="0.4064" layer="1"/>
<wire x1="21.2026" y1="9.43" x2="24.00668125" y2="9.43" width="0.4064" layer="1"/>
<wire x1="24.00668125" y1="9.43" x2="24.07668125" y2="9.5" width="0.4064" layer="1"/>
<wire x1="24.07668125" y1="9.5" x2="24.07668125" y2="8.721134375" width="0.4064" layer="1"/>
<wire x1="24.07668125" y1="8.721134375" x2="27.794634375" y2="5.00318125" width="0.4064" layer="1"/>
<wire x1="23.87" y1="16.8712" x2="23.87" y2="16.13" width="0.4064" layer="1"/>
<wire x1="23.87" y1="16.13" x2="25" y2="15" width="0.4064" layer="1"/>
<wire x1="25" y1="15" x2="25.8" y2="15" width="0.4064" layer="1"/>
<wire x1="25.8" y1="15" x2="26.2" y2="14.6" width="0.4064" layer="1"/>
<wire x1="26.2" y1="14.6" x2="26.2" y2="11.62331875" width="0.4064" layer="1"/>
<wire x1="26.2" y1="11.62331875" x2="24.07668125" y2="9.5" width="0.4064" layer="1"/>
<via x="28" y="2.6" extent="1-16" drill="1"/>
<contactref element="U$1" pad="VDDAON"/>
<contactref element="U$1" pad="VDD3V3"/>
<contactref element="U$1" pad="VDD3V3.2"/>
<wire x1="8.4" y1="31.2" x2="8.4" y2="29.8" width="0.4064" layer="1"/>
<wire x1="8.4" y1="29.8" x2="8.4" y2="28.4" width="0.4064" layer="1"/>
<wire x1="8.4" y1="31.2" x2="8.4" y2="28.4" width="0.4064" layer="1"/>
<wire x1="6.33" y1="28.33" x2="8.33" y2="28.33" width="0.4064" layer="1"/>
<wire x1="8.33" y1="28.33" x2="8.4" y2="28.4" width="0.4064" layer="1"/>
</signal>
<signal name="GND">
<contactref element="C2" pad="C"/>
<contactref element="IC1" pad="1"/>
<contactref element="C1" pad="C"/>
<contactref element="U2" pad="5"/>
<contactref element="U2" pad="3"/>
<contactref element="U2" pad="21"/>
<contactref element="R2" pad="1"/>
<wire x1="25.45" y1="36" x2="24.2" y2="36" width="0.4064" layer="1"/>
<wire x1="24.2" y1="36" x2="23.6" y2="35.4" width="0.4064" layer="1"/>
<wire x1="12.6174" y1="11.03" x2="14.03" y2="11.03" width="0.4064" layer="1"/>
<wire x1="14.03" y1="11.03" x2="14.4" y2="11.4" width="0.4064" layer="1"/>
<wire x1="14.4" y1="11.4" x2="14.4" y2="11.8" width="0.4064" layer="1"/>
<wire x1="14.4" y1="11.8" x2="14.4" y2="12.2" width="0.4064" layer="1"/>
<wire x1="14.4" y1="12.2" x2="14" y2="12.6" width="0.4064" layer="1"/>
<wire x1="14" y1="12.6" x2="12.6474" y2="12.6" width="0.4064" layer="1"/>
<wire x1="12.6474" y1="12.6" x2="12.6174" y2="12.63" width="0.4064" layer="1"/>
<wire x1="21.2026" y1="11.83" x2="14.43" y2="11.83" width="0.4064" layer="1"/>
<wire x1="14.43" y1="11.83" x2="14.4" y2="11.8" width="0.4064" layer="1"/>
<wire x1="21.5586" y1="16.8712" x2="21.5288" y2="16.6712" width="0.4064" layer="1"/>
<wire x1="21.5288" y1="16.6712" x2="19.8" y2="17.8" width="0.4064" layer="1"/>
<wire x1="19.8" y1="17.8" x2="19.8" y2="23.81223125" width="0.4064" layer="1"/>
<wire x1="19.8" y1="23.81223125" x2="19.83969375" y2="23.851925" width="0.4064" layer="1"/>
<wire x1="24.083315625" y1="13.299996875" x2="21.579359375" y2="16.050440625" width="0.4064" layer="1"/>
<wire x1="21.579359375" y1="16.050440625" x2="21.5586" y2="16.8712" width="0.4064" layer="1"/>
<wire x1="24.083315625" y1="13.299996875" x2="22.8149625" y2="12.3850375" width="0.4064" layer="1"/>
<wire x1="22.8149625" y1="12.3850375" x2="22.2" y2="11.8" width="0.4064" layer="1"/>
<wire x1="22.2" y1="11.8" x2="21.2326" y2="11.8" width="0.4064" layer="1"/>
<wire x1="21.2326" y1="11.8" x2="21.2026" y2="11.83" width="0.4064" layer="1"/>
<wire x1="21.5288" y1="16.6712" x2="21.5288" y2="17.9288" width="0.4064" layer="1"/>
<wire x1="21.5288" y1="17.9288" x2="22.6" y2="19.4" width="0.4064" layer="1"/>
<wire x1="22.6" y1="19.4" x2="25.8" y2="19.4" width="0.4064" layer="1"/>
<wire x1="19.83969375" y1="23.851925" x2="19.83969375" y2="24.12030625" width="0.4064" layer="1"/>
<contactref element="X1" pad="GND"/>
<wire x1="25.8" y1="19.4" x2="27.6" y2="21.2" width="0.4064" layer="1"/>
<wire x1="27.6" y1="21.2" x2="32.2" y2="21.2" width="0.4064" layer="1"/>
<wire x1="32.2" y1="21.2" x2="32.8" y2="20.8" width="0.4064" layer="1"/>
<wire x1="32.8" y1="20.8" x2="32.8" y2="19.42" width="0.4064" layer="1"/>
<wire x1="32.8" y1="19.42" x2="32.48" y2="18.74" width="0.4064" layer="1"/>
<wire x1="29.6" y1="16.4" x2="32.4" y2="16.4" width="0.4064" layer="1"/>
<wire x1="32.4" y1="16.4" x2="33" y2="17" width="0.4064" layer="1"/>
<wire x1="33" y1="17" x2="33" y2="18.42" width="0.4064" layer="1"/>
<wire x1="33" y1="18.42" x2="32.48" y2="18.74" width="0.4064" layer="1"/>
<wire x1="28.35" y1="11.7" x2="27.9" y2="11.7" width="0.4064" layer="1"/>
<wire x1="27.9" y1="11.7" x2="27.8" y2="11.8" width="0.4064" layer="1"/>
<wire x1="27.8" y1="11.8" x2="27.8" y2="14.6" width="0.4064" layer="1"/>
<wire x1="27.8" y1="14.6" x2="29.6" y2="16.4" width="0.4064" layer="1"/>
<contactref element="JP16" pad="P$1"/>
<via x="30.4" y="22.2" extent="1-16" drill="1"/>
<contactref element="U$1" pad="VSS"/>
<contactref element="U$1" pad="VSS.2"/>
<contactref element="U$1" pad="VSS.3"/>
<contactref element="U$1" pad="VSS.4"/>
<contactref element="U$1" pad="VSS.5"/>
<wire x1="21" y1="35.4" x2="21" y2="36.8" width="0.4064" layer="1"/>
<wire x1="19.6" y1="24.2" x2="19.6" y2="25.6" width="0.4064" layer="1"/>
<wire x1="19.6" y1="25.6" x2="17.4" y2="27.8" width="0.4064" layer="1"/>
<wire x1="17.4" y1="27.8" x2="12" y2="27.8" width="0.4064" layer="1"/>
<wire x1="12" y1="27.8" x2="11.2" y2="27" width="0.4064" layer="1"/>
<wire x1="11.2" y1="27" x2="8.4" y2="27" width="0.4064" layer="1"/>
<wire x1="23.6" y1="35.4" x2="23" y2="35.4" width="0.4064" layer="1"/>
<wire x1="21" y1="35.4" x2="18" y2="35.4" width="0.4064" layer="1"/>
<wire x1="18" y1="35.4" x2="16.8" y2="34.2" width="0.4064" layer="1"/>
<wire x1="16.8" y1="34.2" x2="16.8" y2="33.4" width="0.4064" layer="1"/>
<wire x1="16.8" y1="33.4" x2="17.6" y2="32.6" width="0.4064" layer="1"/>
<wire x1="17.6" y1="32.6" x2="21" y2="32.6" width="0.4064" layer="1"/>
<wire x1="17.6" y1="32.6" x2="17.6" y2="28" width="0.4064" layer="1"/>
<wire x1="17.6" y1="28" x2="17.4" y2="27.8" width="0.4064" layer="1"/>
<wire x1="21" y1="35.4" x2="23" y2="35.4" width="0.4064" layer="1"/>
<wire x1="32.2" y1="21.2" x2="30.4" y2="22.2" width="0" layer="19" extent="1-1"/>
<wire x1="19.6" y1="24.2" x2="19.83969375" y2="24.12030625" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="VCC">
<contactref element="IC1" pad="3"/>
<contactref element="C2" pad="A"/>
<wire x1="26.1814" y1="16.8712" x2="25.9814" y2="17.8186" width="0.4064" layer="1"/>
<contactref element="JP14" pad="P$1"/>
<contactref element="X1" pad="VBUS"/>
<wire x1="25.9814" y1="17.8186" x2="29.0186" y2="17.8186" width="0.4064" layer="1"/>
<wire x1="29.0186" y1="17.8186" x2="29" y2="18.4" width="0.4064" layer="1"/>
<wire x1="29" y1="18.4" x2="29.14" y2="18.4" width="0.4064" layer="1"/>
<wire x1="29.14" y1="18.4" x2="28.68" y2="18.74" width="0.4064" layer="1"/>
<wire x1="26.1814" y1="16.8712" x2="26.3814" y2="15.6186" width="0.4064" layer="1"/>
<wire x1="26.3814" y1="15.6186" x2="27" y2="15" width="0.4064" layer="1"/>
<wire x1="27" y1="15" x2="27" y2="9.4" width="0.4064" layer="1"/>
<wire x1="27" y1="9.4" x2="27.4" y2="9" width="0.4064" layer="1"/>
<wire x1="27.4" y1="9" x2="28.25" y2="9" width="0.4064" layer="1"/>
<wire x1="28.25" y1="9" x2="28.35" y2="9.1" width="0.4064" layer="1"/>
<wire x1="28.35" y1="9.1" x2="27.7" y2="9.1" width="0.4064" layer="1"/>
<wire x1="27.7" y1="9.1" x2="27.2" y2="8.6" width="0.4064" layer="1"/>
<wire x1="27.2" y1="8.6" x2="27.2" y2="7.4" width="0.4064" layer="1"/>
<wire x1="27.2" y1="7.4" x2="30.8" y2="3.8" width="0.4064" layer="1"/>
<wire x1="31.4" y1="3.6" x2="31.6" y2="4.2" width="0.4064" layer="1"/>
<wire x1="31.6" y1="4.2" x2="31.8" y2="4" width="0.4064" layer="1"/>
<wire x1="30.8" y1="3.8" x2="30.8" y2="3.4" width="0.4064" layer="1"/>
<wire x1="30.8" y1="3.4" x2="31" y2="3.2" width="0.4064" layer="1"/>
<wire x1="31" y1="3.2" x2="31.6" y2="2.6" width="0.4064" layer="1"/>
<wire x1="31.4" y1="3.6" x2="31" y2="3.2" width="0.4064" layer="1"/>
</signal>
<signal name="N$1">
<contactref element="U2" pad="7"/>
<contactref element="JP1" pad="P$1"/>
<wire x1="12.6174" y1="9.43" x2="10.57" y2="9.43" width="0.4064" layer="1"/>
<wire x1="10.57" y1="9.43" x2="9.6" y2="10.4" width="0.4064" layer="1"/>
<wire x1="9.6" y1="10.4" x2="9.6" y2="13" width="0.4064" layer="1"/>
<wire x1="9.6" y1="13" x2="8.4" y2="14" width="0.4064" layer="1"/>
<wire x1="8.4" y1="14" x2="7.78" y2="14" width="0.4064" layer="1"/>
<wire x1="7.78" y1="14" x2="6.62" y2="13.36" width="0.4064" layer="1"/>
</signal>
<signal name="N$2">
<contactref element="U2" pad="8"/>
<contactref element="JP2" pad="P$1"/>
<wire x1="6.62" y1="10.15" x2="8.25" y2="10.15" width="0.4064" layer="1"/>
<wire x1="8.25" y1="10.15" x2="9.8" y2="8.6" width="0.4064" layer="1"/>
<wire x1="9.8" y1="8.6" x2="12.5874" y2="8.6" width="0.4064" layer="1"/>
<wire x1="12.5874" y1="8.6" x2="12.6174" y2="8.63" width="0.4064" layer="1"/>
</signal>
<signal name="N$5">
<contactref element="U2" pad="29"/>
<contactref element="R1" pad="1"/>
<contactref element="JP3" pad="P$1"/>
<wire x1="5.82" y1="24.16" x2="5.82" y2="23.78" width="0.4064" layer="1"/>
<wire x1="5.82" y1="23.78" x2="7.4" y2="22.2" width="0.4064" layer="1"/>
<wire x1="7.4" y1="22.2" x2="15.4" y2="22.2" width="0.4064" layer="1"/>
<wire x1="15.4" y1="22.2" x2="17.4" y2="20.2" width="0.4064" layer="1"/>
<wire x1="17.4" y1="20.2" x2="17.4" y2="19.4" width="0.4064" layer="1"/>
<wire x1="17.4" y1="19.4" x2="17.25" y2="19.25" width="0.4064" layer="1"/>
<wire x1="17.25" y1="19.25" x2="17.25" y2="18.05" width="0.4064" layer="1"/>
<wire x1="17.25" y1="18.05" x2="16.6" y2="17.4" width="0.4064" layer="1"/>
<wire x1="16.6" y1="17.4" x2="16.6" y2="15.8126" width="0.4064" layer="1"/>
<wire x1="16.6" y1="15.8126" x2="16.51" y2="15.7226" width="0.4064" layer="1"/>
</signal>
<signal name="N$6">
<contactref element="U2" pad="31"/>
<contactref element="JP4" pad="P$1"/>
<wire x1="14.91" y1="15.7226" x2="14.91" y2="16.49" width="0.4064" layer="1"/>
<wire x1="14.91" y1="16.49" x2="14.6" y2="16.8" width="0.4064" layer="1"/>
<wire x1="14.6" y1="16.8" x2="10.8" y2="16.8" width="0.4064" layer="1"/>
<wire x1="10.8" y1="16.8" x2="10" y2="17.6" width="0.4064" layer="1"/>
<wire x1="10" y1="17.6" x2="10" y2="18.71" width="0.4064" layer="1"/>
<wire x1="10" y1="18.71" x2="9.49" y2="19.22" width="0.4064" layer="1"/>
</signal>
<signal name="N$7">
<contactref element="U2" pad="30"/>
<contactref element="JP5" pad="P$1"/>
<wire x1="15.71" y1="15.7226" x2="15.71" y2="16.89" width="0.4064" layer="1"/>
<wire x1="15.71" y1="16.89" x2="14.8" y2="17.8" width="0.4064" layer="1"/>
<wire x1="14.8" y1="17.8" x2="14.4" y2="17.8" width="0.4064" layer="1"/>
<wire x1="14.4" y1="17.8" x2="13.6" y2="18.6" width="0.4064" layer="1"/>
<wire x1="13.6" y1="18.6" x2="13.6" y2="18.9" width="0.4064" layer="1"/>
<wire x1="13.6" y1="18.9" x2="13.28" y2="19.22" width="0.4064" layer="1"/>
</signal>
<signal name="IRQ">
<contactref element="R2" pad="2"/>
<contactref element="U2" pad="32"/>
<wire x1="25.18" y1="33.93" x2="25.45" y2="34.2" width="0.4064" layer="1"/>
<wire x1="14.11" y1="15.7226" x2="10.2774" y2="15.7226" width="0.4064" layer="1"/>
<wire x1="10.2774" y1="15.7226" x2="9.6" y2="16.4" width="0.4064" layer="1"/>
<wire x1="9.6" y1="16.4" x2="7.2" y2="16.4" width="0.4064" layer="1"/>
<wire x1="7.2" y1="16.4" x2="5.8" y2="17.8" width="0.4064" layer="1"/>
<contactref element="U$1" pad="IRQ/GPIO8"/>
<wire x1="25.18" y1="33.93" x2="21.07" y2="33.93" width="0.4064" layer="1"/>
<wire x1="21.07" y1="33.93" x2="21" y2="34" width="0.4064" layer="1"/>
<wire x1="25.18" y1="33.93" x2="29.93" y2="33.93" width="0.4064" layer="1"/>
<wire x1="29.93" y1="33.93" x2="30.2" y2="34.2" width="0.4064" layer="1"/>
<wire x1="30.2" y1="34.2" x2="14.11" y2="15.7226" width="0" layer="19" extent="1-16"/>
</signal>
<signal name="CLK">
<contactref element="U2" pad="17"/>
<contactref element="JP10" pad="P$1"/>
<contactref element="JP6" pad="P$1"/>
<wire x1="24.93" y1="31.13" x2="25.4" y2="31.6" width="0.6096" layer="1"/>
<wire x1="25.4" y1="31.6" x2="25.6" y2="31.6" width="0.6096" layer="1"/>
<wire x1="25.6" y1="31.6" x2="25.4" y2="31.8" width="0.6096" layer="1"/>
<wire x1="23.4" y1="5.2" x2="24.6" y2="3.8" width="0.6096" layer="1"/>
<wire x1="24.6" y1="3.8" x2="24.4" y2="2.6" width="0.6096" layer="1"/>
<wire x1="21.2026" y1="8.63" x2="21.17" y2="7.63" width="0.4064" layer="1"/>
<wire x1="21.17" y1="7.63" x2="23.4" y2="5.2" width="0.4064" layer="1"/>
<contactref element="U$1" pad="SPICLK"/>
<wire x1="24.93" y1="31.13" x2="21.07" y2="31.13" width="0.4064" layer="1"/>
<wire x1="21.07" y1="31.13" x2="21" y2="31.2" width="0.4064" layer="1"/>
<wire x1="21.07" y1="31.13" x2="21.2" y2="31" width="0.4064" layer="1"/>
<wire x1="21.2" y1="31" x2="21.2026" y2="8.63" width="0" layer="19" extent="1-16"/>
</signal>
<signal name="MISO">
<contactref element="U2" pad="16"/>
<contactref element="JP7" pad="P$1"/>
<contactref element="JP11" pad="P$1"/>
<wire x1="31.07" y1="29.73" x2="30.4" y2="29.6" width="0.6096" layer="1"/>
<wire x1="20.8" y1="2.6" x2="21.4" y2="2.6" width="0.6096" layer="1"/>
<wire x1="21.4" y1="2.6" x2="21" y2="2.8" width="0.6096" layer="1"/>
<wire x1="21" y1="2.8" x2="21" y2="6" width="0.6096" layer="1"/>
<wire x1="19.71" y1="7.1374" x2="20.2626" y2="7.1374" width="0.4064" layer="1"/>
<wire x1="20.2626" y1="7.1374" x2="21" y2="6" width="0.4064" layer="1"/>
<via x="30.4" y="29.6" extent="1-16" drill="1"/>
<via x="21" y="2.8" extent="1-16" drill="1"/>
<contactref element="U$1" pad="SPIMISO"/>
<wire x1="21" y1="29.8" x2="30.2" y2="29.8" width="0.4064" layer="1"/>
<wire x1="30.2" y1="29.8" x2="30.4" y2="29.6" width="0.4064" layer="1"/>
<wire x1="20.2626" y1="7.1374" x2="21" y2="29.8" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="MOSI">
<contactref element="U2" pad="15"/>
<contactref element="JP8" pad="P$1"/>
<contactref element="JP12" pad="P$1"/>
<wire x1="24.67" y1="28.33" x2="25.4" y2="27.6" width="0.6096" layer="1"/>
<wire x1="18.91" y1="4.89" x2="16.6" y2="2.6" width="0.6096" layer="1"/>
<wire x1="18.91" y1="7.1374" x2="18.91" y2="4.89" width="0.4064" layer="1"/>
<via x="25.4" y="27.6" extent="1-16" drill="1"/>
<contactref element="U$1" pad="SPIMOSI"/>
<wire x1="21" y1="28.4" x2="24.6" y2="28.4" width="0.4064" layer="1"/>
<wire x1="24.6" y1="28.4" x2="25.4" y2="27.6" width="0.4064" layer="1"/>
<wire x1="18.91" y1="7.1374" x2="21" y2="28.4" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="CSN">
<contactref element="U2" pad="14"/>
<contactref element="JP9" pad="P$1"/>
<contactref element="JP13" pad="P$1"/>
<wire x1="18.11" y1="7.1374" x2="18.11" y2="5.71" width="0.4064" layer="1"/>
<wire x1="18.11" y1="5.71" x2="17.6" y2="5.2" width="0.4064" layer="1"/>
<wire x1="17.6" y1="5.2" x2="14.2" y2="5.2" width="0.4064" layer="1"/>
<wire x1="14.2" y1="5.2" x2="12.4" y2="2.6" width="0.4064" layer="1"/>
<via x="12.4" y="2.6" extent="1-16" drill="1"/>
<contactref element="U$1" pad="SPICSN"/>
<wire x1="21" y1="27" x2="22.4" y2="25.6" width="0.4064" layer="1"/>
<wire x1="22.4" y1="25.6" x2="30.2" y2="25.6" width="0.4064" layer="1"/>
<wire x1="30.2" y1="25.6" x2="30.4" y2="25.8" width="0.4064" layer="1"/>
<wire x1="18.11" y1="7.1374" x2="22.4" y2="25.6" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="RESET">
<contactref element="U2" pad="13"/>
<wire x1="5.13" y1="33.93" x2="3.2" y2="32" width="0.4064" layer="1"/>
<wire x1="3.2" y1="32" x2="3.2" y2="8" width="0.4064" layer="1"/>
<wire x1="3.2" y1="8" x2="5.2" y2="6" width="0.4064" layer="1"/>
<wire x1="5.2" y1="6" x2="17" y2="6" width="0.4064" layer="1"/>
<wire x1="17" y1="6" x2="17.4" y2="6.4" width="0.4064" layer="1"/>
<wire x1="17.4" y1="6.4" x2="17.4" y2="7.0474" width="0.4064" layer="1"/>
<wire x1="17.4" y1="7.0474" x2="17.31" y2="7.1374" width="0.4064" layer="1"/>
<contactref element="U$1" pad="RST"/>
<wire x1="8.4" y1="34" x2="5.13" y2="34" width="0.4064" layer="1"/>
<wire x1="5.13" y1="34" x2="5.13" y2="33.93" width="0.4064" layer="1"/>
</signal>
<signal name="N$3">
<via x="25.8" y="32" extent="1-16" drill="1"/>
</signal>
<signal name="N$4">
<via x="6.4" y="19.2" extent="1-16" drill="1"/>
</signal>
<signal name="N$8">
<via x="30.2" y="34.4" extent="1-16" drill="1"/>
</signal>
<signal name="N$9">
<via x="24.4" y="2.4" extent="1-16" drill="1"/>
</signal>
<signal name="N$10">
<via x="16.6" y="2.8" extent="1-16" drill="1"/>
</signal>
<signal name="N$11">
<via x="17.2" y="19.4" extent="1-16" drill="1"/>
</signal>
<signal name="N$12">
<via x="13.2" y="19.2" extent="1-16" drill="1"/>
</signal>
<signal name="N$13">
<via x="9.4" y="19.2" extent="1-16" drill="1"/>
</signal>
<signal name="N$14">
<via x="31.6" y="2.4" extent="1-16" drill="1"/>
</signal>
</signals>
</board>
</drawing>
</eagle>

View File

@ -0,0 +1,64 @@
/*
* Copyright (c) 2015 by Thomas Trojer <thomas@trojer.net>
* Decawave DW1000 library for arduino.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* @file BasicConnectivityTest.ino
* Use this to test connectivity with your DW1000 from Arduino.
* It performs an arbitrary setup of the chip and prints some information.
*
* @todo
* - move strings to flash (less RAM consumption)
* - make real check of connection (e.g. change some values on DW1000 and verify)
*/
#include <SPI.h>
#include <DW1000.h>
// connection pins
const uint8_t PIN_RST = 9; // reset pin
const uint8_t PIN_IRQ = 2; // irq pin
const uint8_t PIN_SS = SS; // spi select pin
void setup() {
// DEBUG monitoring
Serial.begin(9600);
// initialize the driver
DW1000.begin(PIN_IRQ, PIN_RST);
DW1000.select(PIN_SS);
Serial.println(F("DW1000 initialized ..."));
// general configuration
DW1000.newConfiguration();
DW1000.setDeviceAddress(5);
DW1000.setNetworkId(10);
DW1000.commitConfiguration();
Serial.println(F("Committed configuration ..."));
// wait a bit
delay(1000);
}
void loop() {
// DEBUG chip info and registers pretty printed
char msg[128];
DW1000.getPrintableDeviceIdentifier(msg);
Serial.print("Device ID: "); Serial.println(msg);
DW1000.getPrintableExtendedUniqueIdentifier(msg);
Serial.print("Unique ID: "); Serial.println(msg);
DW1000.getPrintableNetworkIdAndShortAddress(msg);
Serial.print("Network ID & Device Address: "); Serial.println(msg);
DW1000.getPrintableDeviceMode(msg);
Serial.print("Device mode: "); Serial.println(msg);
// wait a bit
delay(10000);
}

View File

@ -0,0 +1,110 @@
/*
* Copyright (c) 2015 by Thomas Trojer <thomas@trojer.net>
* Decawave DW1000 library for arduino.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* @file BasicReceiver.ino
* Use this to test simple sender/receiver functionality with two
* DW1000. Complements the "BasicSender" example sketch.
*
* @todo
* - move strings to flash (less RAM consumption)
*
*/
#include <SPI.h>
#include <DW1000.h>
// connection pins
const uint8_t PIN_RST = 9; // reset pin
const uint8_t PIN_IRQ = 2; // irq pin
const uint8_t PIN_SS = SS; // spi select pin
// DEBUG packet sent status and count
volatile boolean received = false;
volatile boolean error = false;
volatile int16_t numReceived = 0; // todo check int type
String message;
void setup() {
// DEBUG monitoring
Serial.begin(9600);
Serial.println(F("### DW1000-arduino-receiver-test ###"));
// initialize the driver
DW1000.begin(PIN_IRQ, PIN_RST);
DW1000.select(PIN_SS);
Serial.println(F("DW1000 initialized ..."));
// general configuration
DW1000.newConfiguration();
DW1000.setDefaults();
DW1000.setDeviceAddress(6);
DW1000.setNetworkId(10);
DW1000.enableMode(DW1000.MODE_LONGDATA_RANGE_LOWPOWER);
DW1000.commitConfiguration();
Serial.println(F("Committed configuration ..."));
// DEBUG chip info and registers pretty printed
char msg[128];
DW1000.getPrintableDeviceIdentifier(msg);
Serial.print("Device ID: "); Serial.println(msg);
DW1000.getPrintableExtendedUniqueIdentifier(msg);
Serial.print("Unique ID: "); Serial.println(msg);
DW1000.getPrintableNetworkIdAndShortAddress(msg);
Serial.print("Network ID & Device Address: "); Serial.println(msg);
DW1000.getPrintableDeviceMode(msg);
Serial.print("Device mode: "); Serial.println(msg);
// attach callback for (successfully) received messages
DW1000.attachReceivedHandler(handleReceived);
DW1000.attachReceiveFailedHandler(handleError);
DW1000.attachErrorHandler(handleError);
// start reception
receiver();
}
void handleReceived() {
// status change on reception success
received = true;
}
void handleError() {
error = true;
}
void receiver() {
DW1000.newReceive();
DW1000.setDefaults();
// so we don't need to restart the receiver manually
DW1000.receivePermanently(true);
DW1000.startReceive();
}
void loop() {
// enter on confirmation of ISR status change (successfully received)
if (received) {
numReceived++;
// get data as string
DW1000.getData(message);
Serial.print("Received message ... #"); Serial.println(numReceived);
Serial.print("Data is ... "); Serial.println(message);
Serial.print("FP power is [dBm] ... "); Serial.println(DW1000.getFirstPathPower());
Serial.print("RX power is [dBm] ... "); Serial.println(DW1000.getReceivePower());
Serial.print("Signal quality is ... "); Serial.println(DW1000.getReceiveQuality());
received = false;
}
if (error) {
Serial.println("Error receiving a message");
error = false;
DW1000.getData(message);
Serial.print("Error data is ... "); Serial.println(message);
}
}

View File

@ -0,0 +1,110 @@
/*
* Copyright (c) 2015 by Thomas Trojer <thomas@trojer.net>
* Decawave DW1000 library for arduino.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* @file BasicSender.ino
* Use this to test simple sender/receiver functionality with two
* DW1000. Complements the "BasicReceiver" example sketch.
*
* @todo
* - move strings to flash (less RAM consumption)
*
*/
#include <SPI.h>
#include <DW1000.h>
// connection pins
const uint8_t PIN_RST = 9; // reset pin
const uint8_t PIN_IRQ = 2; // irq pin
const uint8_t PIN_SS = SS; // spi select pin
// DEBUG packet sent status and count
boolean sent = false;
volatile boolean sentAck = false;
volatile unsigned long delaySent = 0;
int16_t sentNum = 0; // todo check int type
DW1000Time sentTime;
void setup() {
// DEBUG monitoring
Serial.begin(9600);
Serial.println(F("### DW1000-arduino-sender-test ###"));
// initialize the driver
DW1000.begin(PIN_IRQ, PIN_RST);
DW1000.select(PIN_SS);
Serial.println(F("DW1000 initialized ..."));
// general configuration
DW1000.newConfiguration();
DW1000.setDefaults();
DW1000.setDeviceAddress(5);
DW1000.setNetworkId(10);
DW1000.enableMode(DW1000.MODE_LONGDATA_RANGE_LOWPOWER);
DW1000.commitConfiguration();
Serial.println(F("Committed configuration ..."));
// DEBUG chip info and registers pretty printed
char msg[128];
DW1000.getPrintableDeviceIdentifier(msg);
Serial.print("Device ID: "); Serial.println(msg);
DW1000.getPrintableExtendedUniqueIdentifier(msg);
Serial.print("Unique ID: "); Serial.println(msg);
DW1000.getPrintableNetworkIdAndShortAddress(msg);
Serial.print("Network ID & Device Address: "); Serial.println(msg);
DW1000.getPrintableDeviceMode(msg);
Serial.print("Device mode: "); Serial.println(msg);
// attach callback for (successfully) sent messages
DW1000.attachSentHandler(handleSent);
// start a transmission
transmitter();
}
void handleSent() {
// status change on sent success
sentAck = true;
}
void transmitter() {
// transmit some data
Serial.print("Transmitting packet ... #"); Serial.println(sentNum);
DW1000.newTransmit();
DW1000.setDefaults();
String msg = "Hello DW1000, it's #"; msg += sentNum;
DW1000.setData(msg);
// delay sending the message for the given amount
DW1000Time deltaTime = DW1000Time(10, DW1000Time::MILLISECONDS);
DW1000.setDelay(deltaTime);
DW1000.startTransmit();
delaySent = millis();
}
void loop() {
if (!sentAck) {
return;
}
// continue on success confirmation
// (we are here after the given amount of send delay time has passed)
sentAck = false;
// update and print some information about the sent message
Serial.print("ARDUINO delay sent [ms] ... "); Serial.println(millis() - delaySent);
DW1000Time newSentTime;
DW1000.getTransmitTimestamp(newSentTime);
Serial.print("Processed packet ... #"); Serial.println(sentNum);
Serial.print("Sent timestamp ... "); Serial.println(newSentTime.getAsMicroSeconds());
// note: delta is just for simple demo as not correct on system time counter wrap-around
Serial.print("DW1000 delta send time [ms] ... "); Serial.println((newSentTime.getAsMicroSeconds() - sentTime.getAsMicroSeconds()) * 1.0e-3);
sentTime = newSentTime;
sentNum++;
// again, transmit some data
transmitter();
}

View File

@ -0,0 +1,52 @@
/**
*
* @todo
* - move strings to flash (less RAM consumption)
* - fix deprecated convertation form string to char* startAsAnchor
* - give example description
*/
#include <SPI.h>
#include "DW1000Ranging.h"
// connection pins
const uint8_t PIN_RST = 9; // reset pin
const uint8_t PIN_IRQ = 2; // irq pin
const uint8_t PIN_SS = SS; // spi select pin
void setup() {
Serial.begin(115200);
delay(1000);
//init the configuration
DW1000Ranging.initCommunication(PIN_RST, PIN_SS, PIN_IRQ); //Reset, CS, IRQ pin
//define the sketch as anchor. It will be great to dynamically change the type of module
DW1000Ranging.attachNewRange(newRange);
DW1000Ranging.attachBlinkDevice(newBlink);
DW1000Ranging.attachInactiveDevice(inactiveDevice);
//Enable the filter to smooth the distance
//DW1000Ranging.useRangeFilter(true);
//we start the module as an anchor
DW1000Ranging.startAsAnchor("82:17:5B:D5:A9:9A:E2:9C", DW1000.MODE_LONGDATA_RANGE_ACCURACY);
}
void loop() {
DW1000Ranging.loop();
}
void newRange() {
Serial.print("from: "); Serial.print(DW1000Ranging.getDistantDevice()->getShortAddress(), HEX);
Serial.print("\t Range: "); Serial.print(DW1000Ranging.getDistantDevice()->getRange()); Serial.print(" m");
Serial.print("\t RX power: "); Serial.print(DW1000Ranging.getDistantDevice()->getRXPower()); Serial.println(" dBm");
}
void newBlink(DW1000Device* device) {
Serial.print("blink; 1 device added ! -> ");
Serial.print(" short:");
Serial.println(device->getShortAddress(), HEX);
}
void inactiveDevice(DW1000Device* device) {
Serial.print("delete inactive device: ");
Serial.println(device->getShortAddress(), HEX);
}

View File

@ -0,0 +1,52 @@
/**
*
* @todo
* - move strings to flash (less RAM consumption)
* - fix deprecated convertation form string to char* startAsTag
* - give example description
*/
#include <SPI.h>
#include "DW1000Ranging.h"
// connection pins
const uint8_t PIN_RST = 9; // reset pin
const uint8_t PIN_IRQ = 2; // irq pin
const uint8_t PIN_SS = SS; // spi select pin
void setup() {
Serial.begin(115200);
delay(1000);
//init the configuration
DW1000Ranging.initCommunication(PIN_RST, PIN_SS, PIN_IRQ); //Reset, CS, IRQ pin
//define the sketch as anchor. It will be great to dynamically change the type of module
DW1000Ranging.attachNewRange(newRange);
DW1000Ranging.attachNewDevice(newDevice);
DW1000Ranging.attachInactiveDevice(inactiveDevice);
//Enable the filter to smooth the distance
//DW1000Ranging.useRangeFilter(true);
//we start the module as a tag
DW1000Ranging.startAsTag("7D:00:22:EA:82:60:3B:9C", DW1000.MODE_LONGDATA_RANGE_ACCURACY);
}
void loop() {
DW1000Ranging.loop();
}
void newRange() {
Serial.print("from: "); Serial.print(DW1000Ranging.getDistantDevice()->getShortAddress(), HEX);
Serial.print("\t Range: "); Serial.print(DW1000Ranging.getDistantDevice()->getRange()); Serial.print(" m");
Serial.print("\t RX power: "); Serial.print(DW1000Ranging.getDistantDevice()->getRXPower()); Serial.println(" dBm");
}
void newDevice(DW1000Device* device) {
Serial.print("ranging init; 1 device added ! -> ");
Serial.print(" short:");
Serial.println(device->getShortAddress(), HEX);
}
void inactiveDevice(DW1000Device* device) {
Serial.print("delete inactive device: ");
Serial.println(device->getShortAddress(), HEX);
}

View File

@ -0,0 +1,144 @@
/*
* Copyright (c) 2015 by Thomas Trojer <thomas@trojer.net>
* Decawave DW1000 library for arduino.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* @file MessagePingPong.ino
* Use this to test two-way communication functionality with two
* DW1000. Both Arduinos use this sketch, but one node configured
* as initiator/sender of the (first) ping message and the other
* being configured as receiver/answerer of the (first) ping message.
*
* Configure each node by setting their "trxToggle" attribute to either
* "SENDER" or "RECEIVER".
*
* @todo
* - add in SENDER mode timeout if no pong received then resend ping
*/
#include "require_cpp11.h"
#include <SPI.h>
#include <DW1000.h>
// connection pins
constexpr uint8_t PIN_RST = 9; // reset pin
constexpr uint8_t PIN_IRQ = 2; // irq pin
constexpr uint8_t PIN_SS = SS; // spi select pin
// toggle state
enum class TransmissionState : uint8_t {
SENDER,
RECEIVER
};
// toggle and message RX/TX
// NOTE: the other Arduino needs to be configured with RECEIVER
// (or SENDER respectively)
TransmissionState trxToggle = TransmissionState::RECEIVER;
volatile boolean trxAck = false;
volatile boolean rxError = false;
String msg;
void setup() {
// DEBUG monitoring
Serial.begin(9600);
Serial.println(F("### DW1000-arduino-ping-pong-test ###"));
// initialize the driver
DW1000.begin(PIN_IRQ, PIN_RST);
DW1000.select(PIN_SS);
Serial.println(F("DW1000 initialized ..."));
// general configuration
DW1000.newConfiguration();
DW1000.setDefaults();
DW1000.setDeviceAddress(1);
DW1000.setNetworkId(10);
DW1000.commitConfiguration();
Serial.println(F("Committed configuration ..."));
// DEBUG chip info and registers pretty printed
char msgInfo[128];
DW1000.getPrintableDeviceIdentifier(msgInfo);
Serial.print(F("Device ID: ")); Serial.println(msgInfo);
DW1000.getPrintableExtendedUniqueIdentifier(msgInfo);
Serial.print(F("Unique ID: ")); Serial.println(msgInfo);
DW1000.getPrintableNetworkIdAndShortAddress(msgInfo);
Serial.print(F("Network ID & Device Address: ")); Serial.println(msgInfo);
DW1000.getPrintableDeviceMode(msgInfo);
Serial.print(F("Device mode: ")); Serial.println(msgInfo);
// attach callback for (successfully) sent and received messages
DW1000.attachSentHandler(handleSent);
DW1000.attachReceivedHandler(handleReceived);
DW1000.attachReceiveFailedHandler(handleReceiveFailed);
// sender starts by sending a PING message, receiver starts listening
if (trxToggle == TransmissionState::SENDER) {
msg = "Ping ...";
receiver();
transmit();
} else {
msg = "... and Pong";
receiver();
}
}
void handleSent() {
// status change on sent success
trxAck = true;
}
void handleReceived() {
// status change on received success
trxAck = true;
}
void handleReceiveFailed() {
// error flag
rxError = true;
}
void transmit() {
DW1000.newTransmit();
DW1000.setDefaults();
DW1000.setData(msg);
DW1000.startTransmit();
}
void receiver() {
DW1000.newReceive();
DW1000.setDefaults();
// so we don't need to restart the receiver manually
DW1000.receivePermanently(true);
DW1000.startReceive();
}
void loop() {
if (rxError) {
Serial.println(F("Failed to properly receive message."));
rxError = false;
return;
}
if (!trxAck) {
return;
}
// continue on any success confirmation
trxAck = false;
// a sender will be a receiver and vice versa
trxToggle = (trxToggle == TransmissionState::SENDER) ? TransmissionState::RECEIVER : TransmissionState::SENDER;
if (trxToggle == TransmissionState::SENDER) {
// formerly a receiver
String rxMsg;
DW1000.getData(rxMsg);
Serial.print(F("Received: ")); Serial.println(rxMsg);
transmit();
} else {
Serial.print(F("Transmitted: ")); Serial.println(msg);
}
}

View File

@ -0,0 +1,275 @@
/*
* Copyright (c) 2015 by Thomas Trojer <thomas@trojer.net>
* Decawave DW1000 library for arduino.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* @file RangingAnchor.ino
* Use this to test two-way ranging functionality with two
* DW1000. This is the anchor component's code which computes range after
* exchanging some messages. Addressing and frame filtering is currently done
* in a custom way, as no MAC features are implemented yet.
*
* Complements the "RangingTag" example sketch.
*
* @todo
* - weighted average of ranging results based on signal quality
* - use enum instead of define
* - move strings to flash (less RAM consumption)
*/
#include <SPI.h>
#include <DW1000.h>
// connection pins
const uint8_t PIN_RST = 9; // reset pin
const uint8_t PIN_IRQ = 2; // irq pin
const uint8_t PIN_SS = SS; // spi select pin
// messages used in the ranging protocol
// TODO replace by enum
#define POLL 0
#define POLL_ACK 1
#define RANGE 2
#define RANGE_REPORT 3
#define RANGE_FAILED 255
// message flow state
volatile byte expectedMsgId = POLL;
// message sent/received state
volatile boolean sentAck = false;
volatile boolean receivedAck = false;
// protocol error state
boolean protocolFailed = false;
// timestamps to remember
DW1000Time timePollSent;
DW1000Time timePollReceived;
DW1000Time timePollAckSent;
DW1000Time timePollAckReceived;
DW1000Time timeRangeSent;
DW1000Time timeRangeReceived;
// last computed range/time
DW1000Time timeComputedRange;
// data buffer
#define LEN_DATA 16
byte data[LEN_DATA];
// watchdog and reset period
uint32_t lastActivity;
uint32_t resetPeriod = 250;
// reply times (same on both sides for symm. ranging)
uint16_t replyDelayTimeUS = 3000;
// ranging counter (per second)
uint16_t successRangingCount = 0;
uint32_t rangingCountPeriod = 0;
float samplingRate = 0;
void setup() {
// DEBUG monitoring
Serial.begin(115200);
delay(1000);
Serial.println(F("### DW1000-arduino-ranging-anchor ###"));
// initialize the driver
DW1000.begin(PIN_IRQ, PIN_RST);
DW1000.select(PIN_SS);
Serial.println(F("DW1000 initialized ..."));
// general configuration
DW1000.newConfiguration();
DW1000.setDefaults();
DW1000.setDeviceAddress(1);
DW1000.setNetworkId(10);
DW1000.enableMode(DW1000.MODE_LONGDATA_RANGE_LOWPOWER);
DW1000.commitConfiguration();
Serial.println(F("Committed configuration ..."));
// DEBUG chip info and registers pretty printed
char msg[128];
DW1000.getPrintableDeviceIdentifier(msg);
Serial.print("Device ID: "); Serial.println(msg);
DW1000.getPrintableExtendedUniqueIdentifier(msg);
Serial.print("Unique ID: "); Serial.println(msg);
DW1000.getPrintableNetworkIdAndShortAddress(msg);
Serial.print("Network ID & Device Address: "); Serial.println(msg);
DW1000.getPrintableDeviceMode(msg);
Serial.print("Device mode: "); Serial.println(msg);
// attach callback for (successfully) sent and received messages
DW1000.attachSentHandler(handleSent);
DW1000.attachReceivedHandler(handleReceived);
// anchor starts in receiving mode, awaiting a ranging poll message
receiver();
noteActivity();
// for first time ranging frequency computation
rangingCountPeriod = millis();
}
void noteActivity() {
// update activity timestamp, so that we do not reach "resetPeriod"
lastActivity = millis();
}
void resetInactive() {
// anchor listens for POLL
expectedMsgId = POLL;
receiver();
noteActivity();
}
void handleSent() {
// status change on sent success
sentAck = true;
}
void handleReceived() {
// status change on received success
receivedAck = true;
}
void transmitPollAck() {
DW1000.newTransmit();
DW1000.setDefaults();
data[0] = POLL_ACK;
// delay the same amount as ranging tag
DW1000Time deltaTime = DW1000Time(replyDelayTimeUS, DW1000Time::MICROSECONDS);
DW1000.setDelay(deltaTime);
DW1000.setData(data, LEN_DATA);
DW1000.startTransmit();
}
void transmitRangeReport(float curRange) {
DW1000.newTransmit();
DW1000.setDefaults();
data[0] = RANGE_REPORT;
// write final ranging result
memcpy(data + 1, &curRange, 4);
DW1000.setData(data, LEN_DATA);
DW1000.startTransmit();
}
void transmitRangeFailed() {
DW1000.newTransmit();
DW1000.setDefaults();
data[0] = RANGE_FAILED;
DW1000.setData(data, LEN_DATA);
DW1000.startTransmit();
}
void receiver() {
DW1000.newReceive();
DW1000.setDefaults();
// so we don't need to restart the receiver manually
DW1000.receivePermanently(true);
DW1000.startReceive();
}
/*
* RANGING ALGORITHMS
* ------------------
* Either of the below functions can be used for range computation (see line "CHOSEN
* RANGING ALGORITHM" in the code).
* - Asymmetric is more computation intense but least error prone
* - Symmetric is less computation intense but more error prone to clock drifts
*
* The anchors and tags of this reference example use the same reply delay times, hence
* are capable of symmetric ranging (and of asymmetric ranging anyway).
*/
void computeRangeAsymmetric() {
// asymmetric two-way ranging (more computation intense, less error prone)
DW1000Time round1 = (timePollAckReceived - timePollSent).wrap();
DW1000Time reply1 = (timePollAckSent - timePollReceived).wrap();
DW1000Time round2 = (timeRangeReceived - timePollAckSent).wrap();
DW1000Time reply2 = (timeRangeSent - timePollAckReceived).wrap();
DW1000Time tof = (round1 * round2 - reply1 * reply2) / (round1 + round2 + reply1 + reply2);
// set tof timestamp
timeComputedRange.setTimestamp(tof);
}
void computeRangeSymmetric() {
// symmetric two-way ranging (less computation intense, more error prone on clock drift)
DW1000Time tof = ((timePollAckReceived - timePollSent) - (timePollAckSent - timePollReceived) +
(timeRangeReceived - timePollAckSent) - (timeRangeSent - timePollAckReceived)) * 0.25f;
// set tof timestamp
timeComputedRange.setTimestamp(tof);
}
/*
* END RANGING ALGORITHMS
* ----------------------
*/
void loop() {
int32_t curMillis = millis();
if (!sentAck && !receivedAck) {
// check if inactive
if (curMillis - lastActivity > resetPeriod) {
resetInactive();
}
return;
}
// continue on any success confirmation
if (sentAck) {
sentAck = false;
byte msgId = data[0];
if (msgId == POLL_ACK) {
DW1000.getTransmitTimestamp(timePollAckSent);
noteActivity();
}
}
if (receivedAck) {
receivedAck = false;
// get message and parse
DW1000.getData(data, LEN_DATA);
byte msgId = data[0];
if (msgId != expectedMsgId) {
// unexpected message, start over again (except if already POLL)
protocolFailed = true;
}
if (msgId == POLL) {
// on POLL we (re-)start, so no protocol failure
protocolFailed = false;
DW1000.getReceiveTimestamp(timePollReceived);
expectedMsgId = RANGE;
transmitPollAck();
noteActivity();
}
else if (msgId == RANGE) {
DW1000.getReceiveTimestamp(timeRangeReceived);
expectedMsgId = POLL;
if (!protocolFailed) {
timePollSent.setTimestamp(data + 1);
timePollAckReceived.setTimestamp(data + 6);
timeRangeSent.setTimestamp(data + 11);
// (re-)compute range as two-way ranging is done
computeRangeAsymmetric(); // CHOSEN RANGING ALGORITHM
transmitRangeReport(timeComputedRange.getAsMicroSeconds());
float distance = timeComputedRange.getAsMeters();
Serial.print("Range: "); Serial.print(distance); Serial.print(" m");
Serial.print("\t RX power: "); Serial.print(DW1000.getReceivePower()); Serial.print(" dBm");
Serial.print("\t Sampling: "); Serial.print(samplingRate); Serial.println(" Hz");
//Serial.print("FP power is [dBm]: "); Serial.print(DW1000.getFirstPathPower());
//Serial.print("RX power is [dBm]: "); Serial.println(DW1000.getReceivePower());
//Serial.print("Receive quality: "); Serial.println(DW1000.getReceiveQuality());
// update sampling rate (each second)
successRangingCount++;
if (curMillis - rangingCountPeriod > 1000) {
samplingRate = (1000.0f * successRangingCount) / (curMillis - rangingCountPeriod);
rangingCountPeriod = curMillis;
successRangingCount = 0;
}
}
else {
transmitRangeFailed();
}
noteActivity();
}
}
}

View File

@ -0,0 +1,201 @@
/*
* Copyright (c) 2015 by Thomas Trojer <thomas@trojer.net>
* Decawave DW1000 library for arduino.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* @file RangingTag.ino
* Use this to test two-way ranging functionality with two DW1000. This is
* the tag component's code which polls for range computation. Addressing and
* frame filtering is currently done in a custom way, as no MAC features are
* implemented yet.
*
* Complements the "RangingAnchor" example sketch.
*
* @todo
* - use enum instead of define
* - move strings to flash (less RAM consumption)
*/
#include <SPI.h>
#include <DW1000.h>
// connection pins
const uint8_t PIN_RST = 9; // reset pin
const uint8_t PIN_IRQ = 2; // irq pin
const uint8_t PIN_SS = SS; // spi select pin
// messages used in the ranging protocol
// TODO replace by enum
#define POLL 0
#define POLL_ACK 1
#define RANGE 2
#define RANGE_REPORT 3
#define RANGE_FAILED 255
// message flow state
volatile byte expectedMsgId = POLL_ACK;
// message sent/received state
volatile boolean sentAck = false;
volatile boolean receivedAck = false;
// timestamps to remember
DW1000Time timePollSent;
DW1000Time timePollAckReceived;
DW1000Time timeRangeSent;
// data buffer
#define LEN_DATA 16
byte data[LEN_DATA];
// watchdog and reset period
uint32_t lastActivity;
uint32_t resetPeriod = 250;
// reply times (same on both sides for symm. ranging)
uint16_t replyDelayTimeUS = 3000;
void setup() {
// DEBUG monitoring
Serial.begin(115200);
Serial.println(F("### DW1000-arduino-ranging-tag ###"));
// initialize the driver
DW1000.begin(PIN_IRQ, PIN_RST);
DW1000.select(PIN_SS);
Serial.println("DW1000 initialized ...");
// general configuration
DW1000.newConfiguration();
DW1000.setDefaults();
DW1000.setDeviceAddress(2);
DW1000.setNetworkId(10);
DW1000.enableMode(DW1000.MODE_LONGDATA_RANGE_LOWPOWER);
DW1000.commitConfiguration();
Serial.println(F("Committed configuration ..."));
// DEBUG chip info and registers pretty printed
char msg[128];
DW1000.getPrintableDeviceIdentifier(msg);
Serial.print("Device ID: "); Serial.println(msg);
DW1000.getPrintableExtendedUniqueIdentifier(msg);
Serial.print("Unique ID: "); Serial.println(msg);
DW1000.getPrintableNetworkIdAndShortAddress(msg);
Serial.print("Network ID & Device Address: "); Serial.println(msg);
DW1000.getPrintableDeviceMode(msg);
Serial.print("Device mode: "); Serial.println(msg);
// attach callback for (successfully) sent and received messages
DW1000.attachSentHandler(handleSent);
DW1000.attachReceivedHandler(handleReceived);
// anchor starts by transmitting a POLL message
receiver();
transmitPoll();
noteActivity();
}
void noteActivity() {
// update activity timestamp, so that we do not reach "resetPeriod"
lastActivity = millis();
}
void resetInactive() {
// tag sends POLL and listens for POLL_ACK
expectedMsgId = POLL_ACK;
transmitPoll();
noteActivity();
}
void handleSent() {
// status change on sent success
sentAck = true;
}
void handleReceived() {
// status change on received success
receivedAck = true;
}
void transmitPoll() {
DW1000.newTransmit();
DW1000.setDefaults();
data[0] = POLL;
DW1000.setData(data, LEN_DATA);
DW1000.startTransmit();
}
void transmitRange() {
DW1000.newTransmit();
DW1000.setDefaults();
data[0] = RANGE;
// delay sending the message and remember expected future sent timestamp
DW1000Time deltaTime = DW1000Time(replyDelayTimeUS, DW1000Time::MICROSECONDS);
timeRangeSent = DW1000.setDelay(deltaTime);
timePollSent.getTimestamp(data + 1);
timePollAckReceived.getTimestamp(data + 6);
timeRangeSent.getTimestamp(data + 11);
DW1000.setData(data, LEN_DATA);
DW1000.startTransmit();
//Serial.print("Expect RANGE to be sent @ "); Serial.println(timeRangeSent.getAsFloat());
}
void receiver() {
DW1000.newReceive();
DW1000.setDefaults();
// so we don't need to restart the receiver manually
DW1000.receivePermanently(true);
DW1000.startReceive();
}
void loop() {
if (!sentAck && !receivedAck) {
// check if inactive
if (millis() - lastActivity > resetPeriod) {
resetInactive();
}
return;
}
// continue on any success confirmation
if (sentAck) {
sentAck = false;
byte msgId = data[0];
if (msgId == POLL) {
DW1000.getTransmitTimestamp(timePollSent);
//Serial.print("Sent POLL @ "); Serial.println(timePollSent.getAsFloat());
} else if (msgId == RANGE) {
DW1000.getTransmitTimestamp(timeRangeSent);
noteActivity();
}
}
if (receivedAck) {
receivedAck = false;
// get message and parse
DW1000.getData(data, LEN_DATA);
byte msgId = data[0];
if (msgId != expectedMsgId) {
// unexpected message, start over again
//Serial.print("Received wrong message # "); Serial.println(msgId);
expectedMsgId = POLL_ACK;
transmitPoll();
return;
}
if (msgId == POLL_ACK) {
DW1000.getReceiveTimestamp(timePollAckReceived);
expectedMsgId = RANGE_REPORT;
transmitRange();
noteActivity();
} else if (msgId == RANGE_REPORT) {
expectedMsgId = POLL_ACK;
float curRange;
memcpy(&curRange, data + 1, 4);
transmitPoll();
noteActivity();
} else if (msgId == RANGE_FAILED) {
expectedMsgId = POLL_ACK;
transmitPoll();
noteActivity();
}
}
}

View File

@ -0,0 +1,101 @@
/**
* Copyright (c) 2015 by Thomas Trojer <thomas@trojer.net>
* Copyright (c) 2016 by Ludwig Grill (www.rotzbua.de); extended example
* Decawave DW1000 library for arduino.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* @file TimestampUsageTest.ino
* This is a simple unit test for the DW1000Time class. This test
* has no actual use to the operation of the DW1000.
*/
#include <SPI.h>
#include "DW1000Time.h"
void setup() {
Serial.begin(9600);
Serial.println(F("### DW1000Time-arduino-test ###"));
}
void loop() {
// variables for the test
DW1000Time time1, time2, time3, time4;
byte stamp[DW1000Time::LENGTH_TIMESTAMP];
// unit test
Serial.println(F("simple test for + - "));
Serial.print(F("Time1 is (0)[us] ... ")); Serial.println(time1.getAsMicroSeconds(), 4);
time1 += DW1000Time(10, DW1000Time::MICROSECONDS);
Serial.print(F("Time1 is (10)[us] ... ")); Serial.println(time1.getAsMicroSeconds(), 4);
time1 -= DW1000Time(500, DW1000Time::NANOSECONDS);
Serial.print(F("Time1 is (9.5)[us] ... ")); Serial.println(time1.getAsMicroSeconds(), 4);
Serial.println();
Serial.println(F("test compare"));
time2 = time1;
time2 += DW1000Time(10.0f);
Serial.print(F("Time2 == Time1 (NO)... ")); Serial.println(time1 == time2 ? "YES" : "NO");
time1 += DW1000Time(10000, DW1000Time::NANOSECONDS);
Serial.print(F("Time2 == Time1 (YES)... ")); Serial.println(time1 == time2 ? "YES" : "NO");
Serial.println();
Serial.println(F("test different output"));
memset(stamp, 0, DW1000Time::LENGTH_TIMESTAMP);
stamp[1] = 0x02; // = 512
time2 = DW1000Time(stamp);
Serial.print(F("Time2 is (512) ... ")); Serial.println(time2);
Serial.print(F("Time2 is (0.0080)[us] ... ")); Serial.println(time2.getAsMicroSeconds(), 4);
Serial.print(F("Time2 range is (2.4022)[m] ... ")); Serial.println(time2.getAsMeters(), 4);
time3 = DW1000Time(10, DW1000Time::SECONDS);
time3.getTimestamp(stamp);
time3.setTimestamp(stamp);
Serial.print(F("Time3 is (10)[s] ... ")); Serial.println(time3.getAsMicroSeconds() * 1.0e-6, 4);
Serial.println();
Serial.println(F("test negativ value"));
memset(stamp, 0, DW1000Time::LENGTH_TIMESTAMP);
time2.setTimestamp(-512);
Serial.print(F("Time2 is (-512) ... ")); Serial.println(time2);
Serial.print(F("Time2 is (-0.0080)[us] ... ")); Serial.println(time2.getAsMicroSeconds(), 4);
Serial.print(F("Time2 range is (-2.4022)[m] ... ")); Serial.println(time2.getAsMeters(), 4);
Serial.println();
Serial.println(F("test calculation"));
time1.setTimestamp(1536);
time2.setTimestamp(512);
time3.setTimestamp(4);
time4 = (time1 + time2) / time3;
Serial.print(F("Time4 is (512) ... ")); Serial.println(time4);
time4 = (time1 - time2) / time3;
Serial.print(F("Time4 is (256) ... ")); Serial.println(time4);
time4 = (time1 * time3 * time2 - time2 * time3 * time2) / (time2 * time2);
Serial.print(F("Time4 is (8) ... ")); Serial.println(time4);
Serial.println();
Serial.println(F("test valid/maxima"));
time1.setTimestamp(DW1000Time::TIME_MAX);
time2.setTimestamp(DW1000Time::TIME_MAX);
time3.setTimestamp(2);
time4 = (time1 + time2);
Serial.print(F("Time4 is valid? (NO) ... ")); Serial.println(time4.isValidTimestamp() ? "YES" : "NO");
Serial.print(F("Time4 is TIME_MAX (NO) ... ")); Serial.println(time4 == DW1000Time::TIME_MAX ? "YES" : "NO");
time4 /= time3;
Serial.print(F("Time4 is valid? (YES) ... ")); Serial.println(time4.isValidTimestamp() ? "YES" : "NO");
Serial.print(F("Time4 is TIME_MAX (YES) ... ")); Serial.println(time4 == DW1000Time::TIME_MAX ? "YES" : "NO");
Serial.println();
// keep calm
delay(10000);
}

176
lib/DW1000/extras/LICENSE Normal file
View File

@ -0,0 +1,176 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS

2407
lib/DW1000/extras/doc/DW1000 Normal file

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@ -0,0 +1,92 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>Arduino driver library for Decawave DW1000: /home/az/Dropbox/work/Arduino/az-z/arduino-dw1000/src/DW1000CompileOptions.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Arduino driver library for Decawave DW1000
&#160;<span id="projectnumber">Dec 20 2016</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li><a href="examples.html"><span>Examples</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#define-members">Macros</a> </div>
<div class="headertitle">
<div class="title">DW1000CompileOptions.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><a href="DW1000CompileOptions_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:a0b3729c23e9f784391cae1f71512d041"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="DW1000CompileOptions_8h.html#a0b3729c23e9f784391cae1f71512d041">DW1000TIME_H_PRINTABLE</a>&#160;&#160;&#160;true</td></tr>
<tr class="separator:a0b3729c23e9f784391cae1f71512d041"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Copyright (c) 2016 by Ludwig Grill (www.rotzbua.de) Decawave DW1000 library for arduino.</p>
<p>Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at </p><pre class="fragment">http://www.apache.org/licenses/LICENSE-2.0
</pre><p>Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.</p>
<p>Here are some options to optimize code and save some ram and rom </p>
</div><h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="a0b3729c23e9f784391cae1f71512d041"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define DW1000TIME_H_PRINTABLE&#160;&#160;&#160;true</td>
</tr>
</table>
</div><div class="memdoc">
<p>Printable <a class="el" href="classDW1000Time.html">DW1000Time</a> object costs about: rom: 490 byte ; ram: 58 byte This option is needed because compiler can not optimize unused codes from inheritanced methods Some examples or debug code use this Set false if you do not need it and have to save some space </p>
</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue Dec 20 2016 01:32:18 for Arduino driver library for Decawave DW1000 by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.11
</small></address>
</body>
</html>

View File

@ -0,0 +1,63 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>Arduino driver library for Decawave DW1000: /home/az/Dropbox/work/Arduino/az-z/arduino-dw1000/src/DW1000CompileOptions.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Arduino driver library for Decawave DW1000
&#160;<span id="projectnumber">Dec 20 2016</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li><a href="examples.html"><span>Examples</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">DW1000CompileOptions.h</div> </div>
</div><!--header-->
<div class="contents">
<a href="DW1000CompileOptions_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#ifndef DW1000COMPILEOPTIONS_H</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#define DW1000COMPILEOPTIONS_H</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href="DW1000CompileOptions_8h.html#a0b3729c23e9f784391cae1f71512d041"> 31</a></span>&#160;<span class="preprocessor">#define DW1000TIME_H_PRINTABLE true</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#endif // DW1000COMPILEOPTIONS_H</span></div></div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue Dec 20 2016 01:32:18 for Arduino driver library for Decawave DW1000 by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.11
</small></address>
</body>
</html>

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,65 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>Arduino driver library for Decawave DW1000: /home/az/Dropbox/work/Arduino/az-z/arduino-dw1000/src/DW1000Device.cpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Arduino driver library for Decawave DW1000
&#160;<span id="projectnumber">Dec 20 2016</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li><a href="examples.html"><span>Examples</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">DW1000Device.cpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &quot;<a class="el" href="DW1000Device_8h_source.html">DW1000Device.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="DW1000_8h_source.html">DW1000.h</a>&quot;</code><br />
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue Dec 20 2016 01:32:18 for Arduino driver library for Decawave DW1000 by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.11
</small></address>
</body>
</html>

View File

@ -0,0 +1,94 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>Arduino driver library for Decawave DW1000: /home/az/Dropbox/work/Arduino/az-z/arduino-dw1000/src/DW1000Device.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Arduino driver library for Decawave DW1000
&#160;<span id="projectnumber">Dec 20 2016</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li><a href="examples.html"><span>Examples</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#define-members">Macros</a> </div>
<div class="headertitle">
<div class="title">DW1000Device.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &quot;<a class="el" href="DW1000Time_8h_source.html">DW1000Time.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="DW1000Mac_8h_source.html">DW1000Mac.h</a>&quot;</code><br />
</div>
<p><a href="DW1000Device_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDW1000Device.html">DW1000Device</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:a28c3d16ddd70570d6c70d1f11a2a1faa"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="DW1000Device_8h.html#a28c3d16ddd70570d6c70d1f11a2a1faa">INACTIVITY_TIME</a>&#160;&#160;&#160;1000</td></tr>
<tr class="separator:a28c3d16ddd70570d6c70d1f11a2a1faa"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="a28c3d16ddd70570d6c70d1f11a2a1faa"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define INACTIVITY_TIME&#160;&#160;&#160;1000</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue Dec 20 2016 01:32:18 for Arduino driver library for Decawave DW1000 by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.11
</small></address>
</body>
</html>

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,65 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>Arduino driver library for Decawave DW1000: /home/az/Dropbox/work/Arduino/az-z/arduino-dw1000/src/DW1000Mac.cpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Arduino driver library for Decawave DW1000
&#160;<span id="projectnumber">Dec 20 2016</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li><a href="examples.html"><span>Examples</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">DW1000Mac.cpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &quot;<a class="el" href="DW1000Mac_8h_source.html">DW1000Mac.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="DW1000Ranging_8h_source.html">DW1000Ranging.h</a>&quot;</code><br />
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue Dec 20 2016 01:32:18 for Arduino driver library for Decawave DW1000 by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.11
</small></address>
</body>
</html>

View File

@ -0,0 +1,192 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>Arduino driver library for Decawave DW1000: /home/az/Dropbox/work/Arduino/az-z/arduino-dw1000/src/DW1000Mac.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Arduino driver library for Decawave DW1000
&#160;<span id="projectnumber">Dec 20 2016</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li><a href="examples.html"><span>Examples</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#define-members">Macros</a> </div>
<div class="headertitle">
<div class="title">DW1000Mac.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &lt;Arduino.h&gt;</code><br />
<code>#include &quot;<a class="el" href="DW1000Device_8h_source.html">DW1000Device.h</a>&quot;</code><br />
</div>
<p><a href="DW1000Mac_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDW1000Mac.html">DW1000Mac</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:a2ba3ab1601625cfa3f8bf08461b05a7c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="DW1000Mac_8h.html#a2ba3ab1601625cfa3f8bf08461b05a7c">FC_1</a>&#160;&#160;&#160;0x41</td></tr>
<tr class="separator:a2ba3ab1601625cfa3f8bf08461b05a7c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad28a254e7ef6e4727b5184d3bf9d031a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="DW1000Mac_8h.html#ad28a254e7ef6e4727b5184d3bf9d031a">FC_1_BLINK</a>&#160;&#160;&#160;0xC5</td></tr>
<tr class="separator:ad28a254e7ef6e4727b5184d3bf9d031a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a67f705d74521ebfcb95c681f395d5388"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="DW1000Mac_8h.html#a67f705d74521ebfcb95c681f395d5388">FC_2</a>&#160;&#160;&#160;0x8C</td></tr>
<tr class="separator:a67f705d74521ebfcb95c681f395d5388"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aafa3d58fff9713bbbc8a3809314d4900"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="DW1000Mac_8h.html#aafa3d58fff9713bbbc8a3809314d4900">FC_2_SHORT</a>&#160;&#160;&#160;0x88</td></tr>
<tr class="separator:aafa3d58fff9713bbbc8a3809314d4900"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a88107fce892aafcbaf927e1e42222420"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="DW1000Mac_8h.html#a88107fce892aafcbaf927e1e42222420">PAN_ID_1</a>&#160;&#160;&#160;0xCA</td></tr>
<tr class="separator:a88107fce892aafcbaf927e1e42222420"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a011d9c176ed4ceedec064aa5aeaa20e8"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="DW1000Mac_8h.html#a011d9c176ed4ceedec064aa5aeaa20e8">PAN_ID_2</a>&#160;&#160;&#160;0xDE</td></tr>
<tr class="separator:a011d9c176ed4ceedec064aa5aeaa20e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a85c4b1faaa02403bc64b752104056612"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="DW1000Mac_8h.html#a85c4b1faaa02403bc64b752104056612">SHORT_MAC_LEN</a>&#160;&#160;&#160;9</td></tr>
<tr class="separator:a85c4b1faaa02403bc64b752104056612"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af1800432b24b2a1d74440a39b3f38c66"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="DW1000Mac_8h.html#af1800432b24b2a1d74440a39b3f38c66">LONG_MAC_LEN</a>&#160;&#160;&#160;15</td></tr>
<tr class="separator:af1800432b24b2a1d74440a39b3f38c66"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="a2ba3ab1601625cfa3f8bf08461b05a7c"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define FC_1&#160;&#160;&#160;0x41</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ad28a254e7ef6e4727b5184d3bf9d031a"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define FC_1_BLINK&#160;&#160;&#160;0xC5</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a67f705d74521ebfcb95c681f395d5388"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define FC_2&#160;&#160;&#160;0x8C</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="aafa3d58fff9713bbbc8a3809314d4900"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define FC_2_SHORT&#160;&#160;&#160;0x88</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="af1800432b24b2a1d74440a39b3f38c66"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define LONG_MAC_LEN&#160;&#160;&#160;15</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a88107fce892aafcbaf927e1e42222420"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define PAN_ID_1&#160;&#160;&#160;0xCA</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a011d9c176ed4ceedec064aa5aeaa20e8"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define PAN_ID_2&#160;&#160;&#160;0xDE</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a85c4b1faaa02403bc64b752104056612"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define SHORT_MAC_LEN&#160;&#160;&#160;9</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue Dec 20 2016 01:32:18 for Arduino driver library for Decawave DW1000 by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.11
</small></address>
</body>
</html>

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,86 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>Arduino driver library for Decawave DW1000: /home/az/Dropbox/work/Arduino/az-z/arduino-dw1000/src/DW1000Ranging.cpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Arduino driver library for Decawave DW1000
&#160;<span id="projectnumber">Dec 20 2016</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li><a href="examples.html"><span>Examples</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#var-members">Variables</a> </div>
<div class="headertitle">
<div class="title">DW1000Ranging.cpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &quot;<a class="el" href="DW1000Ranging_8h_source.html">DW1000Ranging.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="DW1000Device_8h_source.html">DW1000Device.h</a>&quot;</code><br />
</div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
Variables</h2></td></tr>
<tr class="memitem:ab57327c978e98522ccdfbb8f22ffde14"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classDW1000RangingClass.html">DW1000RangingClass</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="DW1000Ranging_8cpp.html#ab57327c978e98522ccdfbb8f22ffde14">DW1000Ranging</a></td></tr>
<tr class="separator:ab57327c978e98522ccdfbb8f22ffde14"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Variable Documentation</h2>
<a class="anchor" id="ab57327c978e98522ccdfbb8f22ffde14"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classDW1000RangingClass.html">DW1000RangingClass</a> DW1000Ranging</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue Dec 20 2016 01:32:18 for Arduino driver library for Decawave DW1000 by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.11
</small></address>
</body>
</html>

View File

@ -0,0 +1,339 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>Arduino driver library for Decawave DW1000: /home/az/Dropbox/work/Arduino/az-z/arduino-dw1000/src/DW1000Ranging.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Arduino driver library for Decawave DW1000
&#160;<span id="projectnumber">Dec 20 2016</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li><a href="examples.html"><span>Examples</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#define-members">Macros</a> &#124;
<a href="#var-members">Variables</a> </div>
<div class="headertitle">
<div class="title">DW1000Ranging.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &quot;<a class="el" href="DW1000_8h_source.html">DW1000.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="DW1000Time_8h_source.html">DW1000Time.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="DW1000Device_8h_source.html">DW1000Device.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="DW1000Mac_8h_source.html">DW1000Mac.h</a>&quot;</code><br />
</div>
<p><a href="DW1000Ranging_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDW1000RangingClass.html">DW1000RangingClass</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:a31a318f1fa3824e23ca602dde126e0f4"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="DW1000Ranging_8h.html#a31a318f1fa3824e23ca602dde126e0f4">POLL</a>&#160;&#160;&#160;0</td></tr>
<tr class="separator:a31a318f1fa3824e23ca602dde126e0f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad1b866ba00b0b59bca428facb47111f2"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="DW1000Ranging_8h.html#ad1b866ba00b0b59bca428facb47111f2">POLL_ACK</a>&#160;&#160;&#160;1</td></tr>
<tr class="separator:ad1b866ba00b0b59bca428facb47111f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac04dd0afaf7ea3eb2ade2544d2d5f907"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="DW1000Ranging_8h.html#ac04dd0afaf7ea3eb2ade2544d2d5f907">RANGE</a>&#160;&#160;&#160;2</td></tr>
<tr class="separator:ac04dd0afaf7ea3eb2ade2544d2d5f907"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8ef494c3427e5b067ab25a3af6712cd3"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="DW1000Ranging_8h.html#a8ef494c3427e5b067ab25a3af6712cd3">RANGE_REPORT</a>&#160;&#160;&#160;3</td></tr>
<tr class="separator:a8ef494c3427e5b067ab25a3af6712cd3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab16290e97ab409e88c6448d78facaf15"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="DW1000Ranging_8h.html#ab16290e97ab409e88c6448d78facaf15">RANGE_FAILED</a>&#160;&#160;&#160;255</td></tr>
<tr class="separator:ab16290e97ab409e88c6448d78facaf15"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a38eec52a7dccb94ff563e30eda32c891"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="DW1000Ranging_8h.html#a38eec52a7dccb94ff563e30eda32c891">BLINK</a>&#160;&#160;&#160;4</td></tr>
<tr class="separator:a38eec52a7dccb94ff563e30eda32c891"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa5e94088b39039c6b0830ca1a15ba1cc"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="DW1000Ranging_8h.html#aa5e94088b39039c6b0830ca1a15ba1cc">RANGING_INIT</a>&#160;&#160;&#160;5</td></tr>
<tr class="separator:aa5e94088b39039c6b0830ca1a15ba1cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a20e49049e1f8257c69c633f2781b2f03"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="DW1000Ranging_8h.html#a20e49049e1f8257c69c633f2781b2f03">LEN_DATA</a>&#160;&#160;&#160;90</td></tr>
<tr class="separator:a20e49049e1f8257c69c633f2781b2f03"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4e132cfaa78353e3af1474a86b2dd535"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="DW1000Ranging_8h.html#a4e132cfaa78353e3af1474a86b2dd535">MAX_DEVICES</a>&#160;&#160;&#160;4</td></tr>
<tr class="separator:a4e132cfaa78353e3af1474a86b2dd535"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a20243a347c78f90547b2759e8061c60e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="DW1000Ranging_8h.html#a20243a347c78f90547b2759e8061c60e">DEFAULT_RST_PIN</a>&#160;&#160;&#160;9</td></tr>
<tr class="separator:a20243a347c78f90547b2759e8061c60e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7f51f457e4bffd56632c8e25b9d0d8fd"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="DW1000Ranging_8h.html#a7f51f457e4bffd56632c8e25b9d0d8fd">DEFAULT_SPI_SS_PIN</a>&#160;&#160;&#160;10</td></tr>
<tr class="separator:a7f51f457e4bffd56632c8e25b9d0d8fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a256da093f3cef695d153808745562ff4"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="DW1000Ranging_8h.html#a256da093f3cef695d153808745562ff4">DEFAULT_RESET_PERIOD</a>&#160;&#160;&#160;200</td></tr>
<tr class="separator:a256da093f3cef695d153808745562ff4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a33bf8c7e717a0c67d4e767bfc76a4f8b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="DW1000Ranging_8h.html#a33bf8c7e717a0c67d4e767bfc76a4f8b">DEFAULT_REPLY_DELAY_TIME</a>&#160;&#160;&#160;7000</td></tr>
<tr class="separator:a33bf8c7e717a0c67d4e767bfc76a4f8b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afc3d101f633a076cc1ca84b85b6224b2"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="DW1000Ranging_8h.html#afc3d101f633a076cc1ca84b85b6224b2">TAG</a>&#160;&#160;&#160;0</td></tr>
<tr class="separator:afc3d101f633a076cc1ca84b85b6224b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa4f4f475d870788649ecd1b2c23c76e1"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="DW1000Ranging_8h.html#aa4f4f475d870788649ecd1b2c23c76e1">ANCHOR</a>&#160;&#160;&#160;1</td></tr>
<tr class="separator:aa4f4f475d870788649ecd1b2c23c76e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8dad71f05e84e9e47a69467b8a3a2551"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="DW1000Ranging_8h.html#a8dad71f05e84e9e47a69467b8a3a2551">DEFAULT_TIMER_DELAY</a>&#160;&#160;&#160;80</td></tr>
<tr class="separator:a8dad71f05e84e9e47a69467b8a3a2551"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad72dbcf6d0153db1b8d8a58001feed83"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="DW1000Ranging_8h.html#ad72dbcf6d0153db1b8d8a58001feed83">DEBUG</a>&#160;&#160;&#160;false</td></tr>
<tr class="separator:ad72dbcf6d0153db1b8d8a58001feed83"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
Variables</h2></td></tr>
<tr class="memitem:ab57327c978e98522ccdfbb8f22ffde14"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classDW1000RangingClass.html">DW1000RangingClass</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="DW1000Ranging_8h.html#ab57327c978e98522ccdfbb8f22ffde14">DW1000Ranging</a></td></tr>
<tr class="separator:ab57327c978e98522ccdfbb8f22ffde14"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="aa4f4f475d870788649ecd1b2c23c76e1"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define ANCHOR&#160;&#160;&#160;1</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a38eec52a7dccb94ff563e30eda32c891"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define BLINK&#160;&#160;&#160;4</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ad72dbcf6d0153db1b8d8a58001feed83"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define DEBUG&#160;&#160;&#160;false</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a33bf8c7e717a0c67d4e767bfc76a4f8b"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define DEFAULT_REPLY_DELAY_TIME&#160;&#160;&#160;7000</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a256da093f3cef695d153808745562ff4"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define DEFAULT_RESET_PERIOD&#160;&#160;&#160;200</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a20243a347c78f90547b2759e8061c60e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define DEFAULT_RST_PIN&#160;&#160;&#160;9</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a7f51f457e4bffd56632c8e25b9d0d8fd"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define DEFAULT_SPI_SS_PIN&#160;&#160;&#160;10</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a8dad71f05e84e9e47a69467b8a3a2551"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define DEFAULT_TIMER_DELAY&#160;&#160;&#160;80</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a20e49049e1f8257c69c633f2781b2f03"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define LEN_DATA&#160;&#160;&#160;90</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a4e132cfaa78353e3af1474a86b2dd535"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MAX_DEVICES&#160;&#160;&#160;4</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a31a318f1fa3824e23ca602dde126e0f4"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define POLL&#160;&#160;&#160;0</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ad1b866ba00b0b59bca428facb47111f2"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define POLL_ACK&#160;&#160;&#160;1</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ac04dd0afaf7ea3eb2ade2544d2d5f907"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define RANGE&#160;&#160;&#160;2</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ab16290e97ab409e88c6448d78facaf15"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define RANGE_FAILED&#160;&#160;&#160;255</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a8ef494c3427e5b067ab25a3af6712cd3"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define RANGE_REPORT&#160;&#160;&#160;3</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="aa5e94088b39039c6b0830ca1a15ba1cc"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define RANGING_INIT&#160;&#160;&#160;5</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="afc3d101f633a076cc1ca84b85b6224b2"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define TAG&#160;&#160;&#160;0</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Variable Documentation</h2>
<a class="anchor" id="ab57327c978e98522ccdfbb8f22ffde14"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classDW1000RangingClass.html">DW1000RangingClass</a> DW1000Ranging</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue Dec 20 2016 01:32:18 for Arduino driver library for Decawave DW1000 by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.11
</small></address>
</body>
</html>

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,69 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>Arduino driver library for Decawave DW1000: /home/az/Dropbox/work/Arduino/az-z/arduino-dw1000/src/DW1000Time.cpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Arduino driver library for Decawave DW1000
&#160;<span id="projectnumber">Dec 20 2016</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li><a href="examples.html"><span>Examples</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">DW1000Time.cpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &quot;<a class="el" href="DW1000Time_8h_source.html">DW1000Time.h</a>&quot;</code><br />
</div><a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Copyright (c) 2015 by Thomas Trojer <a href="#" onclick="location.href='mai'+'lto:'+'tho'+'ma'+'s@t'+'ro'+'jer'+'.n'+'et'; return false;">thoma<span style="display: none;">.nosp@m.</span>s@tr<span style="display: none;">.nosp@m.</span>ojer.<span style="display: none;">.nosp@m.</span>net</a> Copyright (c) 2016 by Ludwig Grill (www.rotzbua.de); refactored class Decawave DW1000 library for arduino.</p>
<p>Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at </p><pre class="fragment">http://www.apache.org/licenses/LICENSE-2.0
</pre><p>Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.</p>
<p>Arduino driver library timestamp wrapper (source file) for the Decawave DW1000 UWB transceiver IC. </p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue Dec 20 2016 01:32:18 for Arduino driver library for Decawave DW1000 by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.11
</small></address>
</body>
</html>

View File

@ -0,0 +1,88 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>Arduino driver library for Decawave DW1000: /home/az/Dropbox/work/Arduino/az-z/arduino-dw1000/src/DW1000Time.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Arduino driver library for Decawave DW1000
&#160;<span id="projectnumber">Dec 20 2016</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li><a href="examples.html"><span>Examples</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> </div>
<div class="headertitle">
<div class="title">DW1000Time.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &lt;Arduino.h&gt;</code><br />
<code>#include &lt;stdint.h&gt;</code><br />
<code>#include &lt;inttypes.h&gt;</code><br />
<code>#include &quot;<a class="el" href="DW1000CompileOptions_8h_source.html">DW1000CompileOptions.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="deprecated_8h_source.html">deprecated.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="require__cpp11_8h_source.html">require_cpp11.h</a>&quot;</code><br />
</div>
<p><a href="DW1000Time_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDW1000Time.html">DW1000Time</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Copyright (c) 2015 by Thomas Trojer <a href="#" onclick="location.href='mai'+'lto:'+'tho'+'ma'+'s@t'+'ro'+'jer'+'.n'+'et'; return false;">thoma<span style="display: none;">.nosp@m.</span>s@tr<span style="display: none;">.nosp@m.</span>ojer.<span style="display: none;">.nosp@m.</span>net</a> Copyright (c) 2016 by Ludwig Grill (www.rotzbua.de); refactored class Decawave DW1000 library for arduino.</p>
<p>Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at </p><pre class="fragment">http://www.apache.org/licenses/LICENSE-2.0
</pre><p>Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.</p>
<p>Arduino driver library timestamp wrapper (header file) for the Decawave DW1000 UWB transceiver IC.</p>
<ul>
<li>avoid/remove floating operations, expensive on most microprocessors</li>
</ul>
<dl class="section note"><dt>Note</dt><dd>comments in cpp file, makes .h smaller and gives a better overview about available methods and variables. </dd></dl>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue Dec 20 2016 01:32:18 for Arduino driver library for Decawave DW1000 by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.11
</small></address>
</body>
</html>

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,85 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>Arduino driver library for Decawave DW1000: /home/az/Dropbox/work/Arduino/az-z/arduino-dw1000/src/DW1000.cpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Arduino driver library for Decawave DW1000
&#160;<span id="projectnumber">Dec 20 2016</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li><a href="examples.html"><span>Examples</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#var-members">Variables</a> </div>
<div class="headertitle">
<div class="title">DW1000.cpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &quot;<a class="el" href="DW1000_8h_source.html">DW1000.h</a>&quot;</code><br />
</div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
Variables</h2></td></tr>
<tr class="memitem:a7a7634e6006e4715ffa93b16e2f20670"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classDW1000Class.html">DW1000Class</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="DW1000_8cpp.html#a7a7634e6006e4715ffa93b16e2f20670">DW1000</a></td></tr>
<tr class="separator:a7a7634e6006e4715ffa93b16e2f20670"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Variable Documentation</h2>
<a class="anchor" id="a7a7634e6006e4715ffa93b16e2f20670"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classDW1000Class.html">DW1000Class</a> DW1000</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue Dec 20 2016 01:32:18 for Arduino driver library for Decawave DW1000 by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.11
</small></address>
</body>
</html>

View File

@ -0,0 +1,99 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>Arduino driver library for Decawave DW1000: /home/az/Dropbox/work/Arduino/az-z/arduino-dw1000/src/DW1000.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Arduino driver library for Decawave DW1000
&#160;<span id="projectnumber">Dec 20 2016</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li><a href="examples.html"><span>Examples</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#var-members">Variables</a> </div>
<div class="headertitle">
<div class="title">DW1000.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &lt;stdio.h&gt;</code><br />
<code>#include &lt;stdlib.h&gt;</code><br />
<code>#include &lt;string.h&gt;</code><br />
<code>#include &lt;Arduino.h&gt;</code><br />
<code>#include &lt;SPI.h&gt;</code><br />
<code>#include &quot;<a class="el" href="DW1000Constants_8h_source.html">DW1000Constants.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="DW1000Time_8h_source.html">DW1000Time.h</a>&quot;</code><br />
</div>
<p><a href="DW1000_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDW1000Class.html">DW1000Class</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
Variables</h2></td></tr>
<tr class="memitem:a7a7634e6006e4715ffa93b16e2f20670"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classDW1000Class.html">DW1000Class</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="DW1000_8h.html#a7a7634e6006e4715ffa93b16e2f20670">DW1000</a></td></tr>
<tr class="separator:a7a7634e6006e4715ffa93b16e2f20670"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Variable Documentation</h2>
<a class="anchor" id="a7a7634e6006e4715ffa93b16e2f20670"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classDW1000Class.html">DW1000Class</a> DW1000</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue Dec 20 2016 01:32:18 for Arduino driver library for Decawave DW1000 by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.11
</small></address>
</body>
</html>

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,69 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>Arduino driver library for Decawave DW1000: Class List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Arduino driver library for Decawave DW1000
&#160;<span id="projectnumber">Dec 20 2016</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li><a href="examples.html"><span>Examples</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li class="current"><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">Class List</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock">Here are the classes, structs, unions and interfaces with brief descriptions:</div><div class="directory">
<table class="directory">
<tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classDW1000Class.html" target="_self">DW1000Class</a></td><td class="desc"></td></tr>
<tr id="row_1_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classDW1000Device.html" target="_self">DW1000Device</a></td><td class="desc"></td></tr>
<tr id="row_2_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classDW1000Mac.html" target="_self">DW1000Mac</a></td><td class="desc"></td></tr>
<tr id="row_3_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classDW1000RangingClass.html" target="_self">DW1000RangingClass</a></td><td class="desc"></td></tr>
<tr id="row_4_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classDW1000Time.html" target="_self">DW1000Time</a></td><td class="desc"></td></tr>
</table>
</div><!-- directory -->
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue Dec 20 2016 01:32:18 for Arduino driver library for Decawave DW1000 by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.11
</small></address>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 246 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 229 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 676 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 147 B

View File

@ -0,0 +1,269 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>Arduino driver library for Decawave DW1000: Member List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Arduino driver library for Decawave DW1000
&#160;<span id="projectnumber">Dec 20 2016</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li><a href="examples.html"><span>Examples</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">DW1000Class Member List</div> </div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="classDW1000Class.html">DW1000Class</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#a7265af5c67d8173f96611cc66469c886">_antennaDelay</a></td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#a1777a54e2e3e020edd65830f3f5b011a">_chanctrl</a></td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#a8f2f5525ea00c6ddb6f8d85e7b697b92">_channel</a></td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#ab2d4ebf96a09f576116c17a94814232b">_currentSPI</a></td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#ae2a25ad4e0e188d342982af301e6ef41">_dataRate</a></td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#a28427e35263433bf1c5d885a8f08e243">_deviceMode</a></td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#afec7b263a16bede17980541542e2b5c0">_extendedFrameLength</a></td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#af5744822c1636a473610a61d7cb3802d">_fastSPI</a></td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#ab26a1142c6bc51f118d291299dea8d34">_frameCheck</a></td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#af1aa1ae60a51a23d278c34178176cdfe">_handleError</a></td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#ab47d41cd630e2c9ba7cc54cf0e75754b">_handleReceived</a></td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#a66ebbf42ba0393159ece639ac715faf8">_handleReceiveFailed</a></td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#a91876dcd29c2f4da32ef4e1dc664b8c3">_handleReceiveTimeout</a></td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#a9df8f395da5ec7dd20293487546f00da">_handleReceiveTimestampAvailable</a></td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#a192b7fc278438a3307a0779a5f9b045f">_handleSent</a></td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#a971e962330ef86a9e034cde5d73cac99">_irq</a></td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#a699f1f0c2e8f057e0990a3d53224d7b5">_networkAndAddress</a></td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#adbfe33c05c8f117aff0664a623011aec">_pacSize</a></td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#aee4d7cf07b9af0705a3d330927d9d302">_permanentReceive</a></td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#a65e115b9d9473ee004d9263cfac6ed2d">_preambleCode</a></td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#a1fb69206b719ce6dcf68319fa7662fdf">_preambleLength</a></td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#a8f21f12d84ee9aa4eab34211afde1ac5">_pulseFrequency</a></td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#ab60910b9c2f19b6ac09c272ae42cb57f">_rst</a></td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#ad40a01e790d9c1bae930f30561b77084">_slowSPI</a></td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#a9cb0fb7dfec16b4d9a3af66f9ca815ae">_smartPower</a></td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#a72a7de429001c279fba214fe998f9989">_ss</a></td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#a2eb02efbad2cac7ce19a026b4f530651">_syscfg</a></td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#a92628ba5c45e9c5057bfc51ed0984aa6">_sysctrl</a></td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#ae65314bf09a19e2036c0dfd33c8aad13">_sysmask</a></td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#a16daf0629b128395bb298268de42392b">_sysstatus</a></td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#afd11cc5c96c77e06faf458bcafff75da">_tmeas23C</a></td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#aae5483ac0ccc0f76006af57616f3ec33">_txfctrl</a></td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#a0eecd85c1a7fe78133528eb2ee0c8f91">_vmeas3v3</a></td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#ab2bdeb8c3e665686511d20b3e98447ef">attachErrorHandler</a>(void(*handleError)(void))</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#a114f68401a4e8832898817edc6a3c4d6">attachReceivedHandler</a>(void(*handleReceived)(void))</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#a3917b58d7b8b16a3d6209c6243748911">attachReceiveFailedHandler</a>(void(*handleReceiveFailed)(void))</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#a7482aeede5b47b6e100c491e9356b2d4">attachReceiveTimeoutHandler</a>(void(*handleReceiveTimeout)(void))</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#a1f8fa61ddaf49a5f85728a11844027c3">attachReceiveTimestampAvailableHandler</a>(void(*handleReceiveTimestampAvailable)(void))</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#a2b02ecfd1d43711c9d3959bd223d7192">attachSentHandler</a>(void(*handleSent)(void))</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#a51ea15737517c5a32919f6d00bf6aaab">AUTO_CLOCK</a></td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#a59b862b3a40d42eb64fab1a85dc12147">begin</a>(uint8_t irq, uint8_t rst=0xff)</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#ac0083e2e4f9c8b2b8c5d07d8863865ab">BIAS_500_16</a></td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#a21636f8093a43b98ba94f267316fd3f8">BIAS_500_16_ZERO</a></td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#a3e49c04a1a811e21f8e94d6e9a2cf11f">BIAS_500_64</a></td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#ae5dd69700316895ed7c7d15e1b96d6e5">BIAS_500_64_ZERO</a></td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#a4e7fff2ae6c8b9871e9755b4a4cb6b96">BIAS_900_16</a></td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#ac4f49524ce3fd43c60e54f1a835f8458">BIAS_900_16_ZERO</a></td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#a7f0e2864171a963b6947b169ccf3da80">BIAS_900_64</a></td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#a6310b5718bb31694e10138048d410e9d">BIAS_900_64_ZERO</a></td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#ae3376bb609be6882ac20c2cc2c44ce6f">CHANNEL_1</a></td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#a55be485a91bb857bc43cafac191e41d8">CHANNEL_2</a></td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#a9081a02aa066ea5efdd0807fcee838b9">CHANNEL_3</a></td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#aff1aa70ed700e6b9b7e5ee75e3c09c13">CHANNEL_4</a></td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#a334c7b83cee55a443a55366de35dbc09">CHANNEL_5</a></td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#ae184e52351cce8cba4888b0a52cf0578">CHANNEL_7</a></td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#a975ac277d365d41b80e3ba62f7479bda">clearAllStatus</a>()</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#a70dad45b7bcbd302b1cacac10d5dcec7">clearInterrupts</a>()</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#a9385fd426c55b028a092afebca415276">clearReceiveStatus</a>()</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#ab58f1edbf0e63f5258480ab0dc160c84">clearReceiveTimestampAvailableStatus</a>()</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#aa98cb6220d26f837ec971f68b1b1106d">clearTransmitStatus</a>()</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#a50e230d4ac0df27e1e1b0ce50242adc2">commitConfiguration</a>()</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#a43e2a1360a222c250b885013e291e123">convertToByte</a>(char string[], byte *eui_byte)</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#a6ff701dc55e2b63d40ae09cf663afed5">correctTimestamp</a>(DW1000Time &amp;timestamp)</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#ac3bd00b1a7c8aac778b8d433486acbb4">enableClock</a>(byte clock)</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#a3e0701b9373ec91c3e01ec96a0165ff8">enableMode</a>(const byte mode[])</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#a59588135a77c75863aeb96a9035c7618">end</a>()</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#ac08b428fc2e6d6eb92fbe731a337993c">FRAME_LENGTH_EXTENDED</a></td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#adeca7dcf1aba960907376fdd674663d0">FRAME_LENGTH_NORMAL</a></td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#accae9d26cbdbe3f11ad5dc7ccb61256e">getBit</a>(byte data[], uint16_t n, uint16_t bit)</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#a2c5670816e9b012db1ebf9f97ff95c9c">getData</a>(byte data[], uint16_t n)</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#aceceda472bfe5ec7c2c558f1fdec8dfb">getData</a>(String &amp;data)</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#a53023a80f36316c3247f20f089f0c242">getDataLength</a>()</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#a032e2ba1683e540bba8644583ccf7186">getFirstPathPower</a>()</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#a24a0cec64a87a0b3d90ae0b024761571">getPrettyBytes</a>(byte cmd, uint16_t offset, char msgBuffer[], uint16_t n)</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#a046f1c51fde5ebe71849685f472d1e90">getPrettyBytes</a>(byte data[], char msgBuffer[], uint16_t n)</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#a757c2dc620cf66577c3724c3b9167282">getPrintableDeviceIdentifier</a>(char msgBuffer[])</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#aba6a8396bc6d5aa5cecc103c6cadbd4f">getPrintableDeviceMode</a>(char msgBuffer[])</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#a28eb2587d1fad7904f6a5f47dbd6b8b8">getPrintableExtendedUniqueIdentifier</a>(char msgBuffer[])</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#a960722efa3e20f61baeaf5ebee439282">getPrintableNetworkIdAndShortAddress</a>(char msgBuffer[])</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#a22468e4271cf51cbec24eaeb48ec7594">getPulseFrequency</a>()</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#a0c0119a9b51ae925b68bc3c7d2168b4b">getReceivePower</a>()</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#a035ad318af691d2d7d825e8ceee4aeb0">getReceiveQuality</a>()</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#ad0031f6b7304cbdc2c982220aed37c87">getReceiveTimestamp</a>(DW1000Time &amp;time)</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#acb22958051ebfe461cc850912906c495">getReceiveTimestamp</a>(byte data[])</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#a9f2a21896bca8354fe45b84ada2fc945">getSystemTimestamp</a>(DW1000Time &amp;time)</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#a6aa78410a635eac8cc15e3767c3c0622">getSystemTimestamp</a>(byte data[])</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#a1c181906517ea9d88567a8401d148c91">getTempAndVbat</a>(float &amp;temp, float &amp;vbat)</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#ac7225bb60abc7ff0e8860dce7c786086">getTransmitTimestamp</a>(DW1000Time &amp;time)</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#a58a3abb95bdd5ba7648675009b9cb28d">getTransmitTimestamp</a>(byte data[])</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#a8d86f35901523068f976774fd5fc0da2">handleInterrupt</a>()</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#a02b962429abec24f14178d33fe1079df">idle</a>()</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#a9f4657110d02779f0de43d85b8725396">interruptOnAutomaticAcknowledgeTrigger</a>(boolean val)</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#acc5fc4e41a2ab337a70e95dbc215aebe">interruptOnReceived</a>(boolean val)</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#a472093d784aa8416285ee765688ab773">interruptOnReceiveFailed</a>(boolean val)</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#aad08e4166cc8e2b2c5db8bd4bf6a4a99">interruptOnReceiveTimeout</a>(boolean val)</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#a597f9d029985f7c4bad31b4b1a8febd4">interruptOnReceiveTimestampAvailable</a>(boolean val)</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#aecec6bbac162b4906be77972e00ca30c">interruptOnSent</a>(boolean val)</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#afc4187be0eef678b44bca3c50bf9978a">isClockProblem</a>()</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#a54cb7f137f76e716659ede5ab45b9fb9">isReceiveDone</a>()</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#a7775671b9a6fd333b282b07763ccf070">isReceiveFailed</a>()</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#a33c9e5426b5ef0d4935c6f8c314adfb2">isReceiveTimeout</a>()</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#ab8e998d008a32c8e8b300d4802caf824">isReceiveTimestampAvailable</a>()</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#adfd211dbc2fcdafaa691d70c4c9f6a92">isTransmitDone</a>()</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#ab9c59dffa5f686c9f301e5e000ee54e5">manageLDE</a>()</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#af714130b2145d3df7501662d53c0704f">MODE_LONGDATA_FAST_ACCURACY</a></td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#a66505596b1f1732962b416ba2c2ecf68">MODE_LONGDATA_FAST_LOWPOWER</a></td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#a5fbd14d4ad8f3fea697a13a101274a4b">MODE_LONGDATA_RANGE_ACCURACY</a></td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#a8a8399fd13065fdeb044aac17ac03bc1">MODE_LONGDATA_RANGE_LOWPOWER</a></td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#a8f3d76ecd2d746b404d48ebd65d69b37">MODE_SHORTDATA_FAST_ACCURACY</a></td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#a37625d594b38dd4b6bc5c91800ee4ed6">MODE_SHORTDATA_FAST_LOWPOWER</a></td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#a407b2fff98dab43ed909495a46373468">newConfiguration</a>()</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#a0465bc46e3f60596857abb0cdd5af03c">newReceive</a>()</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#a6213359c5e788b50154c8d6fd9bf388c">newTransmit</a>()</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#a0dcf373ae85b564a68d81e010b4c019c">nibbleFromChar</a>(char c)</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#a7299182030e724c945da4e1287b1baa2">PAC_SIZE_16</a></td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#a6841c902935f8f9bc5ba3b8c0c1f6a03">PAC_SIZE_32</a></td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#a5ab09a38555907a3ed192327e59549e1">PAC_SIZE_64</a></td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#ac32df577e243f00af126b37471b43842">PAC_SIZE_8</a></td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#a5e44edce154027d25b659819c012f53a">PLL_CLOCK</a></td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#acebad719d6b9cdbdd082cc558eb19957">PREAMBLE_CODE_16MHZ_1</a></td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#ac5af59227dc168751b1f9081ec667e27">PREAMBLE_CODE_16MHZ_2</a></td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#a72a13ba0ba686886df793ae21bfae396">PREAMBLE_CODE_16MHZ_3</a></td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#a52696fe17f4d7414777c6749c6adec7f">PREAMBLE_CODE_16MHZ_4</a></td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#a6149cc573edf67578df196c85c5cbddf">PREAMBLE_CODE_16MHZ_5</a></td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#a494f0920f61b9437eb44d9c254599fcf">PREAMBLE_CODE_16MHZ_6</a></td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#af10afef2a08f9b0638f8fa89ff1b30d6">PREAMBLE_CODE_16MHZ_7</a></td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#a002fd236de780082b59ef0b34809d490">PREAMBLE_CODE_16MHZ_8</a></td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#aa629314ba0d71f482ecb9f2ca6d9251c">PREAMBLE_CODE_64MHZ_10</a></td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#a858e5c682bc441a6e84a941732f0185d">PREAMBLE_CODE_64MHZ_11</a></td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#a3561c732264433c47d0a5c835f74f26b">PREAMBLE_CODE_64MHZ_12</a></td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#a2462b0d8742779eba696c9ecdb9b018d">PREAMBLE_CODE_64MHZ_17</a></td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#a64a6afc3486b94e5afff371c7a35b103">PREAMBLE_CODE_64MHZ_18</a></td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#ad96bd50062c124615e5d664e59cd64c4">PREAMBLE_CODE_64MHZ_19</a></td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#a34d8d6c2aaa65d02c6093d35fab880f8">PREAMBLE_CODE_64MHZ_20</a></td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#af6633e434da2f7aab6c95d584c8e1ba6">PREAMBLE_CODE_64MHZ_9</a></td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#a31f5e81c1ac73daf7b26aec67ebc9552">READ</a></td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#a9db712b3e9872a6a148e53a90fc53204">READ_SUB</a></td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#af163ec9c195c9854f51959a6276e92bb">readBytes</a>(byte cmd, uint16_t offset, byte data[], uint16_t n)</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#ab5c8e7c24fe945722913eee8e062178b">readBytesOTP</a>(uint16_t address, byte data[])</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#a7b2cc4b8d7f04e8f02140a4000b4ce18">readChannelControlRegister</a>()</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#a1a97a9e117c7d2a8e821276063f60082">readNetworkIdAndDeviceAddress</a>()</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#a266d8bff7e8374bed37f56db11ad5aab">readSystemConfigurationRegister</a>()</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#a01f0844696513cd33c8f076f944d60e7">readSystemEventMaskRegister</a>()</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#a9de9acf7a7b79d50af561de68e95bc83">readSystemEventStatusRegister</a>()</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#a9eb2d38a38c878314291dc6759276a0a">readTransmitFrameControlRegister</a>()</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#a0d7b4fe610e946633d0bf7c1e4f1e27e">receivePermanently</a>(boolean val)</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#a158b7db4ffef8809c7ddc9548c3a4497">reselect</a>(uint8_t ss)</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#a99f7a8f0fc4b4b20e96c2204518038a3">reset</a>()</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#a61a0a3f3b3913825a9f7e36dec736a3a">RW_SUB_EXT</a></td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#af5111be6753148221357c74245311624">select</a>(uint8_t ss)</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#a14b341e885a725909445c2a28b1efdfa">setBit</a>(byte data[], uint16_t n, uint16_t bit, boolean val)</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#abaf3065f30fdf41eb77b99ab30f81586">setChannel</a>(byte channel)</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#ab0c51ebe05e5525bb250b3f0ab3f286e">setData</a>(byte data[], uint16_t n)</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#a9e76a6d2d8ac8935225845121358db9a">setData</a>(const String &amp;data)</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#a33a0d48330a15629d8b98068d385bb4f">setDataRate</a>(byte rate)</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#a07dcb51bbdd1d2628aca0aebcd4e8648">setDefaults</a>()</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#a40340908db42ae49b44fad5804121aaa">setDelay</a>(const DW1000Time &amp;delay)</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#ae47c9a3c5f8a202a72c11a6ee5099749">setDeviceAddress</a>(uint16_t val)</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#a05342d22e7ad6adbec5b8d52fa66183b">setDoubleBuffering</a>(boolean val)</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#a0774cee4227d26ae17dc3da283de4d22">setEUI</a>(char eui[])</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#ae9ec537d9733f68dabeeee45126cd0a6">setEUI</a>(byte eui[])</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#a1b9c117107dc1fed4f00f6e899fad915">setFrameFilter</a>(boolean val)</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#ab2ca1c21a5742009a318ab572552b8aa">setFrameFilterAllowAcknowledgement</a>(boolean val)</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#a4ee01a8df320edcfd1b45f98e8fedcfe">setFrameFilterAllowBeacon</a>(boolean val)</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#a90efabcfe618f98e0f7c326ae34aecfd">setFrameFilterAllowData</a>(boolean val)</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#a2d8acfc729ae9656f9347a084e960941">setFrameFilterAllowMAC</a>(boolean val)</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#af6cbedd9693242de46b1880b49a4fa82">setFrameFilterAllowReserved</a>(boolean val)</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#a33c828922b72dc6c43d3057817ce015a">setFrameFilterBehaveCoordinator</a>(boolean val)</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#a5948322fa674b74c0d16ac8997dc701b">setInterruptPolarity</a>(boolean val)</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#a332e90d3b8fc200f2a6ffd4dbffa4786">setNetworkId</a>(uint16_t val)</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#a5b5f551eaa346b7c724aa9e9895cdb15">setPreambleCode</a>(byte preacode)</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#a49962ad99ef5c1cccd01c55bb4dbfa36">setPreambleLength</a>(byte prealen)</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#a06b2868d23f50189b22b6a67f089e04d">setPulseFrequency</a>(byte freq)</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#a53e17fac6b38319d6caca584c5ab34ca">setReceiverAutoReenable</a>(boolean val)</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#a3c0b2be061b5356a0ebbc97b74fe2dfb">softReset</a>()</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#a9aa678f8d501f592b4a766b71415af85">startReceive</a>()</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#a455f99e9ba2f6a7b9d7e9818dcd1b28d">startTransmit</a>()</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#afde1923323b3be3212f102fad09db4e9">suppressFrameCheck</a>(boolean val)</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#a72419beebeab6cd813618f06aa449a0c">TRX_RATE_110KBPS</a></td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#a4c19329ec6bb4d9f1cc2c545215a19f3">TRX_RATE_6800KBPS</a></td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#a0fb24bd90750375fe45ad3400bb49c2b">TRX_RATE_850KBPS</a></td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#a1e996f1921f45efddef0c343e3a29b44">tune</a>()</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#a57b36ed7c6a76c86ee08e6ade83a7ee9">TX_PREAMBLE_LEN_1024</a></td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#a4f1e8ab146b36610ad68096d35041b1c">TX_PREAMBLE_LEN_128</a></td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#a77165dabdcf9859853ec42f239badefd">TX_PREAMBLE_LEN_1536</a></td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#ae229277993bb0fcbddd6f957696976e3">TX_PREAMBLE_LEN_2048</a></td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#aa22dd046ff14e7e3f364fb220ce62480">TX_PREAMBLE_LEN_256</a></td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#aefbf8b5a0b7b5880e058778da1d21caa">TX_PREAMBLE_LEN_4096</a></td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#a178dcba5519f9055a821a2c444b4d488">TX_PREAMBLE_LEN_512</a></td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#a17e82aa391dc627b2b4265e1afdffd81">TX_PREAMBLE_LEN_64</a></td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#a4758d7f867a2df0e02aaedc62968ef86">TX_PULSE_FREQ_16MHZ</a></td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#a841273364f17d0000ae68b29a930c47e">TX_PULSE_FREQ_64MHZ</a></td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#ad34e8cd07429db763b9e51e496c4ec1a">useExtendedFrameLength</a>(boolean val)</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#a553b32a50b0be672319c0c6a04c3b9cf">useSmartPower</a>(boolean smartPower)</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#ae65d90cb26cdb609f58abfd970607c1d">waitForResponse</a>(boolean val)</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#acb4b9f6a0d3c65480a878cc180c4fa18">WRITE</a></td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#ad60f08106028394b0b530057e34e3655">WRITE_SUB</a></td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#a34ca9fd80c4118766da0ca42a71d1b4f">writeByte</a>(byte cmd, uint16_t offset, byte data)</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#a0772ea0dca8931657f4cca4570cf000d">writeBytes</a>(byte cmd, uint16_t offset, byte data[], uint16_t n)</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#a2ee08ca0011f72a0349c1e871bf24164">writeChannelControlRegister</a>()</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#a8a0ca63db7e1957c4bab94f49a018be4">writeNetworkIdAndDeviceAddress</a>()</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#ac5ff65d716216fa71853c3df3efa3853">writeSystemConfigurationRegister</a>()</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#a27785065539bdce2646abd6c0b3c9804">writeSystemEventMaskRegister</a>()</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#ac2617248374072f75f32d4743d3cbd8f">writeTransmitFrameControlRegister</a>()</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Class.html#a7d067d3161c31c092e1b892053f7b3ad">writeValueToBytes</a>(byte data[], int32_t val, uint16_t n)</td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Class.html#afd636ef0a653ff62470026d296bca4c4">XTI_CLOCK</a></td><td class="entry"><a class="el" href="classDW1000Class.html">DW1000Class</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue Dec 20 2016 01:32:18 for Arduino driver library for Decawave DW1000 by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.11
</small></address>
</body>
</html>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,96 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>Arduino driver library for Decawave DW1000: Member List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Arduino driver library for Decawave DW1000
&#160;<span id="projectnumber">Dec 20 2016</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li><a href="examples.html"><span>Examples</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">DW1000Device Member List</div> </div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="classDW1000Device.html">DW1000Device</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="classDW1000Device.html#ababd3c54aa268a33607e449562a45cca">DW1000Device</a>()</td><td class="entry"><a class="el" href="classDW1000Device.html">DW1000Device</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Device.html#a96b99626cad1d86fbd169159461034f8">DW1000Device</a>(byte address[], byte shortAddress[])</td><td class="entry"><a class="el" href="classDW1000Device.html">DW1000Device</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Device.html#a224123ad97f1baa7c38302b25aa3506d">DW1000Device</a>(byte address[], boolean shortOne=false)</td><td class="entry"><a class="el" href="classDW1000Device.html">DW1000Device</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Device.html#afd7d7608ddb0f611544d019fd3c7b763">getByteAddress</a>()</td><td class="entry"><a class="el" href="classDW1000Device.html">DW1000Device</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Device.html#a9ed096db8d7c183de95ddeba01826eab">getByteShortAddress</a>()</td><td class="entry"><a class="el" href="classDW1000Device.html">DW1000Device</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Device.html#a3d785edd12ff914568c26c15059fed7c">getFPPower</a>()</td><td class="entry"><a class="el" href="classDW1000Device.html">DW1000Device</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Device.html#a587e1aa9c4daa0372852bc37c63baeb7">getIndex</a>()</td><td class="entry"><a class="el" href="classDW1000Device.html">DW1000Device</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Device.html#a4bb94b5bb56cbd39b211b05f19b1f424">getQuality</a>()</td><td class="entry"><a class="el" href="classDW1000Device.html">DW1000Device</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Device.html#a265c1bddef2ed497f3a37c5d297ef83b">getRange</a>()</td><td class="entry"><a class="el" href="classDW1000Device.html">DW1000Device</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Device.html#aa653cf4e32c22e30f55d98559723d686">getReplyTime</a>()</td><td class="entry"><a class="el" href="classDW1000Device.html">DW1000Device</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Device.html#afcb8a4cb291f2ca196de3f0f0a81cf7a">getRXPower</a>()</td><td class="entry"><a class="el" href="classDW1000Device.html">DW1000Device</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Device.html#a11171d13f73a34c8799e24da51afc6c5">getShortAddress</a>()</td><td class="entry"><a class="el" href="classDW1000Device.html">DW1000Device</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Device.html#a656f661e77b03f24cffb2ead5f5a654f">isAddressEqual</a>(DW1000Device *device)</td><td class="entry"><a class="el" href="classDW1000Device.html">DW1000Device</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Device.html#a7b9ef119d9ed502afe3e0c2bf2d417e5">isInactive</a>()</td><td class="entry"><a class="el" href="classDW1000Device.html">DW1000Device</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Device.html#af379125714a9909490d996bca9282ed6">isShortAddressEqual</a>(DW1000Device *device)</td><td class="entry"><a class="el" href="classDW1000Device.html">DW1000Device</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Device.html#a962fa4af102779c68414c9a9ad1ddf99">noteActivity</a>()</td><td class="entry"><a class="el" href="classDW1000Device.html">DW1000Device</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Device.html#a6ba7b56ee475dbccb470224485b38d4e">setAddress</a>(char address[])</td><td class="entry"><a class="el" href="classDW1000Device.html">DW1000Device</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Device.html#a4e06426369d5d820d93904c6b1fd2a77">setAddress</a>(byte *address)</td><td class="entry"><a class="el" href="classDW1000Device.html">DW1000Device</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Device.html#ad8ac19327a2965792b710c6c150e594e">setFPPower</a>(float power)</td><td class="entry"><a class="el" href="classDW1000Device.html">DW1000Device</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Device.html#aa2932f3eae74376d11c7605d9dbf16a6">setIndex</a>(int8_t index)</td><td class="entry"><a class="el" href="classDW1000Device.html">DW1000Device</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Device.html#a0edb0966d402001bc20204e61598c5f6">setQuality</a>(float quality)</td><td class="entry"><a class="el" href="classDW1000Device.html">DW1000Device</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Device.html#ab7db0a45cd983a73f2811930f962ae6a">setRange</a>(float range)</td><td class="entry"><a class="el" href="classDW1000Device.html">DW1000Device</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Device.html#accdbf744ab9408537a2d24779045449d">setReplyDelayTime</a>(int16_t time)</td><td class="entry"><a class="el" href="classDW1000Device.html">DW1000Device</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Device.html#a3b640d58a7952fc32961dd0e6a7a2687">setReplyTime</a>(uint16_t replyDelayTimeUs)</td><td class="entry"><a class="el" href="classDW1000Device.html">DW1000Device</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Device.html#a4f01103bf4e1d403ffcc4a1fff80d57d">setRXPower</a>(float power)</td><td class="entry"><a class="el" href="classDW1000Device.html">DW1000Device</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Device.html#a54b45f385966bc25023097f057cc2603">setShortAddress</a>(byte address[])</td><td class="entry"><a class="el" href="classDW1000Device.html">DW1000Device</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Device.html#a491a9e78618fb8e925fa57571ceebacd">timePollAckReceived</a></td><td class="entry"><a class="el" href="classDW1000Device.html">DW1000Device</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Device.html#acefb45ac39b889777dc39f20af677df6">timePollAckSent</a></td><td class="entry"><a class="el" href="classDW1000Device.html">DW1000Device</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Device.html#abe772b132acd7e279d91ed6c2135f3f6">timePollReceived</a></td><td class="entry"><a class="el" href="classDW1000Device.html">DW1000Device</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Device.html#ae92d859f7b77f76bec87b78ffe6ffe23">timePollSent</a></td><td class="entry"><a class="el" href="classDW1000Device.html">DW1000Device</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Device.html#a42be0fee2b84798cf39f2a33f01f8aae">timeRangeReceived</a></td><td class="entry"><a class="el" href="classDW1000Device.html">DW1000Device</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Device.html#a8fff2061324140585f5caa90fe95bbcd">timeRangeSent</a></td><td class="entry"><a class="el" href="classDW1000Device.html">DW1000Device</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Device.html#aa37aa8ca3489768968cb1934b6762eb6">~DW1000Device</a>()</td><td class="entry"><a class="el" href="classDW1000Device.html">DW1000Device</a></td><td class="entry"></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue Dec 20 2016 01:32:18 for Arduino driver library for Decawave DW1000 by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.11
</small></address>
</body>
</html>

View File

@ -0,0 +1,689 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>Arduino driver library for Decawave DW1000: DW1000Device Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Arduino driver library for Decawave DW1000
&#160;<span id="projectnumber">Dec 20 2016</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li><a href="examples.html"><span>Examples</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-attribs">Public Attributes</a> &#124;
<a href="classDW1000Device-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">DW1000Device Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><code>#include &lt;<a class="el" href="DW1000Device_8h_source.html">DW1000Device.h</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:ababd3c54aa268a33607e449562a45cca"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDW1000Device.html#ababd3c54aa268a33607e449562a45cca">DW1000Device</a> ()</td></tr>
<tr class="separator:ababd3c54aa268a33607e449562a45cca"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a96b99626cad1d86fbd169159461034f8"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDW1000Device.html#a96b99626cad1d86fbd169159461034f8">DW1000Device</a> (byte address[], byte shortAddress[])</td></tr>
<tr class="separator:a96b99626cad1d86fbd169159461034f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a224123ad97f1baa7c38302b25aa3506d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDW1000Device.html#a224123ad97f1baa7c38302b25aa3506d">DW1000Device</a> (byte address[], boolean shortOne=false)</td></tr>
<tr class="separator:a224123ad97f1baa7c38302b25aa3506d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa37aa8ca3489768968cb1934b6762eb6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDW1000Device.html#aa37aa8ca3489768968cb1934b6762eb6">~DW1000Device</a> ()</td></tr>
<tr class="separator:aa37aa8ca3489768968cb1934b6762eb6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3b640d58a7952fc32961dd0e6a7a2687"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDW1000Device.html#a3b640d58a7952fc32961dd0e6a7a2687">setReplyTime</a> (uint16_t replyDelayTimeUs)</td></tr>
<tr class="separator:a3b640d58a7952fc32961dd0e6a7a2687"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6ba7b56ee475dbccb470224485b38d4e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDW1000Device.html#a6ba7b56ee475dbccb470224485b38d4e">setAddress</a> (char address[])</td></tr>
<tr class="separator:a6ba7b56ee475dbccb470224485b38d4e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4e06426369d5d820d93904c6b1fd2a77"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDW1000Device.html#a4e06426369d5d820d93904c6b1fd2a77">setAddress</a> (byte *address)</td></tr>
<tr class="separator:a4e06426369d5d820d93904c6b1fd2a77"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a54b45f385966bc25023097f057cc2603"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDW1000Device.html#a54b45f385966bc25023097f057cc2603">setShortAddress</a> (byte address[])</td></tr>
<tr class="separator:a54b45f385966bc25023097f057cc2603"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab7db0a45cd983a73f2811930f962ae6a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDW1000Device.html#ab7db0a45cd983a73f2811930f962ae6a">setRange</a> (float range)</td></tr>
<tr class="separator:ab7db0a45cd983a73f2811930f962ae6a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4f01103bf4e1d403ffcc4a1fff80d57d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDW1000Device.html#a4f01103bf4e1d403ffcc4a1fff80d57d">setRXPower</a> (float power)</td></tr>
<tr class="separator:a4f01103bf4e1d403ffcc4a1fff80d57d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad8ac19327a2965792b710c6c150e594e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDW1000Device.html#ad8ac19327a2965792b710c6c150e594e">setFPPower</a> (float power)</td></tr>
<tr class="separator:ad8ac19327a2965792b710c6c150e594e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0edb0966d402001bc20204e61598c5f6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDW1000Device.html#a0edb0966d402001bc20204e61598c5f6">setQuality</a> (float quality)</td></tr>
<tr class="separator:a0edb0966d402001bc20204e61598c5f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:accdbf744ab9408537a2d24779045449d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDW1000Device.html#accdbf744ab9408537a2d24779045449d">setReplyDelayTime</a> (int16_t time)</td></tr>
<tr class="separator:accdbf744ab9408537a2d24779045449d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa2932f3eae74376d11c7605d9dbf16a6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDW1000Device.html#aa2932f3eae74376d11c7605d9dbf16a6">setIndex</a> (int8_t index)</td></tr>
<tr class="separator:aa2932f3eae74376d11c7605d9dbf16a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa653cf4e32c22e30f55d98559723d686"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDW1000Device.html#aa653cf4e32c22e30f55d98559723d686">getReplyTime</a> ()</td></tr>
<tr class="separator:aa653cf4e32c22e30f55d98559723d686"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afd7d7608ddb0f611544d019fd3c7b763"><td class="memItemLeft" align="right" valign="top">byte *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDW1000Device.html#afd7d7608ddb0f611544d019fd3c7b763">getByteAddress</a> ()</td></tr>
<tr class="separator:afd7d7608ddb0f611544d019fd3c7b763"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a587e1aa9c4daa0372852bc37c63baeb7"><td class="memItemLeft" align="right" valign="top">int8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDW1000Device.html#a587e1aa9c4daa0372852bc37c63baeb7">getIndex</a> ()</td></tr>
<tr class="separator:a587e1aa9c4daa0372852bc37c63baeb7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9ed096db8d7c183de95ddeba01826eab"><td class="memItemLeft" align="right" valign="top">byte *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDW1000Device.html#a9ed096db8d7c183de95ddeba01826eab">getByteShortAddress</a> ()</td></tr>
<tr class="separator:a9ed096db8d7c183de95ddeba01826eab"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a11171d13f73a34c8799e24da51afc6c5"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDW1000Device.html#a11171d13f73a34c8799e24da51afc6c5">getShortAddress</a> ()</td></tr>
<tr class="separator:a11171d13f73a34c8799e24da51afc6c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a265c1bddef2ed497f3a37c5d297ef83b"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDW1000Device.html#a265c1bddef2ed497f3a37c5d297ef83b">getRange</a> ()</td></tr>
<tr class="separator:a265c1bddef2ed497f3a37c5d297ef83b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afcb8a4cb291f2ca196de3f0f0a81cf7a"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDW1000Device.html#afcb8a4cb291f2ca196de3f0f0a81cf7a">getRXPower</a> ()</td></tr>
<tr class="separator:afcb8a4cb291f2ca196de3f0f0a81cf7a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3d785edd12ff914568c26c15059fed7c"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDW1000Device.html#a3d785edd12ff914568c26c15059fed7c">getFPPower</a> ()</td></tr>
<tr class="separator:a3d785edd12ff914568c26c15059fed7c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4bb94b5bb56cbd39b211b05f19b1f424"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDW1000Device.html#a4bb94b5bb56cbd39b211b05f19b1f424">getQuality</a> ()</td></tr>
<tr class="separator:a4bb94b5bb56cbd39b211b05f19b1f424"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a656f661e77b03f24cffb2ead5f5a654f"><td class="memItemLeft" align="right" valign="top">boolean&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDW1000Device.html#a656f661e77b03f24cffb2ead5f5a654f">isAddressEqual</a> (<a class="el" href="classDW1000Device.html">DW1000Device</a> *device)</td></tr>
<tr class="separator:a656f661e77b03f24cffb2ead5f5a654f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af379125714a9909490d996bca9282ed6"><td class="memItemLeft" align="right" valign="top">boolean&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDW1000Device.html#af379125714a9909490d996bca9282ed6">isShortAddressEqual</a> (<a class="el" href="classDW1000Device.html">DW1000Device</a> *device)</td></tr>
<tr class="separator:af379125714a9909490d996bca9282ed6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a962fa4af102779c68414c9a9ad1ddf99"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDW1000Device.html#a962fa4af102779c68414c9a9ad1ddf99">noteActivity</a> ()</td></tr>
<tr class="separator:a962fa4af102779c68414c9a9ad1ddf99"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7b9ef119d9ed502afe3e0c2bf2d417e5"><td class="memItemLeft" align="right" valign="top">boolean&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDW1000Device.html#a7b9ef119d9ed502afe3e0c2bf2d417e5">isInactive</a> ()</td></tr>
<tr class="separator:a7b9ef119d9ed502afe3e0c2bf2d417e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
Public Attributes</h2></td></tr>
<tr class="memitem:ae92d859f7b77f76bec87b78ffe6ffe23"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classDW1000Time.html">DW1000Time</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDW1000Device.html#ae92d859f7b77f76bec87b78ffe6ffe23">timePollSent</a></td></tr>
<tr class="separator:ae92d859f7b77f76bec87b78ffe6ffe23"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abe772b132acd7e279d91ed6c2135f3f6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classDW1000Time.html">DW1000Time</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDW1000Device.html#abe772b132acd7e279d91ed6c2135f3f6">timePollReceived</a></td></tr>
<tr class="separator:abe772b132acd7e279d91ed6c2135f3f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acefb45ac39b889777dc39f20af677df6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classDW1000Time.html">DW1000Time</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDW1000Device.html#acefb45ac39b889777dc39f20af677df6">timePollAckSent</a></td></tr>
<tr class="separator:acefb45ac39b889777dc39f20af677df6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a491a9e78618fb8e925fa57571ceebacd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classDW1000Time.html">DW1000Time</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDW1000Device.html#a491a9e78618fb8e925fa57571ceebacd">timePollAckReceived</a></td></tr>
<tr class="separator:a491a9e78618fb8e925fa57571ceebacd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8fff2061324140585f5caa90fe95bbcd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classDW1000Time.html">DW1000Time</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDW1000Device.html#a8fff2061324140585f5caa90fe95bbcd">timeRangeSent</a></td></tr>
<tr class="separator:a8fff2061324140585f5caa90fe95bbcd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a42be0fee2b84798cf39f2a33f01f8aae"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classDW1000Time.html">DW1000Time</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDW1000Device.html#a42be0fee2b84798cf39f2a33f01f8aae">timeRangeReceived</a></td></tr>
<tr class="separator:a42be0fee2b84798cf39f2a33f01f8aae"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="ababd3c54aa268a33607e449562a45cca"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">DW1000Device::DW1000Device </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a96b99626cad1d86fbd169159461034f8"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">DW1000Device::DW1000Device </td>
<td>(</td>
<td class="paramtype">byte&#160;</td>
<td class="paramname"><em>address</em>[], </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">byte&#160;</td>
<td class="paramname"><em>shortAddress</em>[]&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a224123ad97f1baa7c38302b25aa3506d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">DW1000Device::DW1000Device </td>
<td>(</td>
<td class="paramtype">byte&#160;</td>
<td class="paramname"><em>address</em>[], </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">boolean&#160;</td>
<td class="paramname"><em>shortOne</em> = <code>false</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="aa37aa8ca3489768968cb1934b6762eb6"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">DW1000Device::~DW1000Device </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="afd7d7608ddb0f611544d019fd3c7b763"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">byte * DW1000Device::getByteAddress </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a9ed096db8d7c183de95ddeba01826eab"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">byte * DW1000Device::getByteShortAddress </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a3d785edd12ff914568c26c15059fed7c"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">float DW1000Device::getFPPower </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a587e1aa9c4daa0372852bc37c63baeb7"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int8_t DW1000Device::getIndex </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a4bb94b5bb56cbd39b211b05f19b1f424"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">float DW1000Device::getQuality </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a265c1bddef2ed497f3a37c5d297ef83b"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">float DW1000Device::getRange </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="aa653cf4e32c22e30f55d98559723d686"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">uint16_t DW1000Device::getReplyTime </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="afcb8a4cb291f2ca196de3f0f0a81cf7a"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">float DW1000Device::getRXPower </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a11171d13f73a34c8799e24da51afc6c5"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint16_t DW1000Device::getShortAddress </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a656f661e77b03f24cffb2ead5f5a654f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">boolean DW1000Device::isAddressEqual </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classDW1000Device.html">DW1000Device</a> *&#160;</td>
<td class="paramname"><em>device</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a7b9ef119d9ed502afe3e0c2bf2d417e5"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">boolean DW1000Device::isInactive </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="af379125714a9909490d996bca9282ed6"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">boolean DW1000Device::isShortAddressEqual </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classDW1000Device.html">DW1000Device</a> *&#160;</td>
<td class="paramname"><em>device</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a962fa4af102779c68414c9a9ad1ddf99"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void DW1000Device::noteActivity </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a6ba7b56ee475dbccb470224485b38d4e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void DW1000Device::setAddress </td>
<td>(</td>
<td class="paramtype">char&#160;</td>
<td class="paramname"><em>address</em>[]</td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a4e06426369d5d820d93904c6b1fd2a77"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void DW1000Device::setAddress </td>
<td>(</td>
<td class="paramtype">byte *&#160;</td>
<td class="paramname"><em>address</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ad8ac19327a2965792b710c6c150e594e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void DW1000Device::setFPPower </td>
<td>(</td>
<td class="paramtype">float&#160;</td>
<td class="paramname"><em>power</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="aa2932f3eae74376d11c7605d9dbf16a6"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void DW1000Device::setIndex </td>
<td>(</td>
<td class="paramtype">int8_t&#160;</td>
<td class="paramname"><em>index</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a0edb0966d402001bc20204e61598c5f6"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void DW1000Device::setQuality </td>
<td>(</td>
<td class="paramtype">float&#160;</td>
<td class="paramname"><em>quality</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ab7db0a45cd983a73f2811930f962ae6a"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void DW1000Device::setRange </td>
<td>(</td>
<td class="paramtype">float&#160;</td>
<td class="paramname"><em>range</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="accdbf744ab9408537a2d24779045449d"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void DW1000Device::setReplyDelayTime </td>
<td>(</td>
<td class="paramtype">int16_t&#160;</td>
<td class="paramname"><em>time</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a3b640d58a7952fc32961dd0e6a7a2687"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void DW1000Device::setReplyTime </td>
<td>(</td>
<td class="paramtype">uint16_t&#160;</td>
<td class="paramname"><em>replyDelayTimeUs</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a4f01103bf4e1d403ffcc4a1fff80d57d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void DW1000Device::setRXPower </td>
<td>(</td>
<td class="paramtype">float&#160;</td>
<td class="paramname"><em>power</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a54b45f385966bc25023097f057cc2603"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void DW1000Device::setShortAddress </td>
<td>(</td>
<td class="paramtype">byte&#160;</td>
<td class="paramname"><em>address</em>[]</td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a class="anchor" id="a491a9e78618fb8e925fa57571ceebacd"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classDW1000Time.html">DW1000Time</a> DW1000Device::timePollAckReceived</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="acefb45ac39b889777dc39f20af677df6"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classDW1000Time.html">DW1000Time</a> DW1000Device::timePollAckSent</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="abe772b132acd7e279d91ed6c2135f3f6"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classDW1000Time.html">DW1000Time</a> DW1000Device::timePollReceived</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ae92d859f7b77f76bec87b78ffe6ffe23"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classDW1000Time.html">DW1000Time</a> DW1000Device::timePollSent</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a42be0fee2b84798cf39f2a33f01f8aae"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classDW1000Time.html">DW1000Time</a> DW1000Device::timeRangeReceived</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a8fff2061324140585f5caa90fe95bbcd"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classDW1000Time.html">DW1000Time</a> DW1000Device::timeRangeSent</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>/home/az/Dropbox/work/Arduino/az-z/arduino-dw1000/src/<a class="el" href="DW1000Device_8h_source.html">DW1000Device.h</a></li>
<li>/home/az/Dropbox/work/Arduino/az-z/arduino-dw1000/src/<a class="el" href="DW1000Device_8cpp.html">DW1000Device.cpp</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue Dec 20 2016 01:32:18 for Arduino driver library for Decawave DW1000 by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.11
</small></address>
</body>
</html>

View File

@ -0,0 +1,77 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>Arduino driver library for Decawave DW1000: Member List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Arduino driver library for Decawave DW1000
&#160;<span id="projectnumber">Dec 20 2016</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li><a href="examples.html"><span>Examples</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">DW1000Mac Member List</div> </div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="classDW1000Mac.html">DW1000Mac</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="classDW1000Mac.html#a2f463c08db2db3c66a1c78cc939b2068">decodeBlinkFrame</a>(byte frame[], byte address[], byte shortAddress[])</td><td class="entry"><a class="el" href="classDW1000Mac.html">DW1000Mac</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Mac.html#ad52462fa07f4130dceccdaa8edb96ebf">decodeLongMACFrame</a>(byte frame[], byte address[])</td><td class="entry"><a class="el" href="classDW1000Mac.html">DW1000Mac</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Mac.html#a7858e613a82b01bc30faa4d65ec86970">decodeShortMACFrame</a>(byte frame[], byte address[])</td><td class="entry"><a class="el" href="classDW1000Mac.html">DW1000Mac</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Mac.html#a2ce231562de0be4a18ec7612cc8c7055">DW1000Mac</a>(DW1000Device *parent)</td><td class="entry"><a class="el" href="classDW1000Mac.html">DW1000Mac</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Mac.html#a909721404f8104f11f6d742109f737db">DW1000Mac</a>()</td><td class="entry"><a class="el" href="classDW1000Mac.html">DW1000Mac</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Mac.html#a437fa0efccbef6bc0a0b627e01bd7631">generateBlinkFrame</a>(byte frame[], byte sourceAddress[], byte sourceShortAddress[])</td><td class="entry"><a class="el" href="classDW1000Mac.html">DW1000Mac</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Mac.html#a9aa586d9a2f32948c6bdb32fd8060317">generateLongMACFrame</a>(byte frame[], byte sourceShortAddress[], byte destinationAddress[])</td><td class="entry"><a class="el" href="classDW1000Mac.html">DW1000Mac</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Mac.html#a9f71c8982e0b95e126d2e6fd97c7f686">generateShortMACFrame</a>(byte frame[], byte sourceShortAddress[], byte destinationShortAddress[])</td><td class="entry"><a class="el" href="classDW1000Mac.html">DW1000Mac</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Mac.html#a20763a3a40fa1c9e652486a4ba48c9af">incrementSeqNumber</a>()</td><td class="entry"><a class="el" href="classDW1000Mac.html">DW1000Mac</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Mac.html#a43d5a523f597d2ba864a7ad22992705d">setDestinationAddress</a>(byte *destinationAddress)</td><td class="entry"><a class="el" href="classDW1000Mac.html">DW1000Mac</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Mac.html#a91c708d29ac3af102d3286f1b0567743">setDestinationAddressShort</a>(byte *shortDestinationAddress)</td><td class="entry"><a class="el" href="classDW1000Mac.html">DW1000Mac</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Mac.html#ac70032280e060369c529893cedaba329">setSourceAddress</a>(byte *sourceAddress)</td><td class="entry"><a class="el" href="classDW1000Mac.html">DW1000Mac</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Mac.html#aecf242f46fed339168cab8138d030647">setSourceAddressShort</a>(byte *shortSourceAddress)</td><td class="entry"><a class="el" href="classDW1000Mac.html">DW1000Mac</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Mac.html#a293da3de13fab424c05bf7a03f0fb644">~DW1000Mac</a>()</td><td class="entry"><a class="el" href="classDW1000Mac.html">DW1000Mac</a></td><td class="entry"></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue Dec 20 2016 01:32:18 for Arduino driver library for Decawave DW1000 by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.11
</small></address>
</body>
</html>

View File

@ -0,0 +1,408 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>Arduino driver library for Decawave DW1000: DW1000Mac Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Arduino driver library for Decawave DW1000
&#160;<span id="projectnumber">Dec 20 2016</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li><a href="examples.html"><span>Examples</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="classDW1000Mac-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">DW1000Mac Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><code>#include &lt;<a class="el" href="DW1000Mac_8h_source.html">DW1000Mac.h</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a2ce231562de0be4a18ec7612cc8c7055"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDW1000Mac.html#a2ce231562de0be4a18ec7612cc8c7055">DW1000Mac</a> (<a class="el" href="classDW1000Device.html">DW1000Device</a> *parent)</td></tr>
<tr class="separator:a2ce231562de0be4a18ec7612cc8c7055"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a909721404f8104f11f6d742109f737db"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDW1000Mac.html#a909721404f8104f11f6d742109f737db">DW1000Mac</a> ()</td></tr>
<tr class="separator:a909721404f8104f11f6d742109f737db"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a293da3de13fab424c05bf7a03f0fb644"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDW1000Mac.html#a293da3de13fab424c05bf7a03f0fb644">~DW1000Mac</a> ()</td></tr>
<tr class="separator:a293da3de13fab424c05bf7a03f0fb644"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a43d5a523f597d2ba864a7ad22992705d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDW1000Mac.html#a43d5a523f597d2ba864a7ad22992705d">setDestinationAddress</a> (byte *destinationAddress)</td></tr>
<tr class="separator:a43d5a523f597d2ba864a7ad22992705d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a91c708d29ac3af102d3286f1b0567743"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDW1000Mac.html#a91c708d29ac3af102d3286f1b0567743">setDestinationAddressShort</a> (byte *shortDestinationAddress)</td></tr>
<tr class="separator:a91c708d29ac3af102d3286f1b0567743"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac70032280e060369c529893cedaba329"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDW1000Mac.html#ac70032280e060369c529893cedaba329">setSourceAddress</a> (byte *sourceAddress)</td></tr>
<tr class="separator:ac70032280e060369c529893cedaba329"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aecf242f46fed339168cab8138d030647"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDW1000Mac.html#aecf242f46fed339168cab8138d030647">setSourceAddressShort</a> (byte *shortSourceAddress)</td></tr>
<tr class="separator:aecf242f46fed339168cab8138d030647"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a437fa0efccbef6bc0a0b627e01bd7631"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDW1000Mac.html#a437fa0efccbef6bc0a0b627e01bd7631">generateBlinkFrame</a> (byte frame[], byte sourceAddress[], byte sourceShortAddress[])</td></tr>
<tr class="separator:a437fa0efccbef6bc0a0b627e01bd7631"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9f71c8982e0b95e126d2e6fd97c7f686"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDW1000Mac.html#a9f71c8982e0b95e126d2e6fd97c7f686">generateShortMACFrame</a> (byte frame[], byte sourceShortAddress[], byte destinationShortAddress[])</td></tr>
<tr class="separator:a9f71c8982e0b95e126d2e6fd97c7f686"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9aa586d9a2f32948c6bdb32fd8060317"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDW1000Mac.html#a9aa586d9a2f32948c6bdb32fd8060317">generateLongMACFrame</a> (byte frame[], byte sourceShortAddress[], byte destinationAddress[])</td></tr>
<tr class="separator:a9aa586d9a2f32948c6bdb32fd8060317"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2f463c08db2db3c66a1c78cc939b2068"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDW1000Mac.html#a2f463c08db2db3c66a1c78cc939b2068">decodeBlinkFrame</a> (byte frame[], byte address[], byte shortAddress[])</td></tr>
<tr class="separator:a2f463c08db2db3c66a1c78cc939b2068"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7858e613a82b01bc30faa4d65ec86970"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDW1000Mac.html#a7858e613a82b01bc30faa4d65ec86970">decodeShortMACFrame</a> (byte frame[], byte address[])</td></tr>
<tr class="separator:a7858e613a82b01bc30faa4d65ec86970"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad52462fa07f4130dceccdaa8edb96ebf"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDW1000Mac.html#ad52462fa07f4130dceccdaa8edb96ebf">decodeLongMACFrame</a> (byte frame[], byte address[])</td></tr>
<tr class="separator:ad52462fa07f4130dceccdaa8edb96ebf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a20763a3a40fa1c9e652486a4ba48c9af"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDW1000Mac.html#a20763a3a40fa1c9e652486a4ba48c9af">incrementSeqNumber</a> ()</td></tr>
<tr class="separator:a20763a3a40fa1c9e652486a4ba48c9af"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a2ce231562de0be4a18ec7612cc8c7055"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">DW1000Mac::DW1000Mac </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classDW1000Device.html">DW1000Device</a> *&#160;</td>
<td class="paramname"><em>parent</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a909721404f8104f11f6d742109f737db"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">DW1000Mac::DW1000Mac </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a293da3de13fab424c05bf7a03f0fb644"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">DW1000Mac::~DW1000Mac </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="a2f463c08db2db3c66a1c78cc939b2068"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void DW1000Mac::decodeBlinkFrame </td>
<td>(</td>
<td class="paramtype">byte&#160;</td>
<td class="paramname"><em>frame</em>[], </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">byte&#160;</td>
<td class="paramname"><em>address</em>[], </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">byte&#160;</td>
<td class="paramname"><em>shortAddress</em>[]&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ad52462fa07f4130dceccdaa8edb96ebf"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void DW1000Mac::decodeLongMACFrame </td>
<td>(</td>
<td class="paramtype">byte&#160;</td>
<td class="paramname"><em>frame</em>[], </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">byte&#160;</td>
<td class="paramname"><em>address</em>[]&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a7858e613a82b01bc30faa4d65ec86970"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void DW1000Mac::decodeShortMACFrame </td>
<td>(</td>
<td class="paramtype">byte&#160;</td>
<td class="paramname"><em>frame</em>[], </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">byte&#160;</td>
<td class="paramname"><em>address</em>[]&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a437fa0efccbef6bc0a0b627e01bd7631"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void DW1000Mac::generateBlinkFrame </td>
<td>(</td>
<td class="paramtype">byte&#160;</td>
<td class="paramname"><em>frame</em>[], </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">byte&#160;</td>
<td class="paramname"><em>sourceAddress</em>[], </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">byte&#160;</td>
<td class="paramname"><em>sourceShortAddress</em>[]&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a9aa586d9a2f32948c6bdb32fd8060317"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void DW1000Mac::generateLongMACFrame </td>
<td>(</td>
<td class="paramtype">byte&#160;</td>
<td class="paramname"><em>frame</em>[], </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">byte&#160;</td>
<td class="paramname"><em>sourceShortAddress</em>[], </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">byte&#160;</td>
<td class="paramname"><em>destinationAddress</em>[]&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a9f71c8982e0b95e126d2e6fd97c7f686"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void DW1000Mac::generateShortMACFrame </td>
<td>(</td>
<td class="paramtype">byte&#160;</td>
<td class="paramname"><em>frame</em>[], </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">byte&#160;</td>
<td class="paramname"><em>sourceShortAddress</em>[], </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">byte&#160;</td>
<td class="paramname"><em>destinationShortAddress</em>[]&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a20763a3a40fa1c9e652486a4ba48c9af"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void DW1000Mac::incrementSeqNumber </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a43d5a523f597d2ba864a7ad22992705d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void DW1000Mac::setDestinationAddress </td>
<td>(</td>
<td class="paramtype">byte *&#160;</td>
<td class="paramname"><em>destinationAddress</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a91c708d29ac3af102d3286f1b0567743"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void DW1000Mac::setDestinationAddressShort </td>
<td>(</td>
<td class="paramtype">byte *&#160;</td>
<td class="paramname"><em>shortDestinationAddress</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ac70032280e060369c529893cedaba329"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void DW1000Mac::setSourceAddress </td>
<td>(</td>
<td class="paramtype">byte *&#160;</td>
<td class="paramname"><em>sourceAddress</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="aecf242f46fed339168cab8138d030647"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void DW1000Mac::setSourceAddressShort </td>
<td>(</td>
<td class="paramtype">byte *&#160;</td>
<td class="paramname"><em>shortSourceAddress</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>/home/az/Dropbox/work/Arduino/az-z/arduino-dw1000/src/<a class="el" href="DW1000Mac_8h_source.html">DW1000Mac.h</a></li>
<li>/home/az/Dropbox/work/Arduino/az-z/arduino-dw1000/src/<a class="el" href="DW1000Mac_8cpp.html">DW1000Mac.cpp</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue Dec 20 2016 01:32:18 for Arduino driver library for Decawave DW1000 by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.11
</small></address>
</body>
</html>

View File

@ -0,0 +1,88 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>Arduino driver library for Decawave DW1000: Member List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Arduino driver library for Decawave DW1000
&#160;<span id="projectnumber">Dec 20 2016</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li><a href="examples.html"><span>Examples</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">DW1000RangingClass Member List</div> </div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="classDW1000RangingClass.html">DW1000RangingClass</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="classDW1000RangingClass.html#a0cb09f33a796ca2ad43ecba79807550b">addNetworkDevices</a>(DW1000Device *device, boolean shortAddress)</td><td class="entry"><a class="el" href="classDW1000RangingClass.html">DW1000RangingClass</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000RangingClass.html#a7a33bf774529b577c5aad0f3561b9e8c">addNetworkDevices</a>(DW1000Device *device)</td><td class="entry"><a class="el" href="classDW1000RangingClass.html">DW1000RangingClass</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000RangingClass.html#ae096e46b2dcb9d1241aeb2ae0abd96e6">attachBlinkDevice</a>(void(*handleBlinkDevice)(DW1000Device *))</td><td class="entry"><a class="el" href="classDW1000RangingClass.html">DW1000RangingClass</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000RangingClass.html#a3c4789ea6f21876f362ceff5bdcfeba1">attachInactiveDevice</a>(void(*handleInactiveDevice)(DW1000Device *))</td><td class="entry"><a class="el" href="classDW1000RangingClass.html">DW1000RangingClass</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000RangingClass.html#aa02ebfce7ab83fe8a28721812488bc19">attachNewDevice</a>(void(*handleNewDevice)(DW1000Device *))</td><td class="entry"><a class="el" href="classDW1000RangingClass.html">DW1000RangingClass</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000RangingClass.html#a00c302964eac2a7f2facbe21171f9bee">attachNewRange</a>(void(*handleNewRange)(void))</td><td class="entry"><a class="el" href="classDW1000RangingClass.html">DW1000RangingClass</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000RangingClass.html#a8d52b5dadd722c169e960a3ccb0850f2">configureNetwork</a>(uint16_t deviceAddress, uint16_t networkId, const byte mode[])</td><td class="entry"><a class="el" href="classDW1000RangingClass.html">DW1000RangingClass</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000RangingClass.html#a10ed6e8a6303bc71000fe15ca28e71b5">data</a></td><td class="entry"><a class="el" href="classDW1000RangingClass.html">DW1000RangingClass</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000RangingClass.html#a94956e427dffcf4f0912c499e5c2f1e8">detectMessageType</a>(byte datas[])</td><td class="entry"><a class="el" href="classDW1000RangingClass.html">DW1000RangingClass</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000RangingClass.html#a81019e2311f5aa6a33f006beae8aadd7">generalStart</a>()</td><td class="entry"><a class="el" href="classDW1000RangingClass.html">DW1000RangingClass</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000RangingClass.html#a5e675e47c40a5047d0019b79261196db">getCurrentAddress</a>()</td><td class="entry"><a class="el" href="classDW1000RangingClass.html">DW1000RangingClass</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000RangingClass.html#a9ebe09c26597cafacdd19aa9a735bf17">getCurrentShortAddress</a>()</td><td class="entry"><a class="el" href="classDW1000RangingClass.html">DW1000RangingClass</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000RangingClass.html#a31207724e79f95d116ba401ce5b21f75">getDistantDevice</a>()</td><td class="entry"><a class="el" href="classDW1000RangingClass.html">DW1000RangingClass</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000RangingClass.html#ae95b4f1afddb1e609cfd317cfa0b203c">getNetworkDevicesNumber</a>()</td><td class="entry"><a class="el" href="classDW1000RangingClass.html">DW1000RangingClass</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000RangingClass.html#a2cda101272c6b30c7dc684c819fe0517">initCommunication</a>(uint8_t myRST=DEFAULT_RST_PIN, uint8_t mySS=DEFAULT_SPI_SS_PIN, uint8_t myIRQ=2)</td><td class="entry"><a class="el" href="classDW1000RangingClass.html">DW1000RangingClass</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000RangingClass.html#a83198e3e37c142c42128e81bb9bd0aea">loop</a>()</td><td class="entry"><a class="el" href="classDW1000RangingClass.html">DW1000RangingClass</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000RangingClass.html#a128cddf7de3c75d0bf498efcfbe86f60">removeNetworkDevices</a>(int16_t index)</td><td class="entry"><a class="el" href="classDW1000RangingClass.html">DW1000RangingClass</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000RangingClass.html#a7a1c36a51d4e73c8a0d2c9a1e360df53">searchDistantDevice</a>(byte shortAddress[])</td><td class="entry"><a class="el" href="classDW1000RangingClass.html">DW1000RangingClass</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000RangingClass.html#a786bd925f8ddf584c6d235d97c17eba8">setRangeFilterValue</a>(uint16_t newValue)</td><td class="entry"><a class="el" href="classDW1000RangingClass.html">DW1000RangingClass</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000RangingClass.html#a895a08a3785d9dd07da389df9527cdc9">setReplyTime</a>(uint16_t replyDelayTimeUs)</td><td class="entry"><a class="el" href="classDW1000RangingClass.html">DW1000RangingClass</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000RangingClass.html#a8f2b5435e9c83dacf456949c85e96c8f">setResetPeriod</a>(uint32_t resetPeriod)</td><td class="entry"><a class="el" href="classDW1000RangingClass.html">DW1000RangingClass</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000RangingClass.html#aff34e3802a27c763aa14d375224ec2c3">startAsAnchor</a>(char address[], const byte mode[])</td><td class="entry"><a class="el" href="classDW1000RangingClass.html">DW1000RangingClass</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000RangingClass.html#a0cc241fbb9599858c2f269cd41dd5f80">startAsTag</a>(char address[], const byte mode[])</td><td class="entry"><a class="el" href="classDW1000RangingClass.html">DW1000RangingClass</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000RangingClass.html#af5de16473d8f33165bcf097428535121">useRangeFilter</a>(boolean enabled)</td><td class="entry"><a class="el" href="classDW1000RangingClass.html">DW1000RangingClass</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000RangingClass.html#a071e8133596fb737c751c67e1e62ed28">visualizeDatas</a>(byte datas[])</td><td class="entry"><a class="el" href="classDW1000RangingClass.html">DW1000RangingClass</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue Dec 20 2016 01:32:18 for Arduino driver library for Decawave DW1000 by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.11
</small></address>
</body>
</html>

View File

@ -0,0 +1,781 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>Arduino driver library for Decawave DW1000: DW1000RangingClass Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Arduino driver library for Decawave DW1000
&#160;<span id="projectnumber">Dec 20 2016</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li><a href="examples.html"><span>Examples</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="#pub-static-attribs">Static Public Attributes</a> &#124;
<a href="classDW1000RangingClass-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">DW1000RangingClass Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><code>#include &lt;<a class="el" href="DW1000Ranging_8h_source.html">DW1000Ranging.h</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:a2cda101272c6b30c7dc684c819fe0517"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDW1000RangingClass.html#a2cda101272c6b30c7dc684c819fe0517">initCommunication</a> (uint8_t myRST=<a class="el" href="DW1000Ranging_8h.html#a20243a347c78f90547b2759e8061c60e">DEFAULT_RST_PIN</a>, uint8_t mySS=<a class="el" href="DW1000Ranging_8h.html#a7f51f457e4bffd56632c8e25b9d0d8fd">DEFAULT_SPI_SS_PIN</a>, uint8_t myIRQ=2)</td></tr>
<tr class="separator:a2cda101272c6b30c7dc684c819fe0517"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8d52b5dadd722c169e960a3ccb0850f2"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDW1000RangingClass.html#a8d52b5dadd722c169e960a3ccb0850f2">configureNetwork</a> (uint16_t deviceAddress, uint16_t networkId, const byte mode[])</td></tr>
<tr class="separator:a8d52b5dadd722c169e960a3ccb0850f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a81019e2311f5aa6a33f006beae8aadd7"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDW1000RangingClass.html#a81019e2311f5aa6a33f006beae8aadd7">generalStart</a> ()</td></tr>
<tr class="separator:a81019e2311f5aa6a33f006beae8aadd7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aff34e3802a27c763aa14d375224ec2c3"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDW1000RangingClass.html#aff34e3802a27c763aa14d375224ec2c3">startAsAnchor</a> (char address[], const byte mode[])</td></tr>
<tr class="separator:aff34e3802a27c763aa14d375224ec2c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0cc241fbb9599858c2f269cd41dd5f80"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDW1000RangingClass.html#a0cc241fbb9599858c2f269cd41dd5f80">startAsTag</a> (char address[], const byte mode[])</td></tr>
<tr class="separator:a0cc241fbb9599858c2f269cd41dd5f80"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0cb09f33a796ca2ad43ecba79807550b"><td class="memItemLeft" align="right" valign="top">static boolean&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDW1000RangingClass.html#a0cb09f33a796ca2ad43ecba79807550b">addNetworkDevices</a> (<a class="el" href="classDW1000Device.html">DW1000Device</a> *device, boolean shortAddress)</td></tr>
<tr class="separator:a0cb09f33a796ca2ad43ecba79807550b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7a33bf774529b577c5aad0f3561b9e8c"><td class="memItemLeft" align="right" valign="top">static boolean&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDW1000RangingClass.html#a7a33bf774529b577c5aad0f3561b9e8c">addNetworkDevices</a> (<a class="el" href="classDW1000Device.html">DW1000Device</a> *device)</td></tr>
<tr class="separator:a7a33bf774529b577c5aad0f3561b9e8c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a128cddf7de3c75d0bf498efcfbe86f60"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDW1000RangingClass.html#a128cddf7de3c75d0bf498efcfbe86f60">removeNetworkDevices</a> (int16_t index)</td></tr>
<tr class="separator:a128cddf7de3c75d0bf498efcfbe86f60"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a895a08a3785d9dd07da389df9527cdc9"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDW1000RangingClass.html#a895a08a3785d9dd07da389df9527cdc9">setReplyTime</a> (uint16_t replyDelayTimeUs)</td></tr>
<tr class="separator:a895a08a3785d9dd07da389df9527cdc9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8f2b5435e9c83dacf456949c85e96c8f"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDW1000RangingClass.html#a8f2b5435e9c83dacf456949c85e96c8f">setResetPeriod</a> (uint32_t resetPeriod)</td></tr>
<tr class="separator:a8f2b5435e9c83dacf456949c85e96c8f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5e675e47c40a5047d0019b79261196db"><td class="memItemLeft" align="right" valign="top">static byte *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDW1000RangingClass.html#a5e675e47c40a5047d0019b79261196db">getCurrentAddress</a> ()</td></tr>
<tr class="separator:a5e675e47c40a5047d0019b79261196db"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9ebe09c26597cafacdd19aa9a735bf17"><td class="memItemLeft" align="right" valign="top">static byte *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDW1000RangingClass.html#a9ebe09c26597cafacdd19aa9a735bf17">getCurrentShortAddress</a> ()</td></tr>
<tr class="separator:a9ebe09c26597cafacdd19aa9a735bf17"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae95b4f1afddb1e609cfd317cfa0b203c"><td class="memItemLeft" align="right" valign="top">static uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDW1000RangingClass.html#ae95b4f1afddb1e609cfd317cfa0b203c">getNetworkDevicesNumber</a> ()</td></tr>
<tr class="separator:ae95b4f1afddb1e609cfd317cfa0b203c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a94956e427dffcf4f0912c499e5c2f1e8"><td class="memItemLeft" align="right" valign="top">static int16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDW1000RangingClass.html#a94956e427dffcf4f0912c499e5c2f1e8">detectMessageType</a> (byte datas[])</td></tr>
<tr class="separator:a94956e427dffcf4f0912c499e5c2f1e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a83198e3e37c142c42128e81bb9bd0aea"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDW1000RangingClass.html#a83198e3e37c142c42128e81bb9bd0aea">loop</a> ()</td></tr>
<tr class="separator:a83198e3e37c142c42128e81bb9bd0aea"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af5de16473d8f33165bcf097428535121"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDW1000RangingClass.html#af5de16473d8f33165bcf097428535121">useRangeFilter</a> (boolean enabled)</td></tr>
<tr class="separator:af5de16473d8f33165bcf097428535121"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a786bd925f8ddf584c6d235d97c17eba8"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDW1000RangingClass.html#a786bd925f8ddf584c6d235d97c17eba8">setRangeFilterValue</a> (uint16_t newValue)</td></tr>
<tr class="separator:a786bd925f8ddf584c6d235d97c17eba8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a00c302964eac2a7f2facbe21171f9bee"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDW1000RangingClass.html#a00c302964eac2a7f2facbe21171f9bee">attachNewRange</a> (void(*handleNewRange)(void))</td></tr>
<tr class="separator:a00c302964eac2a7f2facbe21171f9bee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae096e46b2dcb9d1241aeb2ae0abd96e6"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDW1000RangingClass.html#ae096e46b2dcb9d1241aeb2ae0abd96e6">attachBlinkDevice</a> (void(*handleBlinkDevice)(<a class="el" href="classDW1000Device.html">DW1000Device</a> *))</td></tr>
<tr class="separator:ae096e46b2dcb9d1241aeb2ae0abd96e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa02ebfce7ab83fe8a28721812488bc19"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDW1000RangingClass.html#aa02ebfce7ab83fe8a28721812488bc19">attachNewDevice</a> (void(*handleNewDevice)(<a class="el" href="classDW1000Device.html">DW1000Device</a> *))</td></tr>
<tr class="separator:aa02ebfce7ab83fe8a28721812488bc19"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3c4789ea6f21876f362ceff5bdcfeba1"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDW1000RangingClass.html#a3c4789ea6f21876f362ceff5bdcfeba1">attachInactiveDevice</a> (void(*handleInactiveDevice)(<a class="el" href="classDW1000Device.html">DW1000Device</a> *))</td></tr>
<tr class="separator:a3c4789ea6f21876f362ceff5bdcfeba1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a31207724e79f95d116ba401ce5b21f75"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classDW1000Device.html">DW1000Device</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDW1000RangingClass.html#a31207724e79f95d116ba401ce5b21f75">getDistantDevice</a> ()</td></tr>
<tr class="separator:a31207724e79f95d116ba401ce5b21f75"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7a1c36a51d4e73c8a0d2c9a1e360df53"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classDW1000Device.html">DW1000Device</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDW1000RangingClass.html#a7a1c36a51d4e73c8a0d2c9a1e360df53">searchDistantDevice</a> (byte shortAddress[])</td></tr>
<tr class="separator:a7a1c36a51d4e73c8a0d2c9a1e360df53"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a071e8133596fb737c751c67e1e62ed28"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDW1000RangingClass.html#a071e8133596fb737c751c67e1e62ed28">visualizeDatas</a> (byte datas[])</td></tr>
<tr class="separator:a071e8133596fb737c751c67e1e62ed28"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-attribs"></a>
Static Public Attributes</h2></td></tr>
<tr class="memitem:a10ed6e8a6303bc71000fe15ca28e71b5"><td class="memItemLeft" align="right" valign="top">static byte&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDW1000RangingClass.html#a10ed6e8a6303bc71000fe15ca28e71b5">data</a> [<a class="el" href="DW1000Ranging_8h.html#a20e49049e1f8257c69c633f2781b2f03">LEN_DATA</a>]</td></tr>
<tr class="separator:a10ed6e8a6303bc71000fe15ca28e71b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="a0cb09f33a796ca2ad43ecba79807550b"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">boolean DW1000RangingClass::addNetworkDevices </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classDW1000Device.html">DW1000Device</a> *&#160;</td>
<td class="paramname"><em>device</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">boolean&#160;</td>
<td class="paramname"><em>shortAddress</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a7a33bf774529b577c5aad0f3561b9e8c"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">boolean DW1000RangingClass::addNetworkDevices </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classDW1000Device.html">DW1000Device</a> *&#160;</td>
<td class="paramname"><em>device</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ae096e46b2dcb9d1241aeb2ae0abd96e6"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void DW1000RangingClass::attachBlinkDevice </td>
<td>(</td>
<td class="paramtype">void(*)(<a class="el" href="classDW1000Device.html">DW1000Device</a> *)&#160;</td>
<td class="paramname"><em>handleBlinkDevice</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a3c4789ea6f21876f362ceff5bdcfeba1"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void DW1000RangingClass::attachInactiveDevice </td>
<td>(</td>
<td class="paramtype">void(*)(<a class="el" href="classDW1000Device.html">DW1000Device</a> *)&#160;</td>
<td class="paramname"><em>handleInactiveDevice</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="aa02ebfce7ab83fe8a28721812488bc19"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void DW1000RangingClass::attachNewDevice </td>
<td>(</td>
<td class="paramtype">void(*)(<a class="el" href="classDW1000Device.html">DW1000Device</a> *)&#160;</td>
<td class="paramname"><em>handleNewDevice</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a00c302964eac2a7f2facbe21171f9bee"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void DW1000RangingClass::attachNewRange </td>
<td>(</td>
<td class="paramtype">void(*)(void)&#160;</td>
<td class="paramname"><em>handleNewRange</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a8d52b5dadd722c169e960a3ccb0850f2"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void DW1000RangingClass::configureNetwork </td>
<td>(</td>
<td class="paramtype">uint16_t&#160;</td>
<td class="paramname"><em>deviceAddress</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16_t&#160;</td>
<td class="paramname"><em>networkId</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const byte&#160;</td>
<td class="paramname"><em>mode</em>[]&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a94956e427dffcf4f0912c499e5c2f1e8"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int16_t DW1000RangingClass::detectMessageType </td>
<td>(</td>
<td class="paramtype">byte&#160;</td>
<td class="paramname"><em>datas</em>[]</td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a81019e2311f5aa6a33f006beae8aadd7"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void DW1000RangingClass::generalStart </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a5e675e47c40a5047d0019b79261196db"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static byte* DW1000RangingClass::getCurrentAddress </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a9ebe09c26597cafacdd19aa9a735bf17"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static byte* DW1000RangingClass::getCurrentShortAddress </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a31207724e79f95d116ba401ce5b21f75"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classDW1000Device.html">DW1000Device</a> * DW1000RangingClass::getDistantDevice </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ae95b4f1afddb1e609cfd317cfa0b203c"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static uint8_t DW1000RangingClass::getNetworkDevicesNumber </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a2cda101272c6b30c7dc684c819fe0517"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void DW1000RangingClass::initCommunication </td>
<td>(</td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>myRST</em> = <code><a class="el" href="DW1000Ranging_8h.html#a20243a347c78f90547b2759e8061c60e">DEFAULT_RST_PIN</a></code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>mySS</em> = <code><a class="el" href="DW1000Ranging_8h.html#a7f51f457e4bffd56632c8e25b9d0d8fd">DEFAULT_SPI_SS_PIN</a></code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>myIRQ</em> = <code>2</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a83198e3e37c142c42128e81bb9bd0aea"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void DW1000RangingClass::loop </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a128cddf7de3c75d0bf498efcfbe86f60"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void DW1000RangingClass::removeNetworkDevices </td>
<td>(</td>
<td class="paramtype">int16_t&#160;</td>
<td class="paramname"><em>index</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a7a1c36a51d4e73c8a0d2c9a1e360df53"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classDW1000Device.html">DW1000Device</a> * DW1000RangingClass::searchDistantDevice </td>
<td>(</td>
<td class="paramtype">byte&#160;</td>
<td class="paramname"><em>shortAddress</em>[]</td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a786bd925f8ddf584c6d235d97c17eba8"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void DW1000RangingClass::setRangeFilterValue </td>
<td>(</td>
<td class="paramtype">uint16_t&#160;</td>
<td class="paramname"><em>newValue</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a895a08a3785d9dd07da389df9527cdc9"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void DW1000RangingClass::setReplyTime </td>
<td>(</td>
<td class="paramtype">uint16_t&#160;</td>
<td class="paramname"><em>replyDelayTimeUs</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a8f2b5435e9c83dacf456949c85e96c8f"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void DW1000RangingClass::setResetPeriod </td>
<td>(</td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>resetPeriod</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="aff34e3802a27c763aa14d375224ec2c3"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void DW1000RangingClass::startAsAnchor </td>
<td>(</td>
<td class="paramtype">char&#160;</td>
<td class="paramname"><em>address</em>[], </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const byte&#160;</td>
<td class="paramname"><em>mode</em>[]&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a0cc241fbb9599858c2f269cd41dd5f80"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void DW1000RangingClass::startAsTag </td>
<td>(</td>
<td class="paramtype">char&#160;</td>
<td class="paramname"><em>address</em>[], </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const byte&#160;</td>
<td class="paramname"><em>mode</em>[]&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="af5de16473d8f33165bcf097428535121"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void DW1000RangingClass::useRangeFilter </td>
<td>(</td>
<td class="paramtype">boolean&#160;</td>
<td class="paramname"><em>enabled</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a071e8133596fb737c751c67e1e62ed28"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void DW1000RangingClass::visualizeDatas </td>
<td>(</td>
<td class="paramtype">byte&#160;</td>
<td class="paramname"><em>datas</em>[]</td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a class="anchor" id="a10ed6e8a6303bc71000fe15ca28e71b5"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">byte DW1000RangingClass::data</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>/home/az/Dropbox/work/Arduino/az-z/arduino-dw1000/src/<a class="el" href="DW1000Ranging_8h_source.html">DW1000Ranging.h</a></li>
<li>/home/az/Dropbox/work/Arduino/az-z/arduino-dw1000/src/<a class="el" href="DW1000Ranging_8cpp.html">DW1000Ranging.cpp</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue Dec 20 2016 01:32:18 for Arduino driver library for Decawave DW1000 by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.11
</small></address>
</body>
</html>

View File

@ -0,0 +1,110 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>Arduino driver library for Decawave DW1000: Member List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Arduino driver library for Decawave DW1000
&#160;<span id="projectnumber">Dec 20 2016</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li><a href="examples.html"><span>Examples</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">DW1000Time Member List</div> </div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="classDW1000Time.html">DW1000Time</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="classDW1000Time.html#abdadbe4f3ec45d1dba5db8576ac7afa9">DISTANCE_OF_RADIO</a></td><td class="entry"><a class="el" href="classDW1000Time.html">DW1000Time</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Time.html#ac714c7d18b0ded83d25c5b02954a4770">DISTANCE_OF_RADIO_INV</a></td><td class="entry"><a class="el" href="classDW1000Time.html">DW1000Time</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Time.html#a6d9648e0fea1899def84dc09556bd29d">DW1000Time</a>()</td><td class="entry"><a class="el" href="classDW1000Time.html">DW1000Time</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Time.html#ab2d7b0fa7d9379a8efc64cceefac8e9f">DW1000Time</a>(int64_t time)</td><td class="entry"><a class="el" href="classDW1000Time.html">DW1000Time</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Time.html#a05044f2626fa26fcd2c4209cd521b040">DW1000Time</a>(byte data[])</td><td class="entry"><a class="el" href="classDW1000Time.html">DW1000Time</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Time.html#ad70603121cbeb88b80e221fb20d7bb27">DW1000Time</a>(const DW1000Time &amp;copy)</td><td class="entry"><a class="el" href="classDW1000Time.html">DW1000Time</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Time.html#a797e26db462579718c6ddcbb18a8517d">DW1000Time</a>(float timeUs)</td><td class="entry"><a class="el" href="classDW1000Time.html">DW1000Time</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Time.html#a05ae88f495a8121db77fcc4925670fdf">DW1000Time</a>(int32_t value, float factorUs)</td><td class="entry"><a class="el" href="classDW1000Time.html">DW1000Time</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Time.html#a0794979c116f60bd62e44e025e32083c">getAsFloat</a>() const </td><td class="entry"><a class="el" href="classDW1000Time.html">DW1000Time</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Time.html#acad79158831142b2c97a40224983e0ac">getAsMeters</a>() const </td><td class="entry"><a class="el" href="classDW1000Time.html">DW1000Time</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Time.html#a181e72b0a84a1190851db3347ea01524">getAsMicroSeconds</a>() const </td><td class="entry"><a class="el" href="classDW1000Time.html">DW1000Time</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Time.html#a2619d3d474ff12815f10637a07d4dfa0">getTimestamp</a>() const </td><td class="entry"><a class="el" href="classDW1000Time.html">DW1000Time</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Time.html#a462c39e210bb7d6c3d1f66c3df2d3afe">getTimestamp</a>(byte data[]) const </td><td class="entry"><a class="el" href="classDW1000Time.html">DW1000Time</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Time.html#ab3a5ca26a1667be0a146d43e50ffd144">isValidTimestamp</a>()</td><td class="entry"><a class="el" href="classDW1000Time.html">DW1000Time</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Time.html#a15e78e2eb3d7c30e118bc88dcf2ba296">LENGTH_TIMESTAMP</a></td><td class="entry"><a class="el" href="classDW1000Time.html">DW1000Time</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Time.html#af6113e457b55261503b8cb21dbfca747">MICROSECONDS</a></td><td class="entry"><a class="el" href="classDW1000Time.html">DW1000Time</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Time.html#a256fdb9e477c2aac43a7f747036a8069">MILLISECONDS</a></td><td class="entry"><a class="el" href="classDW1000Time.html">DW1000Time</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Time.html#a8cd30bfcbbfdf49b61d5786a75aa8ac7">NANOSECONDS</a></td><td class="entry"><a class="el" href="classDW1000Time.html">DW1000Time</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Time.html#ad08ea1b3f6c3fa2335ab63984466e545">operator!=</a>(const DW1000Time &amp;cmp) const </td><td class="entry"><a class="el" href="classDW1000Time.html">DW1000Time</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Time.html#a92b44c8b2c06c88c94ddfa6c2539bec1">operator*</a>(float factor) const </td><td class="entry"><a class="el" href="classDW1000Time.html">DW1000Time</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Time.html#af737fd1f0ff83f908378825d587ad1cd">operator*</a>(const DW1000Time &amp;factor) const </td><td class="entry"><a class="el" href="classDW1000Time.html">DW1000Time</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Time.html#ac3562b57ab3d0c479b66c26a3fd0a7f3">operator*=</a>(float factor)</td><td class="entry"><a class="el" href="classDW1000Time.html">DW1000Time</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Time.html#a0cfa2da040e8a77d90eb54089046fa63">operator*=</a>(const DW1000Time &amp;factor)</td><td class="entry"><a class="el" href="classDW1000Time.html">DW1000Time</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Time.html#a76dd3c6d912715606277e7e3087a27bc">operator+</a>(const DW1000Time &amp;add) const </td><td class="entry"><a class="el" href="classDW1000Time.html">DW1000Time</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Time.html#a126d890f0d990cd709263120adbacaa7">operator+=</a>(const DW1000Time &amp;add)</td><td class="entry"><a class="el" href="classDW1000Time.html">DW1000Time</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Time.html#afc45ac7153b9da36779e69debff37613">operator-</a>(const DW1000Time &amp;sub) const </td><td class="entry"><a class="el" href="classDW1000Time.html">DW1000Time</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Time.html#ac913f1cc477518c809ea385503d0a112">operator-=</a>(const DW1000Time &amp;sub)</td><td class="entry"><a class="el" href="classDW1000Time.html">DW1000Time</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Time.html#aec82f0b23003228e811f819e36e73e6c">operator/</a>(float factor) const </td><td class="entry"><a class="el" href="classDW1000Time.html">DW1000Time</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Time.html#a834fb23b1722ec6e2001f9ea286c3886">operator/</a>(const DW1000Time &amp;factor) const </td><td class="entry"><a class="el" href="classDW1000Time.html">DW1000Time</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Time.html#a62a21be8dbf1efa8ee449db63472be95">operator/=</a>(float factor)</td><td class="entry"><a class="el" href="classDW1000Time.html">DW1000Time</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Time.html#a2221b97c148a19c9782213a0d644d8e9">operator/=</a>(const DW1000Time &amp;factor)</td><td class="entry"><a class="el" href="classDW1000Time.html">DW1000Time</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Time.html#ac43e0dd01a13ec7470029f12402ded2d">operator=</a>(const DW1000Time &amp;assign)</td><td class="entry"><a class="el" href="classDW1000Time.html">DW1000Time</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Time.html#ae9d97a2772d6070df80578f6d1a171d2">operator==</a>(const DW1000Time &amp;cmp) const </td><td class="entry"><a class="el" href="classDW1000Time.html">DW1000Time</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Time.html#a68f5442f59786bb254af5c27bb8276ab">print</a>()</td><td class="entry"><a class="el" href="classDW1000Time.html">DW1000Time</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Time.html#a9caf1d789c405179004964489c6f0007">printTo</a>(Print &amp;p) const </td><td class="entry"><a class="el" href="classDW1000Time.html">DW1000Time</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Time.html#a542450a114c48b3974ba50babfe2ce14">SECONDS</a></td><td class="entry"><a class="el" href="classDW1000Time.html">DW1000Time</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Time.html#a743897a44c46369ca749bd52ca259db7">setTime</a>(float timeUs)</td><td class="entry"><a class="el" href="classDW1000Time.html">DW1000Time</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Time.html#a04eed725e24db998faf8ac5a96bbce9e">setTime</a>(int32_t value, float factorUs)</td><td class="entry"><a class="el" href="classDW1000Time.html">DW1000Time</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Time.html#a62dcd395c3fc6819d4c1994dad06db78">setTimestamp</a>(int64_t value)</td><td class="entry"><a class="el" href="classDW1000Time.html">DW1000Time</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Time.html#a20029e67eb3e6ff14abcf21ddd3e083f">setTimestamp</a>(byte data[])</td><td class="entry"><a class="el" href="classDW1000Time.html">DW1000Time</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Time.html#a1258aadcb3dbee73c494ff69c0f0893f">setTimestamp</a>(const DW1000Time &amp;copy)</td><td class="entry"><a class="el" href="classDW1000Time.html">DW1000Time</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Time.html#a245f8939b391ce9ef0e16ff40b778cef">TIME_MAX</a></td><td class="entry"><a class="el" href="classDW1000Time.html">DW1000Time</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Time.html#ab43d5f800f01805692108ed71474658a">TIME_OVERFLOW</a></td><td class="entry"><a class="el" href="classDW1000Time.html">DW1000Time</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Time.html#a2ca1fba08fbe1371ee9391d378fcd50a">TIME_RES</a></td><td class="entry"><a class="el" href="classDW1000Time.html">DW1000Time</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Time.html#a4b49d5a5c5f3f126dc4f89e2258c6d64">TIME_RES_INV</a></td><td class="entry"><a class="el" href="classDW1000Time.html">DW1000Time</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classDW1000Time.html#a2715e87a8ac5a7bb3bc100b9e33392a8">wrap</a>()</td><td class="entry"><a class="el" href="classDW1000Time.html">DW1000Time</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDW1000Time.html#a1036123abf02ee429b9e5e5a557413c5">~DW1000Time</a>()</td><td class="entry"><a class="el" href="classDW1000Time.html">DW1000Time</a></td><td class="entry"></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue Dec 20 2016 01:32:18 for Arduino driver library for Decawave DW1000 by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.11
</small></address>
</body>
</html>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,69 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>Arduino driver library for Decawave DW1000: Class Index</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Arduino driver library for Decawave DW1000
&#160;<span id="projectnumber">Dec 20 2016</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li><a href="examples.html"><span>Examples</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li class="current"><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">Class Index</div> </div>
</div><!--header-->
<div class="contents">
<div class="qindex"><a class="qindex" href="#letter_D">D</a></div>
<table class="classindex">
<tr><td rowspan="2" valign="bottom"><a name="letter_D"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;D&#160;&#160;</div></td></tr></table>
</td><td valign="top"><a class="el" href="classDW1000Device.html">DW1000Device</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classDW1000RangingClass.html">DW1000RangingClass</a>&#160;&#160;&#160;</td><td></td></tr>
<tr><td valign="top"><a class="el" href="classDW1000Mac.html">DW1000Mac</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classDW1000Time.html">DW1000Time</a>&#160;&#160;&#160;</td><td></td></tr>
<tr><td valign="top"><a class="el" href="classDW1000Class.html">DW1000Class</a>&#160;&#160;&#160;</td><td></td><td></td><td></td></tr>
<tr><td></td><td></td><td></td><td></td></tr>
</table>
<div class="qindex"><a class="qindex" href="#letter_D">D</a></div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue Dec 20 2016 01:32:18 for Arduino driver library for Decawave DW1000 by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.11
</small></address>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 132 B

View File

@ -0,0 +1,59 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>Arduino driver library for Decawave DW1000: Deprecated List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Arduino driver library for Decawave DW1000
&#160;<span id="projectnumber">Dec 20 2016</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li class="current"><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li><a href="examples.html"><span>Examples</span></a></li>
</ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">Deprecated List </div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><dl class="reflist">
<dt><a class="anchor" id="_deprecated000001"></a>Member <a class="el" href="classDW1000Time.html#a0794979c116f60bd62e44e025e32083c">DW1000Time::getAsFloat</a> () const </dt>
<dd>use <a class="el" href="classDW1000Time.html#a181e72b0a84a1190851db3347ea01524">getAsMicroSeconds()</a> </dd>
<dt><a class="anchor" id="_deprecated000002"></a>Member <a class="el" href="classDW1000Time.html#a68f5442f59786bb254af5c27bb8276ab">DW1000Time::print</a> ()</dt>
<dd>use Serial.print(object) </dd>
</dl>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue Dec 20 2016 01:32:18 for Arduino driver library for Decawave DW1000 by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.11
</small></address>
</body>
</html>

View File

@ -0,0 +1,105 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>Arduino driver library for Decawave DW1000: /home/az/Dropbox/work/Arduino/az-z/arduino-dw1000/src/deprecated.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Arduino driver library for Decawave DW1000
&#160;<span id="projectnumber">Dec 20 2016</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li><a href="examples.html"><span>Examples</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#define-members">Macros</a> </div>
<div class="headertitle">
<div class="title">deprecated.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><a href="deprecated_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:ac1e8a42306d8e67cb94ca31c3956ee78"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="deprecated_8h.html#ac1e8a42306d8e67cb94ca31c3956ee78">DEPRECATED</a>&#160;&#160;&#160;__attribute__((deprecated))</td></tr>
<tr class="separator:ac1e8a42306d8e67cb94ca31c3956ee78"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acf5fe7b5c4b0f8918b44f5b3f3916ba2"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="deprecated_8h.html#acf5fe7b5c4b0f8918b44f5b3f3916ba2">DEPRECATED_MSG</a>(msg)&#160;&#160;&#160;__attribute__((deprecated(msg)))</td></tr>
<tr class="separator:acf5fe7b5c4b0f8918b44f5b3f3916ba2"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="ac1e8a42306d8e67cb94ca31c3956ee78"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define DEPRECATED&#160;&#160;&#160;__attribute__((deprecated))</td>
</tr>
</table>
</div><div class="memdoc">
<p>Copyright (c) 2016 by Ludwig Grill (www.rotzbua.de) Simple deprecated workaround for Arduino IDE IDE 1.6.8 use gcc 4.8 which do not support c++14 [[deprecated]] Later versions should support c++14, then use c++14 syntax </p>
</div>
</div>
<a class="anchor" id="acf5fe7b5c4b0f8918b44f5b3f3916ba2"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define DEPRECATED_MSG</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">msg</td><td>)</td>
<td>&#160;&#160;&#160;__attribute__((deprecated(msg)))</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue Dec 20 2016 01:32:18 for Arduino driver library for Decawave DW1000 by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.11
</small></address>
</body>
</html>

View File

@ -0,0 +1,63 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>Arduino driver library for Decawave DW1000: /home/az/Dropbox/work/Arduino/az-z/arduino-dw1000/src/deprecated.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Arduino driver library for Decawave DW1000
&#160;<span id="projectnumber">Dec 20 2016</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li><a href="examples.html"><span>Examples</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">deprecated.h</div> </div>
</div><!--header-->
<div class="contents">
<a href="deprecated_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor">#ifndef DEPRECATED_H</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="preprocessor">#define DEPRECATED_H</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="preprocessor">#ifdef __has_cpp_attribute</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="preprocessor">#if __has_cpp_attribute(deprecated)</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor">#define DEPRECATED [[deprecated]]</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#define DEPRECATED_MSG(msg) [[deprecated(msg)]]</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#endif // __has_cpp_attribute(deprecated)</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00016"></a><span class="lineno"><a class="line" href="deprecated_8h.html#ac1e8a42306d8e67cb94ca31c3956ee78"> 16</a></span>&#160;<span class="preprocessor">#define DEPRECATED __attribute__((deprecated))</span></div><div class="line"><a name="l00017"></a><span class="lineno"><a class="line" href="deprecated_8h.html#acf5fe7b5c4b0f8918b44f5b3f3916ba2"> 17</a></span>&#160;<span class="preprocessor">#define DEPRECATED_MSG(msg) __attribute__((deprecated(msg)))</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#endif // __has_cpp_attribute</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#endif // DEPRECATED_H</span></div></div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue Dec 20 2016 01:32:18 for Arduino driver library for Decawave DW1000 by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.11
</small></address>
</body>
</html>

View File

@ -0,0 +1,95 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>Arduino driver library for Decawave DW1000: /home/az/Dropbox/work/Arduino/az-z/arduino-dw1000/src Directory Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Arduino driver library for Decawave DW1000
&#160;<span id="projectnumber">Dec 20 2016</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li><a href="examples.html"><span>Examples</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li class="current"><a href="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">src Directory Reference</div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
Files</h2></td></tr>
<tr class="memitem:deprecated_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="deprecated_8h.html">deprecated.h</a> <a href="deprecated_8h_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:DW1000_8cpp"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="DW1000_8cpp.html">DW1000.cpp</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:DW1000_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="DW1000_8h.html">DW1000.h</a> <a href="DW1000_8h_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:DW1000CompileOptions_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="DW1000CompileOptions_8h.html">DW1000CompileOptions.h</a> <a href="DW1000CompileOptions_8h_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:DW1000Constants_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="DW1000Constants_8h.html">DW1000Constants.h</a> <a href="DW1000Constants_8h_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:DW1000Device_8cpp"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="DW1000Device_8cpp.html">DW1000Device.cpp</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:DW1000Device_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="DW1000Device_8h.html">DW1000Device.h</a> <a href="DW1000Device_8h_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:DW1000Mac_8cpp"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="DW1000Mac_8cpp.html">DW1000Mac.cpp</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:DW1000Mac_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="DW1000Mac_8h.html">DW1000Mac.h</a> <a href="DW1000Mac_8h_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:DW1000Ranging_8cpp"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="DW1000Ranging_8cpp.html">DW1000Ranging.cpp</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:DW1000Ranging_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="DW1000Ranging_8h.html">DW1000Ranging.h</a> <a href="DW1000Ranging_8h_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:DW1000Time_8cpp"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="DW1000Time_8cpp.html">DW1000Time.cpp</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:DW1000Time_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="DW1000Time_8h.html">DW1000Time.h</a> <a href="DW1000Time_8h_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:require__cpp11_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="require__cpp11_8h.html">require_cpp11.h</a> <a href="require__cpp11_8h_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue Dec 20 2016 01:32:18 for Arduino driver library for Decawave DW1000 by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.11
</small></address>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 746 B

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

View File

@ -0,0 +1,97 @@
function toggleVisibility(linkObj)
{
var base = $(linkObj).attr('id');
var summary = $('#'+base+'-summary');
var content = $('#'+base+'-content');
var trigger = $('#'+base+'-trigger');
var src=$(trigger).attr('src');
if (content.is(':visible')===true) {
content.hide();
summary.show();
$(linkObj).addClass('closed').removeClass('opened');
$(trigger).attr('src',src.substring(0,src.length-8)+'closed.png');
} else {
content.show();
summary.hide();
$(linkObj).removeClass('closed').addClass('opened');
$(trigger).attr('src',src.substring(0,src.length-10)+'open.png');
}
return false;
}
function updateStripes()
{
$('table.directory tr').
removeClass('even').filter(':visible:even').addClass('even');
}
function toggleLevel(level)
{
$('table.directory tr').each(function() {
var l = this.id.split('_').length-1;
var i = $('#img'+this.id.substring(3));
var a = $('#arr'+this.id.substring(3));
if (l<level+1) {
i.removeClass('iconfopen iconfclosed').addClass('iconfopen');
a.html('&#9660;');
$(this).show();
} else if (l==level+1) {
i.removeClass('iconfclosed iconfopen').addClass('iconfclosed');
a.html('&#9658;');
$(this).show();
} else {
$(this).hide();
}
});
updateStripes();
}
function toggleFolder(id)
{
// the clicked row
var currentRow = $('#row_'+id);
// all rows after the clicked row
var rows = currentRow.nextAll("tr");
var re = new RegExp('^row_'+id+'\\d+_$', "i"); //only one sub
// only match elements AFTER this one (can't hide elements before)
var childRows = rows.filter(function() { return this.id.match(re); });
// first row is visible we are HIDING
if (childRows.filter(':first').is(':visible')===true) {
// replace down arrow by right arrow for current row
var currentRowSpans = currentRow.find("span");
currentRowSpans.filter(".iconfopen").removeClass("iconfopen").addClass("iconfclosed");
currentRowSpans.filter(".arrow").html('&#9658;');
rows.filter("[id^=row_"+id+"]").hide(); // hide all children
} else { // we are SHOWING
// replace right arrow by down arrow for current row
var currentRowSpans = currentRow.find("span");
currentRowSpans.filter(".iconfclosed").removeClass("iconfclosed").addClass("iconfopen");
currentRowSpans.filter(".arrow").html('&#9660;');
// replace down arrows by right arrows for child rows
var childRowsSpans = childRows.find("span");
childRowsSpans.filter(".iconfopen").removeClass("iconfopen").addClass("iconfclosed");
childRowsSpans.filter(".arrow").html('&#9658;');
childRows.show(); //show all children
}
updateStripes();
}
function toggleInherit(id)
{
var rows = $('tr.inherit.'+id);
var img = $('tr.inherit_header.'+id+' img');
var src = $(img).attr('src');
if (rows.filter(':first').is(':visible')===true) {
rows.css('display','none');
$(img).attr('src',src.substring(0,src.length-8)+'closed.png');
} else {
rows.css('display','table-row'); // using show() causes jump in firefox
$(img).attr('src',src.substring(0,src.length-10)+'open.png');
}
}

View File

@ -0,0 +1,57 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>Arduino driver library for Decawave DW1000: Examples</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Arduino driver library for Decawave DW1000
&#160;<span id="projectnumber">Dec 20 2016</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li class="current"><a href="examples.html"><span>Examples</span></a></li>
</ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">Examples</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock">Here is a list of all examples:</div><ul>
<li><a class="el" href="_2home_2az_2Dropbox_2work_2Arduino_2az-z_2arduino-dw1000_2src_2DW1000Time_8cpp-example.html">/home/az/Dropbox/work/Arduino/az-z/arduino-dw1000/src/DW1000Time.cpp</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue Dec 20 2016 01:32:18 for Arduino driver library for Decawave DW1000 by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.11
</small></address>
</body>
</html>

View File

@ -0,0 +1,78 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>Arduino driver library for Decawave DW1000: File List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Arduino driver library for Decawave DW1000
&#160;<span id="projectnumber">Dec 20 2016</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li><a href="examples.html"><span>Examples</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li class="current"><a href="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">File List</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock">Here is a list of all files with brief descriptions:</div><div class="directory">
<div class="levels">[detail level <span onclick="javascript:toggleLevel(1);">1</span><span onclick="javascript:toggleLevel(2);">2</span>]</div><table class="directory">
<tr id="row_0_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_0_" class="arrow" onclick="toggleFolder('0_')">&#9660;</span><span id="img_0_" class="iconfopen" onclick="toggleFolder('0_')">&#160;</span><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html" target="_self">src</a></td><td class="desc"></td></tr>
<tr id="row_0_0_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="deprecated_8h_source.html"><span class="icondoc"></span></a><a class="el" href="deprecated_8h.html" target="_self">deprecated.h</a></td><td class="desc"></td></tr>
<tr id="row_0_1_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="DW1000_8cpp.html" target="_self">DW1000.cpp</a></td><td class="desc"></td></tr>
<tr id="row_0_2_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="DW1000_8h_source.html"><span class="icondoc"></span></a><a class="el" href="DW1000_8h.html" target="_self">DW1000.h</a></td><td class="desc"></td></tr>
<tr id="row_0_3_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="DW1000CompileOptions_8h_source.html"><span class="icondoc"></span></a><a class="el" href="DW1000CompileOptions_8h.html" target="_self">DW1000CompileOptions.h</a></td><td class="desc"></td></tr>
<tr id="row_0_4_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="DW1000Constants_8h_source.html"><span class="icondoc"></span></a><a class="el" href="DW1000Constants_8h.html" target="_self">DW1000Constants.h</a></td><td class="desc"></td></tr>
<tr id="row_0_5_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="DW1000Device_8cpp.html" target="_self">DW1000Device.cpp</a></td><td class="desc"></td></tr>
<tr id="row_0_6_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="DW1000Device_8h_source.html"><span class="icondoc"></span></a><a class="el" href="DW1000Device_8h.html" target="_self">DW1000Device.h</a></td><td class="desc"></td></tr>
<tr id="row_0_7_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="DW1000Mac_8cpp.html" target="_self">DW1000Mac.cpp</a></td><td class="desc"></td></tr>
<tr id="row_0_8_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="DW1000Mac_8h_source.html"><span class="icondoc"></span></a><a class="el" href="DW1000Mac_8h.html" target="_self">DW1000Mac.h</a></td><td class="desc"></td></tr>
<tr id="row_0_9_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="DW1000Ranging_8cpp.html" target="_self">DW1000Ranging.cpp</a></td><td class="desc"></td></tr>
<tr id="row_0_10_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="DW1000Ranging_8h_source.html"><span class="icondoc"></span></a><a class="el" href="DW1000Ranging_8h.html" target="_self">DW1000Ranging.h</a></td><td class="desc"></td></tr>
<tr id="row_0_11_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="DW1000Time_8cpp.html" target="_self">DW1000Time.cpp</a></td><td class="desc"></td></tr>
<tr id="row_0_12_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="DW1000Time_8h_source.html"><span class="icondoc"></span></a><a class="el" href="DW1000Time_8h.html" target="_self">DW1000Time.h</a></td><td class="desc"></td></tr>
<tr id="row_0_13_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="require__cpp11_8h_source.html"><span class="icondoc"></span></a><a class="el" href="require__cpp11_8h.html" target="_self">require_cpp11.h</a></td><td class="desc"></td></tr>
</table>
</div><!-- directory -->
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue Dec 20 2016 01:32:18 for Arduino driver library for Decawave DW1000 by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.11
</small></address>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 616 B

Some files were not shown because too many files have changed in this diff Show More