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")
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)
def _transmit(self, image): message = { 'component': 'isomer.matelightsim', 'action': 'update', 'data': image.tolist() } self.fireEvent( broadcast("clientgroup", message, group=self.clients), "isomer-web" )
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")
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")
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" )