altb_pmic / RangeFinder

Dependencies:   Pulse

Dependents:   Grove-UltrasonicRanger_Example PM2_Libary PM2_Libary PM2_Libary

Committer:
pmic
Date:
Fri Jun 21 08:57:37 2019 +0000
Revision:
2:89d7dd44ecfd
Parent:
0:05c9036328ee
Child:
3:cbb20cd7905d
Child:
4:fe63b514d4ef
extended RangeFinder class with offset, rewritten main file for static and dynamical measurements, added comments and notes on class and sensor analysis

Who changed what in which revision?

UserRevisionLine numberNew contents of line
NickRyder 0:05c9036328ee 1 /* Copyright (c) 2012 Nick Ryder, University of Oxford
NickRyder 0:05c9036328ee 2 * nick.ryder@physics.ox.ac.uk
NickRyder 0:05c9036328ee 3 *
NickRyder 0:05c9036328ee 4 * MIT License
NickRyder 0:05c9036328ee 5 *
NickRyder 0:05c9036328ee 6 * Permission is hereby granted, free of charge, to any person obtaining a copy of this software
NickRyder 0:05c9036328ee 7 * and associated documentation files (the "Software"), to deal in the Software without restriction,
NickRyder 0:05c9036328ee 8 * including without limitation the rights to use, copy, modify, merge, publish, distribute,
NickRyder 0:05c9036328ee 9 * sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
NickRyder 0:05c9036328ee 10 * furnished to do so, subject to the following conditions:
NickRyder 0:05c9036328ee 11 *
NickRyder 0:05c9036328ee 12 * The above copyright notice and this permission notice shall be included in all copies or
NickRyder 0:05c9036328ee 13 * substantial portions of the Software.
NickRyder 0:05c9036328ee 14 *
NickRyder 0:05c9036328ee 15 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
NickRyder 0:05c9036328ee 16 * BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NickRyder 0:05c9036328ee 17 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
NickRyder 0:05c9036328ee 18 * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
NickRyder 0:05c9036328ee 19 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
NickRyder 0:05c9036328ee 20 */
NickRyder 0:05c9036328ee 21
NickRyder 0:05c9036328ee 22
NickRyder 0:05c9036328ee 23 #include "RangeFinder.h"
NickRyder 0:05c9036328ee 24
pmic 2:89d7dd44ecfd 25 RangeFinder::RangeFinder(PinName pin, int pulsetime, float scale, float offset, int time):
pmic 2:89d7dd44ecfd 26 pio(pin), scale(scale), offset(offset), pulsetime(pulsetime), timeout(time) {
NickRyder 0:05c9036328ee 27 }
NickRyder 0:05c9036328ee 28
NickRyder 0:05c9036328ee 29 RangeFinder::~RangeFinder() {
NickRyder 0:05c9036328ee 30 }
NickRyder 0:05c9036328ee 31
NickRyder 0:05c9036328ee 32 float RangeFinder::read_m() {
NickRyder 0:05c9036328ee 33 pio.write_us(1, pulsetime);
NickRyder 0:05c9036328ee 34 float t = (float) pio.read_high_us(timeout);
NickRyder 0:05c9036328ee 35 if (t == -1.0) {
NickRyder 0:05c9036328ee 36 return -1.0;
NickRyder 0:05c9036328ee 37 }
pmic 2:89d7dd44ecfd 38 return t / scale + offset;
NickRyder 0:05c9036328ee 39 }