Example #1
0
class SendMsgApp(messages.SendMsgApp):
    """
  mmeowlink adapter to decocare's SendMsgApp
  """
    def customize_parser(self, parser):
        parser.add_argument('--radio_type',
                            choices=['mmcommander', 'subg_rfspy'])
        parser = super(SendMsgApp, self).customize_parser(parser)
        return parser

    def prelude(self, args):
        self.link = link = LinkBuilder().build(args.radio_type, args.port)
        link.open()
        # get link
        # drain rx buffer
        self.pump = Pump(self.link, args.serial)
        if args.no_rf_prelude:
            return
        if not args.autoinit:
            if args.init:
                self.pump.power_control(minutes=args.session_life)
        else:
            self.autoinit(args)
        self.sniff_model()

    def postlude(self, args):
        # self.link.close( )
        return
Example #2
0
class SendMsgApp (messages.SendMsgApp):
  """
  mmeowlink adapter to decocare's SendMsgApp
  """
  def customize_parser (self, parser):
    parser.add_argument('--radio_type', dest='radio_type', default='subg_rfspy', choices=['mmcommander', 'subg_rfspy'])
    parser.add_argument('--mmcommander', dest='radio_type', action='store_const', const='mmcommander')
    parser.add_argument('--subg_rfspy', dest='radio_type', action='store_const', const='subg_rfspy')
    parser = super(SendMsgApp, self).customize_parser(parser)
    return parser

  def prelude (self, args):
    port = args.port
    builder = LinkBuilder( )
    if port == 'scan':
      port = builder.scan( )
    self.link = link = LinkBuilder().build(args.radio_type, port)
    link.open()
    # get link
    # drain rx buffer
    self.pump = Pump(self.link, args.serial)
    if args.no_rf_prelude:
      return
    if not args.autoinit:
      if args.init:
        self.pump.power_control(minutes=args.session_life)
    else:
      self.autoinit(args)
    self.sniff_model( )

  def postlude (self, args):
    # self.link.close( )
    return
Example #3
0
class SendMsgApp(messages.SendMsgApp):
    """
  mmeowlink adapter to decocare's SendMsgApp
  """
    def customize_parser(self, parser):
        parser = super(SendMsgApp, self).customize_parser(parser)
        return parser

    def prelude(self, args):
        port = mmcommander_scan.scan()
        self.link = link = Link(port=port)
        link.open()
        # get link
        # drain rx buffer
        self.pump = Pump(self.link, args.serial)
        if args.no_rf_prelude:
            return
        if not args.autoinit:
            if args.init:
                self.pump.power_control(minutes=args.session_life)
        else:
            self.autoinit(args)
        self.sniff_model()

    def postlude(self, args):
        # self.link.close( )
        return
Example #4
0
 def prelude(self, args):
     self.link = link = LinkBuilder().build(args.radio_type, args.port)
     link.open()
     # get link
     # drain rx buffer
     self.pump = Pump(self.link, args.serial)
     if args.no_rf_prelude:
         return
     if not args.autoinit:
         if args.init:
             self.pump.power_control(minutes=args.session_life)
     else:
         self.autoinit(args)
     self.sniff_model()
Example #5
0
 def prelude(self, args):
     port = mmcommander_scan.scan()
     self.link = link = Link(port=port)
     link.open()
     # get link
     # drain rx buffer
     self.pump = Pump(self.link, args.serial)
     if args.no_rf_prelude:
         return
     if not args.autoinit:
         if args.init:
             self.pump.power_control(minutes=args.session_life)
     else:
         self.autoinit(args)
     self.sniff_model()
Example #6
0
class BaseMMeowlinkApp(decocare_messages.SendMsgApp):
    """
  Base class used by other apps here
  """
    def configure_radio_params(self, parser):
        parser.add_argument('--radio_type',
                            dest='radio_type',
                            default='subg_rfspy',
                            choices=['mmcommander', 'subg_rfspy'])
        parser.add_argument('--mmcommander',
                            dest='radio_type',
                            action='store_const',
                            const='mmcommander')
        parser.add_argument('--subg_rfspy',
                            dest='radio_type',
                            action='store_const',
                            const='subg_rfspy')

        return parser

    def prelude(self, args):
        port = args.port
        builder = LinkBuilder()
        if port == 'scan':
            port = builder.scan()
        self.link = link = LinkBuilder().build(args.radio_type, port)
        link.open()
        # get link
        # drain rx buffer
        self.pump = Pump(self.link, args.serial)

        # Early return if we don't want to send any radio comms. Useful from both
        # the command line and for MMTuneApp
        if args.no_rf_prelude:
            return

        if not args.autoinit:
            if args.init:
                self.pump.power_control(minutes=args.session_life)
        else:
            self.autoinit(args)

        self.sniff_model()

    def postlude(self, args):
        return
Example #7
0
 def prelude(self, args):
     port = args.port
     builder = LinkBuilder()
     if port == 'scan':
         port = builder.scan()
     self.link = link = LinkBuilder().build(args.radio_type, port)
     link.open()
     self.pump = Pump(self.link, args.serial)
     self.model = None
     if args.no_rf_prelude:
         return
     if not args.autoinit:
         if args.init:
             self.pump.power_control(minutes=args.session_life)
     else:
         self.autoinit(args)
     self.sniff_model()
Example #8
0
    def prelude(self, args):
        port = args.port
        builder = LinkBuilder()
        if port == 'scan':
            port = builder.scan()
        self.link = link = LinkBuilder().build(args.radio_type, port)
        link.open()
        # get link
        # drain rx buffer
        self.pump = Pump(self.link, args.serial)

        # Early return if we don't want to send any radio comms. Useful from both
        # the command line and for MMTuneApp
        if args.no_rf_prelude:
            return

        if not args.autoinit:
            if args.init:
                self.pump.power_control(minutes=args.session_life)
        else:
            self.autoinit(args)

        self.sniff_model()
Example #9
0
 def prelude (self, args):
   self.link = link = LinkBuilder().build(args.radio_type, args.port)
   link.open()
   # get link
   # drain rx buffer
   self.pump = Pump(self.link, args.serial)
   if args.no_rf_prelude:
     return
   if not args.autoinit:
     if args.init:
       self.pump.power_control(minutes=args.session_life)
   else:
     self.autoinit(args)
   self.sniff_model( )
Example #10
0
class BaseMMeowlinkApp(decocare_messages.SendMsgApp):
  """
  Base class used by other apps here
  """
  def configure_radio_params(self, parser):
    parser.add_argument('--radio_type', dest='radio_type', default='subg_rfspy', choices=['mmcommander', 'subg_rfspy'])
    parser.add_argument('--mmcommander', dest='radio_type', action='store_const', const='mmcommander')
    parser.add_argument('--subg_rfspy', dest='radio_type', action='store_const', const='subg_rfspy')

    return parser

  def prelude (self, args):
    port = args.port
    builder = LinkBuilder( )
    if port == 'scan':
      port = builder.scan( )
    self.link = link = LinkBuilder().build(args.radio_type, port)
    link.open()
    # get link
    # drain rx buffer
    self.pump = Pump(self.link, args.serial)

    # Early return if we don't want to send any radio comms. Useful from both
    # the command line and for MMTuneApp
    if args.no_rf_prelude:
      return

    if not args.autoinit:
      if args.init:
        self.pump.power_control(minutes=args.session_life)
    else:
      self.autoinit(args)

    self.sniff_model()

  def postlude(self, args):
    return
Example #11
0
  def prelude (self, args):
    port = args.port
    builder = LinkBuilder( )
    if port == 'scan':
      port = builder.scan( )
    self.link = link = LinkBuilder().build(args.radio_type, port)
    link.open()
    # get link
    # drain rx buffer
    self.pump = Pump(self.link, args.serial)

    # Early return if we don't want to send any radio comms. Useful from both
    # the command line and for MMTuneApp
    if args.no_rf_prelude:
      return

    if not args.autoinit:
      if args.init:
        self.pump.power_control(minutes=args.session_life)
    else:
      self.autoinit(args)

    self.sniff_model()
Example #12
0
class BolusApp (BaseMMeowlinkApp):
  """ %(prog)s - Send bolus command to a pump.

  XXX: Be careful please!

  Units might be wrong.  Keep disconnected from pump until you trust it by
  observing the right amount first.
  """
  def customize_parser (self, parser):
    parser.add_argument('units',
                         type=float,
                         help="Amount of insulin to bolus."
                       )

    group = parser.add_mutually_exclusive_group(required=True)
    group.add_argument('--515',
                        dest='strokes_per_unit',
                        action='store_const',
                        const=10
                      )
    group.add_argument('--554',
                        dest='strokes_per_unit',
                        action='store_const',
                        const=40
                      )
    group.add_argument('--strokes',
                        dest='strokes_per_unit',
                        type=int
                      )

    parser.add_argument('--radio_type', dest='radio_type', default='subg_rfspy', choices=['mmcommander', 'subg_rfspy'])
    parser.add_argument('--mmcommander', dest='radio_type', action='store_const', const='mmcommander')
    parser.add_argument('--subg_rfspy', dest='radio_type', action='store_const', const='subg_rfspy')
    # parser = super(BolusApp, self).customize_parser(parser)

    return parser

  def prelude(self, args):
      port = args.port
      builder = LinkBuilder()
      if port == 'scan':
          port = builder.scan()
      self.link = link = LinkBuilder().build(args.radio_type, port)
      link.open()
      self.pump = Pump(self.link, args.serial)
      self.model = None
      if args.no_rf_prelude:
          return
      if not args.autoinit:
          if args.init:
              self.pump.power_control(minutes=args.session_life)
      else:
          self.autoinit(args)
      self.sniff_model()

  def postlude(self, args):
      # self.link.close( )
      return

  def main (self, args):
    print args
    self.bolus(args);

  def bolus (self, args):
    query = commands.Bolus
    kwds = dict(params=fmt_params(args))

    resp = self.exec_request(self.pump, query, args=kwds,
                 dryrun=args.dryrun, render_hexdump=False)
    return resp