def place_list(self, req): if req['data'] is None: self.ids.content_layout.add_widget( Label(text="No camera added yet")) else: # pprint.pprint(req) for x in req['data']: actionbar = F.ActionBar(pos_hint={'top': 1}) av = F.ActionView() av.add_widget( F.ActionPrevious(title=x['name'], with_previous=False, size=[0.5, 0.5])) av.add_widget(F.ActionOverflow()) ag = F.ActionGroup(text='CV') ag.add_widget( F.ActionPrevious(title=x['ip'], with_previous=False)) class OffActionButton(Button, ActionItem): def __init__(self, **kwargs): super(OffActionButton, self).__init__(**kwargs) self.camera_id = x['id'] self.text = "Delete" self.size = [0.5, 1] self.size_hint_x = .3 self.size_hint_y = 1 def on_release(self): try: URL = api_uri + '/gui/deletecamera/{0}'.format( self.camera_id) r = requests.get(URL) rjson = r.json() print rjson except Exception as e: print e ag.add_widget(OffActionButton()) av.add_widget(ag) actionbar.add_widget(av) self.ids.content_layout.add_widget(actionbar)
def place_list(self, req): try: if req['data'] is None: self.ids.content_layout.add_widget( Label(text="No camera added yet")) else: # Print active camera list # pprint.pprint(req) for x in req['data']: actionbar = F.ActionBar(pos_hint={'top': 1}) av = F.ActionView() av.add_widget( F.ActionPrevious(title=x['name'], with_previous=False, size=[0.5, 0.5])) av.add_widget(F.ActionOverflow()) # Print CV STATUS of active camera list # print 'CV assigned ' + str(x['cv_assigned']) # print 'CV status ' + str(x['cv_status']) if x['cv_assigned'] is False: titlestr = "Computer Vision: Not Assigned" elif x['cv_status'] is False: titlestr = "Computer Vision: OFF" elif x['cv_status'] is True: titlestr = "Computer Vision: ON" ag = F.ActionGroup(text='CV') ag.add_widget( F.ActionPrevious(title=titlestr, with_previous=False)) class OffActionButton(Button, ActionItem): def __init__(self, **kwargs): super(OffActionButton, self).__init__(**kwargs) self.camera_id = x['id'] self.text = "Off" self.size = [0.5, 1] self.size_hint_x = .3 self.size_hint_y = 1 def on_release(self): try: URL = api_uri + '/gui/disablecv/{0}'.format( self.camera_id) r = requests.get(URL) rjson = r.json() print rjson except Exception as e: print e class OnActionButton(Button, ActionItem): def __init__(self, **kwargs): super(OnActionButton, self).__init__(**kwargs) self.camera_id = x['id'] self.text = "On" self.size = [0.5, 1] self.size_hint_x = .3 self.size_hint_y = 1 def on_release(self): try: URL = api_uri + '/gui/enablecv/{0}'.format( self.camera_id) r = requests.get(URL) rjson = r.json() print rjson except Exception as e: print e class ManualButton(Button, ActionItem): def __init__(self, **kwargs): super(ManualButton, self).__init__(**kwargs) self.camera_id = x['id'] self.text = "Manual" self.size = [0.5, 1] self.size_hint_x = .3 self.size_hint_y = 1 def on_press(self): try: box = GridLayout(cols=3) box.add_widget( Button(text='up_left', on_release=lambda *args: self. move_request('up_left', *args))) box.add_widget( Button(text='up', on_release=lambda *args: self. move_request('up', *args))) box.add_widget( Button(text='up_right', on_release=lambda *args: self. move_request('up_right', *args))) box.add_widget( Button(text='left', on_release=lambda *args: self. move_request('left', *args))) box.add_widget( Button(text='close', on_release=self.popup_close)) box.add_widget( Button(text='right', on_release=lambda *args: self. move_request('right', *args))) box.add_widget( Button(text='down_left', on_release=lambda *args: self. move_request('down_left', *args))) box.add_widget( Button(text='down', on_release=lambda *args: self. move_request('down', *args))) box.add_widget( Button(text='down_right', on_release=lambda *args: self. move_request('down_right', *args))) box.add_widget(Label(text='Size of margins')) controlSlider = Slider(min=0.8, max=1.05, value=1) box.add_widget(controlSlider) box.add_widget( Button(text='Send Margins', on_release=lambda *args: self. send_slider_value(controlSlider. value))) self.popup = Popup(title='Manual Control', content=box, auto_dismiss=False, size_hint=(.8, .8), size=(400, 400)) self.popup.open() except Exception as e: traceback.print_exc() print e def send_slider_value(self, value): URL = api_uri + '/get/slider/value={}'.format( value) r = requests.get(URL) sleep(2) def move_request(self, direction, *args): print str(direction) requests.get( (api_uri + '/gui/move/manual/camera_id={}/direction={}'. format(self.camera_id, direction))) def popup_close(self, *args): self.popup.dismiss() ag.add_widget(OffActionButton()) ag.add_widget(OnActionButton()) ag.add_widget(ManualButton()) av.add_widget(ag) actionbar.add_widget(av) self.ids.content_layout.add_widget(actionbar) except TypeError as e: traceback.print_exc() print(e)