mirror of
https://github.com/c-sooyoung/fold_slice.git
synced 2026-09-17 21:49:08 +09:00
initial commit
This commit is contained in:
@@ -0,0 +1,79 @@
|
||||
|
||||
|
||||
import curses
|
||||
import time
|
||||
import glob
|
||||
import os
|
||||
import numpy as np
|
||||
from datetime import datetime
|
||||
|
||||
|
||||
|
||||
def update_max_len(max_len_list, val_list):
|
||||
for it, val in enumerate(val_list):
|
||||
if max_len_list[it]< len(val):
|
||||
max_len_list[it] = len(val)
|
||||
|
||||
return max_len_list
|
||||
|
||||
|
||||
def main(sc):
|
||||
sc.nodelay(1)
|
||||
header = 'Reconstruction monitor - cSAXS beamline'
|
||||
|
||||
curses.init_pair(2, curses.COLOR_GREEN, curses.COLOR_BLACK)
|
||||
offset_left = 1
|
||||
offset_min = 5
|
||||
file_path = os.path.dirname(os.path.realpath(__file__))
|
||||
while True:
|
||||
sc.clear()
|
||||
stdscr = curses.initscr()
|
||||
ln = curses.LINES
|
||||
sc.addstr(0,curses.COLS//2-len(header)//2, header, curses.color_pair(2))
|
||||
#sc.addstr(1, 1, time.strftime("%H:%M:%S"))
|
||||
|
||||
|
||||
fn_list = glob.glob(file_path + '/.tmp_procID/proc_*.dat')
|
||||
|
||||
data = []
|
||||
max_len_data = np.zeros([4])
|
||||
title_lst = ['Node', 'Scan number', 'Elapsed time', 'Caller']
|
||||
max_len_data = update_max_len(max_len_data, title_lst)
|
||||
|
||||
fn_list.sort(key=lambda x: os.stat(os.path.join('./', x)).st_mtime)
|
||||
for ii,fn in enumerate(fn_list):
|
||||
with open(fn, 'r') as f:
|
||||
for line in f:
|
||||
tmp_data = line.split()
|
||||
|
||||
time_diff = datetime.strptime(time.strftime("%H:%M:%S"), '%H:%M:%S') - datetime.strptime(tmp_data[3], '%H:%M:%S')
|
||||
tmp_lst = [tmp_data[0], tmp_data[1], str(time_diff), tmp_data[4]]
|
||||
data.append(tmp_lst)
|
||||
max_len_data = update_max_len(max_len_data, tmp_lst)
|
||||
|
||||
|
||||
|
||||
sum_offset = np.zeros([5])
|
||||
sum_offset[0] = offset_left
|
||||
|
||||
|
||||
for ii,val in enumerate(title_lst):
|
||||
sc.addstr(3, int(sum_offset[ii] + max_len_data[ii]//2-len(val)//2), val)
|
||||
sum_offset[ii+1] = offset_min + sum_offset[ii] + max_len_data[ii]
|
||||
|
||||
for ii,lst in enumerate(data):
|
||||
for jj, lst_val in enumerate(lst):
|
||||
sc.addstr(ii+4,int(sum_offset[jj] + max_len_data[jj]//2-len(lst_val)//2), lst_val)
|
||||
|
||||
|
||||
|
||||
sc.refresh()
|
||||
|
||||
key = sc.getch()
|
||||
if key == ord('q'):
|
||||
break
|
||||
elif key < 0:
|
||||
time.sleep(1)
|
||||
|
||||
if __name__=='__main__': curses.wrapper(main)
|
||||
|
||||
Reference in New Issue
Block a user