From d3dfe2426087e36714b526085977aa2e1ee7a70b Mon Sep 17 00:00:00 2001
From: ashlaban <ketost@gmail.com>
Date: Tue, 15 Nov 2016 16:32:59 +0100
Subject: [PATCH] Remove unsused files in decawave-range

---
 apps/decawave-range/dw-range-anchor.c | 368 --------------------------
 apps/decawave-range/dw-range-tag.c    | 194 --------------
 2 files changed, 562 deletions(-)
 delete mode 100644 apps/decawave-range/dw-range-anchor.c
 delete mode 100644 apps/decawave-range/dw-range-tag.c

diff --git a/apps/decawave-range/dw-range-anchor.c b/apps/decawave-range/dw-range-anchor.c
deleted file mode 100644
index 123d023..0000000
--- a/apps/decawave-range/dw-range-anchor.c
+++ /dev/null
@@ -1,368 +0,0 @@
-/*
- * dw1000, driver for decawave dw1000 UVB chip
- *  Copyright (C) 2014  Kim Albertsson
- *
- *  This program is free software: you can redistribute it and/or modify
- *  it under the terms of the GNU Lesser Public License as published by
- *  the Free Software Foundation, either version 3 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU Lesser Public License for more details.
- *  
- *  You should have received a copy of the GNU Lesser Public License
- *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-/**
- * \file 	Decawace uwb demo application
- * \author	Kim Albertsson
- *
- * \note If you get a HPDWARN in status reg you are probably taking to long 
- * time to create a delayed send. Increase MESSAGE_DELAY_MS or optimise 
- * critical path for creating packet.
- */
-
-/*===========================================================================*/
-/*================================ Includes =================================*/
-
-#include <stdio.h> /* For printf() */
-#include <stdint.h>
-#include "string.h"
-#include <stddef.h>
-
-#include "udelay.h"
-
-#include "dw1000-base.h"
-#include "dwFrameTypes.h"
-#include "dw-range.h"
-
-#include "contiki.h"
-// #include "contiki-net.h"
-// #include "rest-engine.h"
-
-/*===========================================================================*/
-/*================================ Defines ==================================*/
-
-#define MESSAGE_DELAY_MS 10.0f
-#define DEVICE_TIME_UNITS (1.0/499.2e6/128.0)
-#define ANTENNA_DELAY ((515.0 / 2.0) * 1e-9 / (1.0/499.2e6/128.0))
-
-#define MASK_40_BIT 0x000000FFFFFFFFFFULL
-
-/*===========================================================================*/
-/*========================== Public Declarations ============================*/
-
-/**
- * \brief Keeps track of all variables needed for a distance measurement.
- */
-typedef struct
-{
-	uint64_t tsp; /**< Poll     sent     time */
-	uint64_t trp; /**< Poll     received time */
-	uint64_t tsr; /**< Response sent     time */
-	uint64_t trr; /**< Response received time */
-	uint64_t tsf; /**< Final    sent     time */
-	uint64_t trf; /**< Final    received time */
-	
-	int64_t  ttrt; /**< Round trip time as seen by tag.    */
-	int64_t  tart; /**< Round trip time as seen by anchor. */
-	int64_t  trt;  /**< Estimated round trip time.         */
-	int64_t  tof;  /**< Estimated Time of Flight. [~15.65ps per tick] */
-	double   s;    /**< Estimated distance                 */
-
-} distance_meas_t;
-
-typedef struct
-{
-	uint32_t num_meas;
-	uint32_t num_errors;
-
-	// Measurements
-	float accumulated_distance;
-	float max;
-	float min;
-	float stddev;
-
-	// Quality
-	float rx_power;
-	float fp_power;
-	float noise_level;
-	float fp_ampl;
-	
-	// Sensors
-	float temperature;
-	float voltage;
-} statistics_t;
-
-extern dw1000_base_driver dw1000;
-extern struct process * interrupt_handler_callback;
-
-static distance_meas_t dist_meas;
-static statistics_t    stats;
-
-// For coap service
-float lastMeasuredDistance = 0.f;
-float accumulated_distance = 0.f;
-
-// static void res_get_handler(void* request, void* response, uint8_t *buffer, uint16_t preferred_size, int32_t *offset);
-// RESOURCE(res_dw_range, "title=\"Distance: ?len=0..\";rt=\"Text\"", res_get_handler, NULL, NULL, NULL);
-
-/*---------------------------------------------------------------------------*/
-PROCESS(dw_main_process           , "Main process");
-PROCESS(dw_anchor_process         , "Anchor process (dw1000)");
-AUTOSTART_PROCESSES(&dw_main_process);
-/*---------------------------------------------------------------------------*/
-
-/*===========================================================================*/
-/*============================ Public Functions =============================*/
-
-/**
- * \brief Used to convert from raw measurements to real world distances.
- *
- * \details
- *
- * \todo Present error bounds on this function.
- * 
- * @param  distance raw measurement
- * @return          estimated distance
- */
-static float distance_correction( float measurement )
-{
-	// return distance*0.8719 - 32.8600;
-	// return distance*0.9876 - 37.0932;
-	// return distance*0.9430 - 72.4511;
-	return measurement;
-}
-
-void print_statistics( statistics_t * stats )
-{
-	float avg = stats->accumulated_distance/stats->num_meas;
-	printf("========================================\n");
-	printf("Measurement no. %i\n", stats->num_meas);
-	printf("--- Data -------------------------------\n");
-	printf("Avg: %f\n", avg);
-	printf("Max: %f\n", stats->max);
-	printf("Min: %f\n", stats->min);
-	printf("Std dev: %f\n", stats->stddev);
-	printf("--- Quality ----------------------------\n");
-	stats->rx_power    = dw_get_rx_power();
-	stats->fp_power    = dw_get_fp_power();
-	stats->noise_level = dw_get_noise_level();
-	stats->fp_ampl     = dw_get_fp_ampl();
-	printf("rx_power   : %f\n", stats->rx_power);
-	printf("fp_power   : %f\n", stats->fp_power);
-	printf("noise_level: %f\n", stats->noise_level);
-	printf("fp_ampl    : %f\n", stats->fp_ampl);
-	printf("--- Sensors ----------------------------\n");
-	stats->temperature = dw_get_temperature(DW_ADC_SRC_LATEST);
-	stats->voltage     = dw_get_voltage(DW_ADC_SRC_LATEST);
-	printf("temperature: %f\n", stats->temperature);
-	printf("voltage    : %f\n", stats->voltage);
-	printf("--- Diagnostics ------------------------\n");
-	printf("num_packets_rx   : %i\n", packet_stats.num_packets_rx);
-	printf("num_packets_tx   : %i\n", packet_stats.num_packets_tx);
-	printf("num_packet_errors: %i\n", packet_stats.num_errors);
-	printf("========================================\n");
-}
-
-void reset_statistics( statistics_t * stats )
-{
-	stats->num_meas = 0;
-	stats->accumulated_distance = 0.f;
-	stats->max    = -1e9;
-	stats->min    =  1e9;
-	stats->stddev = 0.f;
-	stats->num_errors = 0;
-}
-
-
-/*---------------------------------------------------------------------------*/
-PROCESS_THREAD(dw_main_process, ev, data)
-{
-	PROCESS_BEGIN();
-
-	// Init coap
-	// rest_init_engine();
-	// rest_activate_resource(&res_dw_range, "test/distance");
-
-	// Init dw1000
-	process_start(&dw_interrupt_callback_proc, NULL);
-
-	dw_init();
-	dw_conf_print();
-	interrupt_handler_callback = &dw_anchor_process;
-	reset_statistics( &stats );
-	process_start(&dw_anchor_process, NULL);
-
-	// Start code proper
-	while(1)
-	{
-		PROCESS_WAIT_EVENT();
-	}
- 
-  PROCESS_END();
-}
-/*---------------------------------------------------------------------------*/
-PROCESS_THREAD(dw_anchor_process, ev, data)
-{
-	PROCESS_BEGIN();
-
-	printf("Starting Anchor\n");
-	// For precise measurements this should be calibrated per device
-	dw_set_antenna_delay( ANTENNA_DELAY );
-
-	static ranging_state_t ranging_state = IDLE;
-	static uint64_t destAddr = 0ULL;
-
-	dw_frame_blink_t   frameBlink;
-	dw_frame_range_t   frameRangePoll;
-	dw_message_poll_t  msgPoll;
-	dw_frame_range_t   frameRangeFinal;
-	dw_message_final_t msgFinal;
-	while( 1 )
-	{
-		if (ranging_state == IDLE)
-		{
-			// This would be in the main switch as 
-			// case IDLE:
-			// if contiki multithreading would have allowed it.
-			dw1000_rx_conf_t rx_conf;
-			rx_conf.is_delayed = 0;
-			rx_conf.timeout = 0xFFFF;
-			dw_conf_rx( &rx_conf );	
-			dw_receive( DW_TRANCEIVE_ASYNC );
-			PROCESS_WAIT_EVENT_UNTIL(ev == PROCESS_EVENT_CONTINUE);
-			ranging_state = *(ranging_state_t *)data;
-	
-			// printf("State: %i\n", ranging_state);
-			// printf("ranging_state: %i\n", ranging_state);
-		} 
-
-		uint32_t msgLen;
-		uint64_t dx_timestamp;
-		switch (ranging_state)
-		{
-			case MEASUREMENT_ADDED:
-				ranging_state = IDLE;
-				
-				if (stats.num_meas % 100  != 0) { break; }
-				print_statistics(&stats);
-				if (stats.num_meas != 1000) { break; }
-
-				// For easy calibration of distance_correction().
-				// Now you can take one sample and then reset device.
-				// Remove loop when calibration is done.
-				while(1){};
-
-				// Reset statistics.
-				reset_statistics( &stats );
-				printf("Reset.\n");
-
-				break;
-
-			case BLINK_RECEIVED:
-				
-				parseFrameBlink(dw1000.p_receive_buffer, dw1000.receive_buffer_len, &frameBlink);
-				destAddr = frameBlink.tag_id;
-
-				dx_timestamp = dw_get_rx_timestamp() + dw_ms_to_device_time( MESSAGE_DELAY_MS );
-
-				sendRangeInit( destAddr, (uint16_t)MESSAGE_DELAY_MS, dx_timestamp );
-				printf("Sent ranging init\n");
-				ranging_state = IDLE;
-				break;
-
-			case POLL_RECEIVED:
-				dist_meas.trp = dw_get_rx_timestamp();
-				dx_timestamp = dist_meas.trp + dw_ms_to_device_time( MESSAGE_DELAY_MS );
-				//printArray(dw1000.p_receive_buffer, dw1000.receive_buffer_len);
-
-				msgLen = dw1000.receive_buffer_len - DW_FRAME_RANGE_LEN - DW_FRAME_FCS_LEN;
-				parseFrameRange( dw1000.p_receive_buffer, dw1000.receive_buffer_len, &frameRangePoll );
-				parseMessagePoll( frameRangePoll.pPayload, msgLen, &msgPoll );
-
-				// TODO: Keep track of paired tags
-				if (destAddr == 0x0ULL)
-				{
-					destAddr = frameRangePoll.src_addr;
-				}
-
-				sendResponse( destAddr, &dist_meas.tsr, dx_timestamp );
-				// printArray( dw1000.p_receive_buffer, dw1000.receive_buffer_len );
-				ranging_state = IDLE;
-				break;
-
-			case FINAL_RECEIVED:
-				dist_meas.trf = dw_get_rx_timestamp();
-
-				msgLen = dw1000.receive_buffer_len - DW_FRAME_RANGE_LEN - DW_FRAME_FCS_LEN;
-				parseFrameRange( dw1000.p_receive_buffer, dw1000.receive_buffer_len, &frameRangeFinal );
-				parseMessageFinal( frameRangeFinal.pPayload, msgLen, &msgFinal );
-				
-				memcpy( &dist_meas.tsp, msgFinal.poll_msg_tx_timestamp , 5 );
-				memcpy( &dist_meas.trr, msgFinal.resp_msg_rx_timestamp , 5 );
-				memcpy( &dist_meas.tsf, msgFinal.final_msg_tx_timestamp, 5 );
-
-				uint64_t tsp = dist_meas.tsp;
-				uint64_t trp = dist_meas.trp;
-				uint64_t tsr = dist_meas.tsr;
-				uint64_t trr = dist_meas.trr;
-				uint64_t tsf = dist_meas.tsf;
-				uint64_t trf = dist_meas.trf;
-				dist_meas.ttrt  = ((trr - tsp) & MASK_40_BIT) - ((tsr - trp) & MASK_40_BIT);
-				dist_meas.tart  = ((trf - tsr) & MASK_40_BIT) - ((tsf - trr) & MASK_40_BIT);
-				dist_meas.trt   = ((dist_meas.tart & MASK_40_BIT) + (dist_meas.ttrt & MASK_40_BIT)) >> 1;
-				dist_meas.tof   = dist_meas.trt >> 1;
-				dist_meas.s     = 3e8 * 15.65e-12 * (double)dist_meas.tof;
-				dist_meas.s     = distance_correction(dist_meas.s);
-				if (dist_meas.s > 200.0f)
-				{
-					/* 
-						BUG: sometimes we get a really large value... 
-						This is possibly fixed now... (has to do with delayed 
-						send ignoring lowest 9 bits.)
-					*/
-					++stats.num_errors;
-					break;
-				}
-
-				stats.accumulated_distance += dist_meas.s;
-				stats.max = (dist_meas.s > stats.max) ? dist_meas.s : stats.max;
-				stats.min = (dist_meas.s < stats.min) ? dist_meas.s : stats.min;
-				++stats.num_meas;
-				ranging_state = MEASUREMENT_ADDED;
-				break;
-
-			case ERROR:
-			default   :
-				++packet_stats.num_errors; // TODO: bad encapsulation, change to software errors.
-				ranging_state = IDLE;
-				break;
-		}
-	}
-
-	PROCESS_END();
-}
-/*---------------------------------------------------------------------------*/
-// static void
-// res_get_handler(void* request, void* response, uint8_t *buffer, uint16_t preferred_size, int32_t *offset)
-// {
-// 	/**
-// 	 * \note This should be working... But it was a long time ago I tested it 
-// 	 * so it probably won't.
-// 	 */
-	
-// 	// Set up response payload.
-// 	static const uint32_t length = 21;
-// 	static char message[128];
-// 	sprintf( message, "Distance to tag: %4f", lastMeasuredDistance );
-// 	memcpy(buffer, message, length);
-
-// 	// Set up response packet
-// 	REST.set_header_content_type(response, REST.type.TEXT_PLAIN); /* text/plain is the default, hence this option could be omitted. */
-// 	REST.set_header_etag(response, (uint8_t *) &length, 1);
-// 	REST.set_response_payload(response, buffer, length);
-// }
\ No newline at end of file
diff --git a/apps/decawave-range/dw-range-tag.c b/apps/decawave-range/dw-range-tag.c
deleted file mode 100644
index 6a1cc2e..0000000
--- a/apps/decawave-range/dw-range-tag.c
+++ /dev/null
@@ -1,194 +0,0 @@
-/*
- * dw1000, driver for decawave dw1000 UVB chip
- *  Copyright (C) 2014  Kim Albertsson
- *
- *  This program is free software: you can redistribute it and/or modify
- *  it under the terms of the GNU Lesser Public License as published by
- *  the Free Software Foundation, either version 3 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU Lesser Public License for more details.
- *  
- *  You should have received a copy of the GNU Lesser Public License
- *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-/**
- * \file
- * 	Decawave uwb demo application
- * \author
- *	Kim Albertsson
- */
-
-// Tested with mulle board 145
-
-#include "contiki.h"
-
-#include <stdio.h> /* For printf() */
-#include <stdint.h>
-#include <stddef.h>
-
-#include "udelay.h"
-
-#include "dw1000-base.h"
-#include "dwFrameTypes.h"
-#include "dw-range.h"
-
-#define DEVICE_TIME_UNITS (1.0/499.2e6/128.0)
-#define ANTENNA_DELAY ((515.0 / 2.0) * 1e-9 / (1.0/499.2e6/128.0))
-
-typedef enum
-{
-	UNPAIRED = 0,
-	PAIRED
-} tag_state_t;
-
-extern struct process * interrupt_handler_callback;
-
-int error;
-
-/*---------------------------------------------------------------------------*/
-PROCESS(dw_main_process           , "Main process");
-PROCESS(dw_tag_process            , "Tag process (dw1000)");
-AUTOSTART_PROCESSES(&dw_main_process);
-/*---------------------------------------------------------------------------*/
-PROCESS_THREAD(dw_main_process, ev, data)
-{
-	PROCESS_BEGIN();
-
-	// Init dw1000
-	process_start(&dw_interrupt_callback_proc, NULL);
-
-	dw_init();
-	dw_conf_print();
-	interrupt_handler_callback = &dw_tag_process;
-	process_start(&dw_tag_process, NULL);
-
-	// Start code proper
-	while(1)
-	{
-		PROCESS_WAIT_EVENT();
-	}
- 
-  PROCESS_END();
-}
-/*---------------------------------------------------------------------------*/
-PROCESS_THREAD(dw_tag_process, ev, data)
-{
-	PROCESS_BEGIN();
-
-	static uint64_t dest_addr = 0ULL;
-	static uint16_t responseDelay;
-
-	static tag_state_t     tag_state     = UNPAIRED;
-	static ranging_state_t ranging_state = IDLE;
-
-	printf("Starting Tag\n");
-	// Setting antenna delay
-	dw_set_antenna_delay( ANTENNA_DELAY );
-
-	// Enable rx timeout
-	dw_set_rx_timeout( 0xFFFF );
-	printf("Timeout: %f ms.\n", (float)dw_get_rx_timeout()/1000.0f);
-	dw_enable_rx_timeout();
-
-	// Configure rx
-	static dw1000_rx_conf_t rx_conf;
-	rx_conf.is_delayed = 0;
-	rx_conf.timeout = 0xFFFF;
-	dw_conf_rx( &rx_conf );
-	dw_receive( DW_TRANCEIVE_ASYNC );
-
-	static uint64_t tsp;
-	static uint64_t trr;
-	static uint64_t tsf;
-	static uint64_t dx_timestamp;
-	static uint32_t msgLen;
-	static dw_frame_range_t        frameRange;
-	static dw_message_range_init_t msgRangeInit;
-	static dw_message_response_t   msgResponse;
-	// static struct etimer et;
-	// etimer_set(&et, CLOCK_SECOND);
-	while (1)
-	{	
-		PROCESS_WAIT_EVENT();
-		// printf("Received Event. %i.\n", ev);
-		// printf("Receive  state. %i.\n", ranging_state);
-		//else
-		{
-			ranging_state = *(ranging_state_t *)data;
-			switch (ranging_state)
-			{
-				case RANGE_INIT_RECEIVED:
-					// printf("Range init received.\n");
-					msgLen = dw1000.receive_buffer_len - DW_FRAME_RANGE_LEN - DW_FRAME_FCS_LEN;
-					parseFrameRange(dw1000.p_receive_buffer, dw1000.receive_buffer_len, &frameRange);
-					parseMessageRangeInit(frameRange.pPayload, msgLen, &msgRangeInit);
-
-					dest_addr     =  frameRange.dest_addr;
-					responseDelay = msgRangeInit.response_delay_ms;
-
-					tag_state = PAIRED;
-					break;
-
-				case RESPONSE_RECEIVED:
-					//printf("Response Received.\n");
-					trr = dw_get_rx_timestamp();
-					dx_timestamp = trr + dw_ms_to_device_time( (float)responseDelay );
-
-					msgLen = dw1000.receive_buffer_len - DW_FRAME_RANGE_LEN - DW_FRAME_FCS_LEN;
-					parseFrameRange(dw1000.p_receive_buffer, dw1000.receive_buffer_len, &frameRange);
-					parseMessageResponse(frameRange.pPayload, msgLen, &msgResponse);
-					
-					// send final
-					sendFinal( dest_addr, tsp, trr, &tsf, dx_timestamp );
-					printf("Final sent.\n");
-					break;
-
-				case ERROR:
-				default:
-					//printf("Error.\n");
-					break;
-			}
-
-			ranging_state = IDLE;
-		}		
-
-		if ( ranging_state == IDLE /*ev == PROCESS_EVENT_TIMER*/ )
-		{
-			// send either poll or blink
-			if (tag_state == UNPAIRED && ranging_state == IDLE)
-			{
-				// send blink
-				//printf("Sending Blink.\n");
-				sendBlink();
-				// Listen for answer
-				ranging_state = RECEIVING;
-				//rx_conf.is_delayed = 1;
-				//rx_conf.dx_timestamp = dw_get_tx_timestamp() + dw_ms_to_device_time(4.8f);
-				dw_conf_rx( &rx_conf );
-				dw_receive( DW_TRANCEIVE_ASYNC );
-			}
-			else if (tag_state == PAIRED && ranging_state == IDLE)
-			{
-				// send poll
-				printf("Sending Poll.\n");
-				sendPoll( dest_addr, &tsp );
-
-				// Listen for answer
-				ranging_state = RECEIVING;
-				//rx_conf.is_delayed = 1;
-				//rx_conf.dx_timestamp = dw_get_tx_timestamp() + dw_ms_to_device_time(responseDelay-0.2);
-				dw_conf_rx( &rx_conf );
-				dw_receive( DW_TRANCEIVE_ASYNC );
-			}
-			// etimer_reset(&et);
-		}
-	}
-
-	PROCESS_END();
-}
-/*---------------------------------------------------------------------------*/
\ No newline at end of file
-- 
GitLab