X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=hardware%2Flascar-el-usb%2Fapi.c;h=049c7b519e35286ea0505252b39577882279c839;hb=6787f4049a0c05ffb438fc1718f1fe9840be5a41;hp=68a06eb1513f33300b5e8895d8f89bdeefd8f8e9;hpb=ef4344e7f44fe8b67fdbf1cebf2b1a6d7edbfe77;p=libsigrok.git diff --git a/hardware/lascar-el-usb/api.c b/hardware/lascar-el-usb/api.c index 68a06eb1..049c7b51 100644 --- a/hardware/lascar-el-usb/api.c +++ b/hardware/lascar-el-usb/api.c @@ -317,12 +317,20 @@ static int lascar_proc_config(const struct sr_dev_inst *sdi) ret = SR_OK; switch (devc->profile->logformat) { case LOG_TEMP_RH: - /* TODO */ + devc->sample_size = 2; + devc->temp_unit = devc->config[0x2e] | (devc->config[0x2f] << 8); + if (devc->temp_unit != 0 && devc->temp_unit != 1) { + sr_dbg("invalid temperature unit %d", devc->temp_unit); + /* Default to Celcius, we're all adults here. */ + devc->temp_unit = 0; + } else + sr_dbg("temperature unit is %s", devc->temp_unit + ? "Fahrenheit" : "Celcius"); break; case LOG_CO: devc->sample_size = 2; - devc->co_high = binary32_le_to_float(devc->config + 36); - devc->co_low = binary32_le_to_float(devc->config + 40); + devc->co_high = binary32_le_to_float(devc->config + 0x24); + devc->co_low = binary32_le_to_float(devc->config + 0x28); sr_dbg("EL-USB-CO calibration high %f low %f", devc->co_high, devc->co_low); break;