diff options
-rwxr-xr-x | glucometer.py | 9 | ||||
-rw-r--r-- | glucometerutils/drivers/otultra2.py | 12 |
2 files changed, 20 insertions, 1 deletions
diff --git a/glucometer.py b/glucometer.py index 1cd0303..baa21ca 100755 --- a/glucometer.py +++ b/glucometer.py @@ -39,6 +39,9 @@ def main(): '--set', action='store', nargs='?', const='now', default=None, help='Set the date rather than just reading it from the device.') + reset = subparsers.add_parser( + 'zero', help='Zero out the data log of the meter.') + args = parser.parse_args() driver = importlib.import_module('glucometerutils.drivers.' + args.driver) @@ -58,6 +61,12 @@ def main(): print('%s: not a valid date' % args.set, file=sys.stderr) else: print(device.get_datetime()) + elif args.action == 'zero': + try: + device.zero_log() + print('Device data log zeroed.') + except Exception as e: + print('Error while zeroing device log: %s' % e) else: return 1 diff --git a/glucometerutils/drivers/otultra2.py b/glucometerutils/drivers/otultra2.py index 1a29d36..d4db307 100644 --- a/glucometerutils/drivers/otultra2.py +++ b/glucometerutils/drivers/otultra2.py @@ -176,7 +176,18 @@ class Device(object): return self._parse_datetime(response[2:]) + def zero_log(self): + """Zeros out the data log of the device. + + This function will clear the memory of the device deleting all the readings + in an irrecoverable way. + """ + response = self._send_oneliner_command('DMZ') + if response != 'Z': + raise exceptions.InvalidResponse(response) + def _parse_glucose_unit(self, unit): + """Parses the value of a OneTouch Ultra Glucose unit definition. Args: @@ -265,7 +276,6 @@ class Device(object): yield common.Reading(date, int(line_data['value']), common.UNIT_MGDL, comment=comment) - # The following two hashes are taken directly from LifeScan's documentation _MEAL_CODES = { 'N': '', |