Changeset - 61dc5bc8ce2e
[Not reviewed]
default
0 1 0
drewp@bigasterisk.com - 8 months ago 2024-05-20 08:27:09
drewp@bigasterisk.com
logging
1 file changed with 3 insertions and 1 deletions:
0 comments (0 inline, 0 general)
src/light9/collector/service.py
Show inline comments
 
@@ -46,64 +46,66 @@ class Updates(WebSocketEndpoint, UiListe
 
        self.listeners = listeners
 

	
 
    async def on_connect(self, websocket: WebSocket):
 
        await websocket.accept()
 
        log.info('socket connect %s', self.scope['client'])
 
        self.websocket = websocket
 
        self.listeners.addClient(self)
 

	
 
    async def sendMessage(self, msgText: bytes):
 
        await self.websocket.send_bytes(msgText)
 

	
 
    # async def on_receive(self, websocket, data):
 
    #     json.loads(data)
 

	
 
    async def on_disconnect(self, websocket: WebSocket, close_code: int):
 
        self.listeners.delClient(self)
 

	
 

	
 
async def PutAttrs(collector: Collector, request):
 
    try:
 
        body = await request.body()
 
    except ClientDisconnect:
 
        log.warning("PUT /attrs request disconnected- ignoring")
 
        return Response('', status_code=400)
 
    #log.info(f'http recv {body=}')
 
    
 
    client, clientSession, settings, sendTime = parseJsonMessage(collector.graph, body)
 
    collector.setAttrs(client, clientSession, settings, sendTime)
 
    return Response('', status_code=202)
 

	
 

	
 
async def zmqListener(collector):
 
    try:
 
        ctx = zmq.asyncio.Context()
 
        sock = ctx.socket(zmq.SUB)
 
        sock.bind('tcp://127.0.0.1:9203')
 
        sock.subscribe(b'setAttr')
 
        while True:
 
            [topic, msg] = await sock.recv_multipart()
 
            if topic != b'setAttr':
 
                raise ValueError(topic)
 
            # log.info(f'zmq recv {len(msg)}')
 
            # log.info(f'zmq recv {msg=}')
 
            client, clientSession, settings, sendTime = parseJsonMessage(collector.graph, msg)
 
            collector.setAttrs(client, clientSession, settings, sendTime)
 
    except:
 
        traceback.print_exc()
 
        raise
 

	
 

	
 
def findDevice():
 
    for line in subprocess.check_output("lsusb").decode('utf8').splitlines():
 
        if '16c0:05dc' in line:
 
            words = line.split(':')[0].split()
 
            dev = f'/dev/bus/usb/{words[1]}/{words[3]}'
 
            log.info(f'device will be {dev}')
 
            st = os.stat(dev)
 
            if not (st.st_mode & (stat.S_IWUSR | stat.S_IRUSR)):
 
                raise ValueError(f'{dev} has insufficient stat ({stat.filemode(st.st_mode)})')
 
            return dev, int(words[1]), int(words[3])
 
    raise ValueError("no matching uDMX found")
 

	
 

	
 
def main():
 
    logging.getLogger('autodepgraphapi').setLevel(logging.INFO)
 
    logging.getLogger('syncedgraph').setLevel(logging.INFO)
 
    logging.getLogger('output.allDmx').setLevel(logging.WARNING)
0 comments (0 inline, 0 general)