Merge pull request #124 from worron/master

Data range check for binary output
master
karl 9 years ago committed by GitHub
commit 5d5975cdec
  1. 16
      output/raw.c

@ -10,14 +10,26 @@ int print_raw_out(int bars, int fp, int is_bin, int bit_format, int ascii_range,
if (bit_format == 16 ){//16bit: if (bit_format == 16 ){//16bit:
for (i = 0; i < bars; i++) { for (i = 0; i < bars; i++) {
uint16_t f16 = ((float)f[i] / 10000) * 65535; uint16_t f16;
if (f[i] > 10000) {
f16 = 65535;
}
else {
f16 = ((float)f[i] / 10000) * 65535;
}
write(fp, &f16,sizeof(uint16_t)); write(fp, &f16,sizeof(uint16_t));
} }
} else {//8bit: } else {//8bit:
for (i = 0; i < bars; i++) { for (i = 0; i < bars; i++) {
uint8_t f8 = ((float)f[i] / 10000) * 255; uint8_t f8;
if (f[i] > 10000) {
f8 = 255;
}
else {
f8 = ((float)f[i] / 10000) * 255;
}
write(fp, &f8,sizeof(uint8_t)); write(fp, &f8,sizeof(uint8_t));
} }

Loading…
Cancel
Save