diff options
author | Andrew Tridgell <tridge@samba.org> | 2014-10-24 15:57:47 +1100 |
---|---|---|
committer | Andrew Tridgell <tridge@samba.org> | 2014-10-28 21:05:57 +1100 |
commit | ae29d04ff5dc1d3d9c48b081846f04ad34e44373 (patch) | |
tree | 9973e906fc75e3463e6014bb39cf951a86666964 /src | |
parent | 7f9739ed57d7ff94a7f60b7de4598ed4f19cbddf (diff) | |
download | px4-firmware-ae29d04ff5dc1d3d9c48b081846f04ad34e44373.tar.gz px4-firmware-ae29d04ff5dc1d3d9c48b081846f04ad34e44373.tar.bz2 px4-firmware-ae29d04ff5dc1d3d9c48b081846f04ad34e44373.zip |
px4flow: try a 22 byte transfer in probe()
this allows us to distinguish between a ll40ls and px4flow on I2C
address 0x42
Diffstat (limited to 'src')
-rw-r--r-- | src/drivers/px4flow/px4flow.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/drivers/px4flow/px4flow.cpp b/src/drivers/px4flow/px4flow.cpp index 60ad3c1af..04aba9eae 100644 --- a/src/drivers/px4flow/px4flow.cpp +++ b/src/drivers/px4flow/px4flow.cpp @@ -249,6 +249,17 @@ out: int PX4FLOW::probe() { + uint8_t val[22]; + + // to be sure this is not a ll40ls Lidar (which can also be on + // 0x42) we check if a 22 byte transfer works from address + // 0. The ll40ls gives an error for that, whereas the flow + // happily returns some data + if (transfer(nullptr, 0, &val[0], 22) != OK) { + return -EIO; + } + + // that worked, so start a measurement cycle return measure(); } |