Fixing loop, discovering addstr is persistant
This commit is contained in:
parent
4bf9a1d133
commit
b68b4cd401
23
netwatch.py
23
netwatch.py
|
@ -9,7 +9,7 @@
|
||||||
import curses
|
import curses
|
||||||
import curses.wrapper
|
import curses.wrapper
|
||||||
# Timer
|
# Timer
|
||||||
from gi.repository import GObject as gobject
|
from gi.repository import GLib, GObject
|
||||||
# Pinging
|
# Pinging
|
||||||
import subprocess
|
import subprocess
|
||||||
# Regex
|
# Regex
|
||||||
|
@ -27,6 +27,7 @@ class Pinger:
|
||||||
icon_height = 22
|
icon_height = 22
|
||||||
|
|
||||||
def ping(self):
|
def ping(self):
|
||||||
|
self.draw()
|
||||||
ping = subprocess.Popen(
|
ping = subprocess.Popen(
|
||||||
["ping", "-c", "1", host],
|
["ping", "-c", "1", host],
|
||||||
stdout = subprocess.PIPE,
|
stdout = subprocess.PIPE,
|
||||||
|
@ -35,15 +36,21 @@ class Pinger:
|
||||||
out, error = ping.communicate()
|
out, error = ping.communicate()
|
||||||
m = re.search('time=(.*) ms', out)
|
m = re.search('time=(.*) ms', out)
|
||||||
if error or m == None:
|
if error or m == None:
|
||||||
label = "PING FAIL"
|
|
||||||
self.log_ping(-1)
|
self.log_ping(-1)
|
||||||
else:
|
else:
|
||||||
latency = "%.2f" % float(m.group(1))
|
latency = "%.2f" % float(m.group(1))
|
||||||
label = latency+" ms"
|
|
||||||
self.log_ping(latency)
|
self.log_ping(latency)
|
||||||
self.stdscr.addstr(2,1,"Ping: "+label, curses.color_pair(2))
|
if float(latency) == -1:
|
||||||
|
self.stdscr.addstr(self.count,1,"Ping: FAIL", curses.color_pair(1))
|
||||||
|
else:
|
||||||
|
self.stdscr.addstr(self.count,1,"Ping: "+latency, curses.color_pair(2))
|
||||||
|
self.count += 1
|
||||||
|
GObject.timeout_add_seconds(self.timeout, self.ping)
|
||||||
|
self.draw()
|
||||||
|
|
||||||
|
def draw(self):
|
||||||
|
# for index, ping in enumerate(self.ping_log):
|
||||||
self.stdscr.refresh()
|
self.stdscr.refresh()
|
||||||
gobject.timeout_add_seconds(self.timeout, self.ping)
|
|
||||||
|
|
||||||
def log_ping(self, value):
|
def log_ping(self, value):
|
||||||
self.ping_log.append(float(value))
|
self.ping_log.append(float(value))
|
||||||
|
@ -58,7 +65,10 @@ class Pinger:
|
||||||
# start the ping process
|
# start the ping process
|
||||||
self.stdscr = stdscr
|
self.stdscr = stdscr
|
||||||
self.timeout = ping_frequency
|
self.timeout = ping_frequency
|
||||||
|
self.count = 1
|
||||||
self.ping()
|
self.ping()
|
||||||
|
self.loop = GLib.MainLoop()
|
||||||
|
self.loop.run()
|
||||||
|
|
||||||
|
|
||||||
def main(stdscr):
|
def main(stdscr):
|
||||||
|
@ -66,10 +76,7 @@ def main(stdscr):
|
||||||
curses.init_pair(1, curses.COLOR_RED, curses.COLOR_BLACK);
|
curses.init_pair(1, curses.COLOR_RED, curses.COLOR_BLACK);
|
||||||
curses.init_pair(2, curses.COLOR_GREEN, curses.COLOR_BLACK);
|
curses.init_pair(2, curses.COLOR_GREEN, curses.COLOR_BLACK);
|
||||||
|
|
||||||
stdscr.addstr(1,1,"Hello, world.", curses.color_pair(1))
|
|
||||||
pinger = Pinger(stdscr)
|
pinger = Pinger(stdscr)
|
||||||
stdscr.refresh()
|
|
||||||
stdscr.getch()
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
curses.wrapper(main)
|
curses.wrapper(main)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user