from twisted.internet.protocol import ProcessProtocol
from paradrop.base.output import out
[docs]class AnalyzerProcessProtocol(ProcessProtocol):
def __init__(self, airshark_manager):
self.ready = False
self.airshark_manager = airshark_manager
[docs] def isRunning(self):
return self.ready
[docs] def connectionMade(self):
out.info('Airshark analyzer process starts')
self.ready = True
[docs] def childDataReceived(self, childFd, data):
if (childFd == 4):
# Output of airshark analyzer
#out.info(data)
self.airshark_manager.on_analyzer_message(data)
elif (childFd == 1 or childFd == 2):
# stdout/stderr of airshark analyzer
out.info('Airshark: ========\n%s==================' % data)
[docs] def processEnded(self, status):
out.info('Airshark analyzer process exits')
self.ready = False
[docs] def feedSpectrumData(self, data):
self.transport.writeToChild(3, data)
[docs] def stop(self):
self.transport.signalProcess('KILL')