3/26/16 12:25 am JJ
Diff: ShortRangeSensor.cpp
- Revision:
- 0:08b7f391566c
diff -r 000000000000 -r 08b7f391566c ShortRangeSensor.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ShortRangeSensor.cpp Sat Mar 26 05:26:10 2016 +0000 @@ -0,0 +1,54 @@ +#include "ShortRangeSensor.h" + +ShortRangeSensor::ShortRangeSensor(PinName sda, PinName scl) : i2c(sda, scl) +{ + //disables ECE + i2c.write(ADDR, SYSRANGE__RANGE_CHECK_ENABLES, 3); +} + +//returns range in mm +int ShortRangeSensor::getRange() +{ + char data; + + i2c.write(ADDR, SYSRANGE__START_SAMPLE, 3); + wait_ms(20); + i2c.write(ADDR, RESULT__RANGE_VAL, 2); + i2c.read(ADDR, &data, 1); + + return data; +} + +int ShortRangeSensor::getStatus() +{ + char data; + + i2c.write(ADDR, RESULT__RANGE_STATUS, 2); + i2c.read(ADDR, &data, 1); + + return data; +} + +int ShortRangeSensor::getPPOffset() +{ + char data; + + i2c.write(ADDR, SYSRANGE__PART_TO_PART_RANGE_OFFSET, 2); + i2c.read(ADDR, &data, 1); + + return data; +} + +void ShortRangeSensor::setPPOffset(int offset) +{ + if(offset < -128 || offset > 128) + return; + + char cmd[3]; + + cmd[0] = SYSRANGE__PART_TO_PART_RANGE_OFFSET[0]; + cmd[1] = SYSRANGE__PART_TO_PART_RANGE_OFFSET[1]; + cmd[2] = offset; + + i2c.write(ADDR, cmd, 3); +} \ No newline at end of file