示例#1
0
    def _notify_clients(self, event):
        if len(self.clients) == 0:
            return

        message = {'component': 'avio.mixer', 'action': 'update', 'data': None}
        self.fireEvent(broadcast("clientgroup", message, group=self.clients),
                       "isomer-web")
示例#2
0
    def navdatapush(self):
        """
        Pushes the current :referenceframe: out to clients.

        :return:
        """

        try:
            self.fireEvent(
                referenceframe({
                    'data': self.referenceframe,
                    'ages': self.referenceages
                }), "navdata")
            self.intervalcount += 1

            if self.intervalcount == self.passiveinterval and len(
                    self.referenceframe) > 0:
                self.fireEvent(
                    broadcast(
                        'users', {
                            'component': 'isomer.navdata.sensors',
                            'action': 'update',
                            'data': {
                                'data': self.referenceframe,
                                'ages': self.referenceages
                            }
                        }), "isomer-web")
                self.intervalcount = 0
                # self.log("Reference frame successfully pushed.",
                # lvl=verbose)
        except Exception as e:
            self.log("Could not push referenceframe: ",
                     e,
                     type(e),
                     lvl=critical)
示例#3
0
 def _transmit(self, image):
     message = {
         'component': 'isomer.matelightsim',
         'action': 'update',
         'data': image.tolist()
     }
     self.fireEvent(
         broadcast("clientgroup", message, group=self.clients),
         "isomer-web"
     )
示例#4
0
 def _broadcast(self, frame):
     message = {
         'component': 'avio.gifplayer',
         'action': 'frame_update',
         'data': {
             'channel': self.config['channel'],
             'frame': frame.tolist()
         }
     }
     self.fireEvent(broadcast("clientgroup", message, group=self.clients),
                    "isomer-web")
示例#5
0
 def _broadcast(self, frame):
     # TODO: Maybe only transmit necessary data, not statics like length or always
     #  the whole config
     message = {
         'component': 'avio.gifplayer',
         'action': 'frame_update',
         'data': {
             'channel': self.config['channel'],
             'config': self.config,
             'current': self.cur,
             'length': self.breakpoint - self.startpoint,
             'frame': frame.tolist()
         }
     }
     self.fireEvent(broadcast("clientgroup", message, group=self.clients),
                    "isomer-web")
示例#6
0
 def _notify_clients(self, event):
     if len(self.clients) == 0:
         return
     # TODO: DIRTY HACK! DIIIIIRTY! REALLY DIRTY!
     # <Event(7-JoyAxisMotion {'joy': 0, 'axis': 4, 'value': 0.2989593188268685})>"}
     data = json.loads("{" + str(event).split("{")[1].rstrip(")>").replace("'", '"'))
     data['action'] = str(event).split("-")[1].split(" ")[0]
     message = {
         'component': 'avio.controller',
         'action': 'update',
         'data': data
     }
     self.fireEvent(
         broadcast("clientgroup", message, group=self.clients),
         "isomer-web"
     )