exit with Ctrl+C and vline
This commit is contained in:
parent
55a83ff9cb
commit
4cfeb22e06
1 changed files with 20 additions and 10 deletions
30
monitor.py
30
monitor.py
|
@ -1,6 +1,6 @@
|
||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
import curses
|
import curses
|
||||||
import sys
|
import sys, os
|
||||||
import time
|
import time
|
||||||
|
|
||||||
import platform
|
import platform
|
||||||
|
@ -75,16 +75,17 @@ def main(stdscr):
|
||||||
ny,nx = stdscr.getmaxyx()
|
ny,nx = stdscr.getmaxyx()
|
||||||
# Coordinates are always passed in the order y,x
|
# Coordinates are always passed in the order y,x
|
||||||
# the top-left corner of a window is coordinate (0,0).
|
# the top-left corner of a window is coordinate (0,0).
|
||||||
# assert nx>=80 and ny>=32
|
# assert nx>=80 and ny>=34
|
||||||
if not (nx>=80 and ny>=32):
|
if not (nx>=80 and ny>=34):
|
||||||
stdscr.addnstr(0,0, 'enlarge the size of this terminal...', 50, curses.A_REVERSE)
|
stdscr.addnstr(0,0, 'enlarge the size of this terminal...', 50, curses.A_REVERSE)
|
||||||
stdscr.addnstr(1,0, f'requires min 32x80, now {ny}x{nx} (row x col)', 50)
|
stdscr.addnstr(1,0, f'requires min 32x80, now {ny}x{nx} (row x col)', 50)
|
||||||
stdscr.refresh()
|
stdscr.refresh()
|
||||||
time.sleep(0.2)
|
time.sleep(0.2)
|
||||||
continue
|
continue
|
||||||
|
|
||||||
stdscr.addnstr(0,0, f'{sys_info}, {n} sensors (max_name_length={max_name_length})', 80)
|
stdscr.box()
|
||||||
|
stdscr.addnstr(0,5, f' {sys_info}, {n} sensors ', 80) # (max_name_length={max_name_length})
|
||||||
|
stdscr.addnstr(ny-1,5, f' Press Ctrl+C to exit ', 80)
|
||||||
|
|
||||||
xmid = nx//2 # //ncol
|
xmid = nx//2 # //ncol
|
||||||
# __|__
|
# __|__
|
||||||
|
@ -97,18 +98,19 @@ def main(stdscr):
|
||||||
else:
|
else:
|
||||||
max_nums = sorted_nums
|
max_nums = sorted_nums
|
||||||
|
|
||||||
for y in range(-1, nrow1):
|
# for y in range(-1, nrow1):
|
||||||
stdscr.addnstr(nrow0+y,xmid, '|', 1)
|
# stdscr.addnstr(nrow0+y,xmid, '|', 1)
|
||||||
|
stdscr.vline(nrow0-1, xmid, curses.ACS_VLINE, nrow1+1)
|
||||||
|
|
||||||
curses.init_pair(1, 14, -1)
|
curses.init_pair(1, 14, -1)
|
||||||
titles = ['Sensor Name','now /max˚C']
|
titles = ['Sensor Name','now /max˚C']
|
||||||
stdscr.addnstr(nrow0-1, 0, f'{titles[0]:{max_name_length+3}} {titles[1]}', 37, curses.color_pair(1))
|
stdscr.addnstr(nrow0-1, 2, f'{titles[0]:{max_name_length+3}} {titles[1]}', 37, curses.color_pair(1))
|
||||||
stdscr.addnstr(nrow0-1,xmid+3, f'{titles[0]:{max_name_length+3}} {titles[1]}', 37, curses.color_pair(1))
|
stdscr.addnstr(nrow0-1,xmid+3, f'{titles[0]:{max_name_length+3}} {titles[1]}', 37, curses.color_pair(1))
|
||||||
|
|
||||||
i = 0;
|
i = 0;
|
||||||
for y in range(0, nrow1):
|
for y in range(0, nrow1):
|
||||||
if i<n:
|
if i<n:
|
||||||
stdscr.addnstr(nrow0+y, 0, f'{sorted_names[i]:{max_name_length+2}} {sorted_nums[i]:5.1f} /{max_nums[i]:5.1f}', 37)
|
stdscr.addnstr(nrow0+y, 2, f'{sorted_names[i]:{max_name_length+2}} {sorted_nums[i]:5.1f} /{max_nums[i]:5.1f}', 37)
|
||||||
i += 1
|
i += 1
|
||||||
for y in range(0, nrow1):
|
for y in range(0, nrow1):
|
||||||
if i<n:
|
if i<n:
|
||||||
|
@ -119,4 +121,12 @@ def main(stdscr):
|
||||||
# stdscr.getkey()
|
# stdscr.getkey()
|
||||||
time.sleep(0.4)
|
time.sleep(0.4)
|
||||||
|
|
||||||
curses.wrapper(main)
|
# https://stackoverflow.com/questions/21120947/catching-keyboardinterrupt-in-python-during-program-shutdown/21144662
|
||||||
|
try:
|
||||||
|
curses.wrapper(main)
|
||||||
|
except KeyboardInterrupt:
|
||||||
|
# print('Finish Monitoring Temperature!')
|
||||||
|
try:
|
||||||
|
sys.exit(0)
|
||||||
|
except SystemExit:
|
||||||
|
os._exit(0)
|
||||||
|
|
Loading…
Reference in a new issue