X-Git-Url: https://git.ao2.it/visomat-utils.git/blobdiff_plain/ec6cf524733f65ff40ac2e086e96e0dfd38e1dda..32d3e4d3b1e13fc36501cd90a2ff85644670af3f:/src/visomat-data-downloader.c diff --git a/src/visomat-data-downloader.c b/src/visomat-data-downloader.c index 0eca9c1..d925388 100644 --- a/src/visomat-data-downloader.c +++ b/src/visomat-data-downloader.c @@ -63,6 +63,7 @@ struct datetime { }; struct pressure { + unsigned int flag; /* XXX Maybe this means arrhythmia? */ unsigned int systolic; unsigned int diastolic; unsigned int pulses; @@ -102,10 +103,16 @@ static void print_record_csv_compat(struct datetime *d, struct pressure *p) pulse_pressure = p->systolic - p->diastolic; printf("%u;", pulse_pressure); + if (p->flag) + printf("x"); + +#if 0 + /* The original software does not seem to be doing that */ if (p->pulses > 100) printf("tachycardia"); else if (p->pulses < 60) printf("bradycardia"); +#endif printf("\n"); } @@ -157,11 +164,12 @@ static int decode_eeprom(unsigned char *buffer, unsigned int len) i += 10; ret = sscanf((char *)(buffer + i), - "%04u%03u%03u", + "%1u%03u%03u%03u", + &p.flag, &p.systolic, &p.diastolic, &p.pulses); - if (ret != 3) + if (ret != 4) return -EINVAL; /* pressure data is 10 bytes */ @@ -315,8 +323,8 @@ int main(void) } libusb_set_configuration(dev, 1); - libusb_claim_interface(dev, 1); libusb_detach_kernel_driver(dev, 1); + libusb_claim_interface(dev, 1); ret = visomat_get_datetime(dev); if (ret < 0)