Skip to content

Commit

Permalink
add send and received statistic
Browse files Browse the repository at this point in the history
  • Loading branch information
p-eli committed Oct 9, 2015
1 parent fe8863c commit 0e46b21
Show file tree
Hide file tree
Showing 2 changed files with 46 additions and 33 deletions.
15 changes: 7 additions & 8 deletions createApGui/createEditAp.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,8 @@ def __init__(self, setting):
self.setting = setting
self._ = self.setting['language'].gettext
self.initWindow()
self.setting['runningAp'].updatingPage['statusWindow'] = self.updateStatusPage

self.setting['runningAp'].registerPage(self.updateStatusPage)
self.set_default_icon_from_file(self.setting['iconPath'])

def show(self, page=None):
Expand Down Expand Up @@ -85,8 +86,6 @@ def initStatusPage(self):
self.disconnectButton = Gtk.Button()
self.createButton(self._('Disconnect'),[2,3,9,10],table,self.connectDisconnect,self.disconnectButton)

#self.updateStatusPage()

self.notebook.append_page(table, Gtk.Label(self._('Running AP')))

def connectDisconnect(self, button=None):
Expand Down Expand Up @@ -320,10 +319,10 @@ def updateStatusPage(self, signal=None):
self.statusNameAp.set_text(self.setting['runningAp'].activeAp['name'])
self.statusInterface1.set_text(self.setting['runningAp'].activeAp['interface1'])
self.statusInterface2.set_text(self.setting['runningAp'].activeAp['interface2'])
self.statusReciving.set_text('None')
self.statusTotalReciving.set_text('None')
self.statusSending.set_text('None')
self.statusTotalSending.set_text('None')
self.statusReciving.set_text(self.setting['runningAp'].receiving)
self.statusTotalReciving.set_text(self.setting['runningAp'].totalReceived)
self.statusSending.set_text(self.setting['runningAp'].sending)
self.statusTotalSending.set_text(self.setting['runningAp'].totalSent)
if self.setting['runningAp'].status['active']:
self.disconnectButton.show()
self.connectButton.hide()
Expand Down Expand Up @@ -386,6 +385,6 @@ def showHidePasswd(self, stat):
self.apPassword.set_visibility(not stat.get_active())

def on_destroy(self, widget):
self.setting['runningAp'].updatingPage['statusWindow'] = None
self.setting['runningAp'].unregisterPage()
self.setting['createEditAp'] = None
self.destroy()
64 changes: 39 additions & 25 deletions createApGui/runningAp.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,9 @@

signalNewMsg = 'newMsg'
signalUpdateStatistic = 'updateStatistic'
regexRX = re.compile('RX[^\(]*[^\)]*\)')
regexTX = re.compile('TX[^\(]*[^\)]*\)')
regexBrackets = re.compile('[^\(]*\(([^\)]*)\)')

class RunningAp():
GObject.signal_new(signalNewMsg, GObject.GObject, GObject.SIGNAL_RUN_FIRST, GObject.TYPE_NONE, ())
Expand All @@ -32,7 +35,7 @@ def reInit(self):
self.__activeAp = {'name':'None', 'passwd':'None', 'interface1':'None', 'interface2':'None'}
self.__status = {'active':False,'text':self._('No active AP'),'button':self._('Connect')}
self.errorMsg = {'newMsg':False,'title':None, 'text':None}
self.__statistic = {'startReceived':None,'startSending':None,'reciving':0, 'totalReceived':0, 'sending':0, 'totalSent':0}
self.__statistic = {'startReceived':None,'startSending':None,'receiving':'0', 'totalReceived':'0', 'sending':'0', 'totalSent':'0'}
#init Thread
self.interfaceThread = TerminalInterface(self.mysignal,signalNewMsg)
self.statisticThread = Statistic(self.mysignal,signalUpdateStatistic)
Expand All @@ -51,8 +54,8 @@ def runAp(self):
self.__status['button'] = self._('Disconnect')
self.__status['active'] = True
self.interfaceLock.release()
self.updatingStatus()
self.runStatistic()
self.updatingStatus()

def stopAp(self):
self.interfaceThread.stop()
Expand Down Expand Up @@ -86,47 +89,47 @@ def newCmdMsg(self, signal=None):

def runStatistic(self):
if self.__status['active']:
print('run statistic')
self.statisticThread.command = ['ifconfig'+' '+self.__activeAp['interface1']]
self.statisticThread.start()

def updateStatistic(self, signal=None):
print('update statistic')
msg = self.statisticThread.read()
if 'RX' in msg and 'bytes' in msg:
self.statisticLock.acquire()
try:
line = re.search('RX[^\(]*[^\)]*\)', msg).group(0)
print(line)
value = line.find('\([\)]*)')
# value = re.search('\(*[^\)]*', line).group(0)
print(value)
except AttributeError:
pass
if self.__statistic['startReceived'] == None:
pass
#todo self.__statistic['startReceived'] ==
line = re.search(regexRX, msg).group(0)
line = re.sub(regexBrackets,'\\1', line)
self.__statistic['totalReceived'] = line
#if self.__statistic['startReceived'] == None:
# self.__statistic['startReceived'] = line
self.statisticLock.release()

if 'TX' in msg and 'bytes' in msg:
self.statisticLock.acquire()

if self.__statistic['startSending'] == None:
pass
line = re.search(regexTX, msg).group(0)
line = re.sub(regexBrackets,'\\1', line)
self.__statistic['totalSent'] = line
# if self.__statistic['startSending'] == None:
#todo self.__statistic['startReceived'] ==
self.statisticLock.release()
#self.updatingStatus()
self.updatingStatus()

def stopStatistic(self):
self.statisticThread.stop()

def updatingStatus(self):
print('update status jebat')
if self.updatingPage['statusWindow']:
self.updatingPage['statusWindow']()
elif self.updatingPage['tray']:
self.updatingPage['tray']()

def registerPage(self, page):
self.updatingPage['statusWindow'] = page
self.runStatistic()

def unregisterPage(self):
self.updatingPage['statusWindow'] = None
self.stopStatistic()

@property
def activeAp(self):
return self.__activeAp
Expand All @@ -150,10 +153,21 @@ def status(self, data):
pass

@property
def statistic(self):
return self.__statistic
def totalReceived(self):
return self.__statistic['totalReceived']

@property
def receiving(self):
return self.__statistic['receiving']

@property
def sending(self):
return self.__statistic['sending']

@property
def totalSent(self):
return self.__statistic['totalSent']



@statistic.setter
def statistic(self):
pass

0 comments on commit 0e46b21

Please sign in to comment.