class ServeTelemetry(LineReceiver): """Serve the telemetry""" def __init__(self, producer, raw_source, header): print('initing {}'.format(self.__class__)) self._producer = producer self._is_commander = False self._raw_telemetry_source = raw_source self._command_parser = CommandParser() self._header = header def connectionMade(self): self.proxy = ProducerConsumerBufferProxy(self._producer, self) self.transport.registerProducer(self.proxy, True) self.proxy.write(self._header + '\r\n') self.proxy.resumeProducing() def lineReceived(self, line): print('from {} received line {}'.format(self.transport.getPeer(), line)) if line == 'commander': self._is_commander = True self._command_parser elif self._is_commander: valid, command = self._command_parser.parse_command(line.rstrip()) if valid: self._raw_telemetry_source.async_tx(command) else: print('command not valid') def connectionLost(self, reason): print('connection lost from {}'.format(self.transport.getPeer())) self.transport.unregisterProducer()
class ServeTelemetry(LineReceiver): """Serve the telemetry""" def __init__(self, producer, raw_source, header): print('initing {}'.format(self.__class__)) self._producer = producer self._is_commander = False self._raw_telemetry_source = raw_source self._command_parser = CommandParser() self._header = header def connectionMade(self): self.proxy = ProducerConsumerBufferProxy(self._producer, self) self.transport.registerProducer(self.proxy, True) self.proxy.write(self._header+'\r\n') self.proxy.resumeProducing() def lineReceived(self, line): print('from {} received line {}'.format( self.transport.getPeer(), line)) if line == 'commander': self._is_commander = True self._command_parser elif self._is_commander: valid, command = self._command_parser.parse_command(line.rstrip()) if valid: self._raw_telemetry_source.async_tx(command) else: print('command not valid') def connectionLost(self, reason): print('connection lost from {}'.format(self.transport.getPeer())) self.transport.unregisterProducer()