/src/insulaudit/devices/onetouch/console.py
Python | 75 lines | 50 code | 12 blank | 13 comment | 0 complexity | f1041b035a3c642e4c5bc801c577202e MD5 | raw file
- from insulaudit import core
- from insulaudit.data import glucose
- from insulaudit.console import device
- import proto
- class OnetouchApp(device.LinkCommand):
- """Onetouch compatible lifescan devices.
- """
- name = 'onetouch'
- def link_factory(self):
- return proto.Link
- #return proto.Linonetouch2.OneTouchUltra2( PORT, 5 )
- def setup(self, parser):
- import argparse, sys
- super(type(self), self).setup(parser)
- parser.add_argument('--output', type=argparse.FileType('w'),
- default=sys.stdout)
- def getFlows(self):
- return [ HelloFlow, sugars ]
- def title(self):
- return "onetouch - talk with Lifescan OneTouch compatible devices."
- def help(self):
- return "talk with Lifescan OneTouch compatible devices"
- def subcommand_manufacturer(self, flow):
- return OTCommand(flow, self)
- class OTCommand(device.FlowCommand):
- def setup_link(self, port):
- self.log.info('setting up %s' % port)
- return self.handler.selected.link_factory()(port, 5)
- class HelloFlow(core.Flow):
- """Hello world for Lifescan onetouch compatible devices.
- Can we reliably exchange bytes?
- """
- name = 'hello'
- def flow(self, session):
- link = session.link
- serial = link.execute( proto.ReadSerial( ) )
- print "serial number: %s" % serial
- session.log.info("serial number: %s" % serial)
- firmware = link.execute( proto.ReadFirmware( ) )
- print "firmware: %s" % firmware
- session.log.info("firmware: %s" % firmware)
- session.log.info('done')
- class sugars(core.Flow):
- """Dump the sugars to stdout
- Can we reliably exchange bytes?
- """
- #name = 'sugars'
- def get_out_file(self):
- return self.session.handler.handler.params.output
- return sys.stdout
- def flow(self, session):
- link = session.link
- serial = link.execute( proto.ReadSerial( ) )
- data = link.read_glucose( )
- #print data
- print "len glucose: %s" % len( data )
- head, body = data
- records = glucose.format_records( body )
- print head
- print records
- self.get_out_file( ).write(records)
- #####
- # EOF