06 # number of records in this memory block
# Each records stores date, time, systolic and diastolic pressure, pulses
+ # Maybe the third field is an indication of arrhythmia?
+ # Or a flag to mark test or out of scale measurements?
- # yymmdd HHMM systolic diastolic pulses
- 100101 1202 1151 102 120
- 100101 1208 1156 107 116
- 100101 1203 0103 065 073
- 440601 1320 0113 068 066
- 100101 1311 0127 084 066
- 100101 1203 0106 068 066
+ # yymmdd HHMM ? systolic diastolic pulses
+ 100101 1202 1 151 102 120
+ 100101 1208 1 156 107 116
+ 100101 1203 0 103 065 073
+ 440601 1320 0 113 068 066
+ 100101 1311 0 127 084 066
+ 100101 1203 0 106 068 066
# Same structure for the other memory block
M
2
07
- 100101 1203 1155 111 116
- 100101 1202 0117 070 076
- 440601 1312 0128 071 072
- 440601 1317 0126 050 065
- 440601 1319 0114 063 066
- 100101 1400 0114 070 071
- 130312 1145 0121 080 072
+ 100101 1203 1 155 111 116
+ 100101 1202 0 117 070 076
+ 440601 1312 0 128 071 072
+ 440601 1317 0 126 050 065
+ 440601 1319 0 114 063 066
+ 100101 1400 0 114 070 071
+ 130312 1145 0 121 080 072
};
struct pressure {
+ unsigned int flag; /* XXX Maybe this means arrhythmia? */
unsigned int systolic;
unsigned int diastolic;
unsigned int pulses;
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");
}
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 */