Source code for obci.control.gui.obci_log_peer
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import socket
from obci.mx_legacy.multiplexer_constants import peers, types
from obci.control.peer.configured_multiplexer_server import ConfiguredMultiplexerServer
from obci.configs import settings
[docs]class OBCILogCollector(ConfiguredMultiplexerServer):
def __init__(self, addresses):
self.socket = None
super(OBCILogCollector, self).__init__(addresses=addresses,
type=peers.OBCI_LOG_COLLECTOR)
self.ip = '127.0.0.1'
self.port = int(self.get_param('port'))
self.socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
self.ready()
[docs] def handle_message(self, mxmsg):
if self.socket is None:
self.no_response()
return
if mxmsg.type == types.OBCI_LOG_MESSAGE:
self.logger.debug("obci collector - GOT log, sending to socket...")
try:
self.socket.sendto(mxmsg.message,
(self.ip, self.port))
except Exception as l_exc:
self.logger.error("An error occured while sending log to socket")
self.socket.close()
else:
self.logger.warning("Warning! unrecognised message type " + str(mxmsg.type))
self.no_response()
if __name__ == '__main__':
OBCILogCollector(settings.MULTIPLEXER_ADDRESSES).loop()