AP_RangeFinder: use single precision string to float

This commit is contained in:
Andrew Tridgell 2019-10-27 22:47:51 +11:00
parent 092c20b3a7
commit 5898dc757c
3 changed files with 4 additions and 4 deletions

View File

@ -67,7 +67,7 @@ bool AP_RangeFinder_LightWareSerial::get_reading(uint16_t &reading_cm)
char c = uart->read();
if (c == '\r') {
linebuf[linebuf_len] = 0;
const float dist = (float)atof(linebuf);
const float dist = strtof(linebuf, NULL);
if (!is_negative(dist)) {
sum += dist;
valid_count++;

View File

@ -170,12 +170,12 @@ bool AP_RangeFinder_NMEA::decode_latest_term()
if (_sentence_type == SONAR_DBT) {
// parse DBT messages
if (_term_number == 3) {
_distance_m = atof(_term);
_distance_m = strtof(_term, NULL);
}
} else if (_sentence_type == SONAR_DPT) {
// parse DPT messages
if (_term_number == 1) {
_distance_m = atof(_term);
_distance_m = strtof(_term, NULL);
}
}

View File

@ -108,7 +108,7 @@ bool AP_RangeFinder_Wasp::get_reading(uint16_t &reading_cm) {
if (isalpha(linebuf[0])) {
parse_response();
} else {
float read_value = (float)atof(linebuf);
float read_value = strtof(linebuf, NULL);
if (read_value > 0) {
sum += read_value;
count++;