3/26/16 12:25 am JJ
ShortRangeSensor.cpp@0:08b7f391566c, 2016-03-26 (annotated)
- Committer:
- j_j205
- Date:
- Sat Mar 26 05:26:10 2016 +0000
- Revision:
- 0:08b7f391566c
3/26/16 12:25 am JJ
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
j_j205 | 0:08b7f391566c | 1 | #include "ShortRangeSensor.h" |
j_j205 | 0:08b7f391566c | 2 | |
j_j205 | 0:08b7f391566c | 3 | ShortRangeSensor::ShortRangeSensor(PinName sda, PinName scl) : i2c(sda, scl) |
j_j205 | 0:08b7f391566c | 4 | { |
j_j205 | 0:08b7f391566c | 5 | //disables ECE |
j_j205 | 0:08b7f391566c | 6 | i2c.write(ADDR, SYSRANGE__RANGE_CHECK_ENABLES, 3); |
j_j205 | 0:08b7f391566c | 7 | } |
j_j205 | 0:08b7f391566c | 8 | |
j_j205 | 0:08b7f391566c | 9 | //returns range in mm |
j_j205 | 0:08b7f391566c | 10 | int ShortRangeSensor::getRange() |
j_j205 | 0:08b7f391566c | 11 | { |
j_j205 | 0:08b7f391566c | 12 | char data; |
j_j205 | 0:08b7f391566c | 13 | |
j_j205 | 0:08b7f391566c | 14 | i2c.write(ADDR, SYSRANGE__START_SAMPLE, 3); |
j_j205 | 0:08b7f391566c | 15 | wait_ms(20); |
j_j205 | 0:08b7f391566c | 16 | i2c.write(ADDR, RESULT__RANGE_VAL, 2); |
j_j205 | 0:08b7f391566c | 17 | i2c.read(ADDR, &data, 1); |
j_j205 | 0:08b7f391566c | 18 | |
j_j205 | 0:08b7f391566c | 19 | return data; |
j_j205 | 0:08b7f391566c | 20 | } |
j_j205 | 0:08b7f391566c | 21 | |
j_j205 | 0:08b7f391566c | 22 | int ShortRangeSensor::getStatus() |
j_j205 | 0:08b7f391566c | 23 | { |
j_j205 | 0:08b7f391566c | 24 | char data; |
j_j205 | 0:08b7f391566c | 25 | |
j_j205 | 0:08b7f391566c | 26 | i2c.write(ADDR, RESULT__RANGE_STATUS, 2); |
j_j205 | 0:08b7f391566c | 27 | i2c.read(ADDR, &data, 1); |
j_j205 | 0:08b7f391566c | 28 | |
j_j205 | 0:08b7f391566c | 29 | return data; |
j_j205 | 0:08b7f391566c | 30 | } |
j_j205 | 0:08b7f391566c | 31 | |
j_j205 | 0:08b7f391566c | 32 | int ShortRangeSensor::getPPOffset() |
j_j205 | 0:08b7f391566c | 33 | { |
j_j205 | 0:08b7f391566c | 34 | char data; |
j_j205 | 0:08b7f391566c | 35 | |
j_j205 | 0:08b7f391566c | 36 | i2c.write(ADDR, SYSRANGE__PART_TO_PART_RANGE_OFFSET, 2); |
j_j205 | 0:08b7f391566c | 37 | i2c.read(ADDR, &data, 1); |
j_j205 | 0:08b7f391566c | 38 | |
j_j205 | 0:08b7f391566c | 39 | return data; |
j_j205 | 0:08b7f391566c | 40 | } |
j_j205 | 0:08b7f391566c | 41 | |
j_j205 | 0:08b7f391566c | 42 | void ShortRangeSensor::setPPOffset(int offset) |
j_j205 | 0:08b7f391566c | 43 | { |
j_j205 | 0:08b7f391566c | 44 | if(offset < -128 || offset > 128) |
j_j205 | 0:08b7f391566c | 45 | return; |
j_j205 | 0:08b7f391566c | 46 | |
j_j205 | 0:08b7f391566c | 47 | char cmd[3]; |
j_j205 | 0:08b7f391566c | 48 | |
j_j205 | 0:08b7f391566c | 49 | cmd[0] = SYSRANGE__PART_TO_PART_RANGE_OFFSET[0]; |
j_j205 | 0:08b7f391566c | 50 | cmd[1] = SYSRANGE__PART_TO_PART_RANGE_OFFSET[1]; |
j_j205 | 0:08b7f391566c | 51 | cmd[2] = offset; |
j_j205 | 0:08b7f391566c | 52 | |
j_j205 | 0:08b7f391566c | 53 | i2c.write(ADDR, cmd, 3); |
j_j205 | 0:08b7f391566c | 54 | } |