initial commit

This commit is contained in:
2026-08-07 15:56:42 +09:00
commit 91ad25aca9
1012 changed files with 159314 additions and 0 deletions
+79
View File
@@ -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)