aboutsummaryrefslogtreecommitdiff
path: root/apps/drivers/drv_range_finder.h
diff options
context:
space:
mode:
authorGreg Hulands <ghulands@me.com>2013-03-01 09:20:00 -0800
committerGreg Hulands <ghulands@me.com>2013-03-01 09:20:00 -0800
commit6eca4ba462440c8b3d45a2e44ac1f2085554d638 (patch)
tree753129182d0dd5a706714dc9b19bcccab196a8df /apps/drivers/drv_range_finder.h
parent72a8ba074e39c385be51a5be44b907d65ba0a2d0 (diff)
downloadpx4-firmware-6eca4ba462440c8b3d45a2e44ac1f2085554d638.tar.gz
px4-firmware-6eca4ba462440c8b3d45a2e44ac1f2085554d638.tar.bz2
px4-firmware-6eca4ba462440c8b3d45a2e44ac1f2085554d638.zip
Maxbotix I2C Sonar Support
Diffstat (limited to 'apps/drivers/drv_range_finder.h')
-rw-r--r--apps/drivers/drv_range_finder.h81
1 files changed, 81 insertions, 0 deletions
diff --git a/apps/drivers/drv_range_finder.h b/apps/drivers/drv_range_finder.h
new file mode 100644
index 000000000..420011be5
--- /dev/null
+++ b/apps/drivers/drv_range_finder.h
@@ -0,0 +1,81 @@
+/****************************************************************************
+ *
+ * Copyright (C) 2013 PX4 Development Team. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ * 3. Neither the name PX4 nor the names of its contributors may be
+ * used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ ****************************************************************************/
+
+/**
+ * @file Rangefinder driver interface.
+ */
+
+#ifndef _DRV_RANGEFINDER_H
+#define _DRV_RANGEFINDER_H
+
+#include <stdint.h>
+#include <sys/ioctl.h>
+
+#include "drv_sensor.h"
+#include "drv_orb_dev.h"
+
+#define RANGE_FINDER_DEVICE_PATH "/dev/range_finder"
+
+/**
+ * accel report structure. Reads from the device must be in multiples of this
+ * structure.
+ */
+struct range_finder_report {
+ uint64_t timestamp;
+ float distance; /** in meters */
+ uint8_t valid; /** 1 == within sensor range, 0 = outside sensor range */
+};
+
+/*
+ * ObjDev tag for raw accelerometer data.
+ */
+ORB_DECLARE(sensor_range_finder);
+
+/*
+ * ioctl() definitions
+ *
+ * Accelerometer drivers also implement the generic sensor driver
+ * interfaces from drv_sensor.h
+ */
+
+#define _RANGEFINDERIOCBASE (0x7900)
+#define __RANGEFINDERIOC(_n) (_IOC(_RANGEFINDERIOCBASE, _n))
+
+/** set the minimum effective distance of the device */
+#define RANGEFINDERIOCSETMINIUMDISTANCE __RANGEFINDERIOC(1)
+
+/** set the maximum effective distance of the device */
+#define RANGEFINDERIOCSETMAXIUMDISTANCE __RANGEFINDERIOC(2)
+
+
+#endif /* _DRV_RANGEFINDER_H */