|
|
@ -2067,10 +2067,9 @@ static void adj_width(int var, int *length) |
|
|
|
|
|
|
|
|
|
|
|
static int dev_width; |
|
|
|
static int dev_width; |
|
|
|
|
|
|
|
|
|
|
|
static void curses_print_devstatus(int thr_id) |
|
|
|
static void curses_print_devstatus(struct cgpu_info *cgpu, int count) |
|
|
|
{ |
|
|
|
{ |
|
|
|
static int awidth = 1, rwidth = 1, hwwidth = 1, uwidth = 1; |
|
|
|
static int awidth = 1, rwidth = 1, hwwidth = 1, uwidth = 1; |
|
|
|
struct cgpu_info *cgpu; |
|
|
|
|
|
|
|
char logline[256]; |
|
|
|
char logline[256]; |
|
|
|
char displayed_hashes[16], displayed_rolling[16]; |
|
|
|
char displayed_hashes[16], displayed_rolling[16]; |
|
|
|
uint64_t dh64, dr64; |
|
|
|
uint64_t dh64, dr64; |
|
|
@ -2078,14 +2077,12 @@ static void curses_print_devstatus(int thr_id) |
|
|
|
if (opt_compact) |
|
|
|
if (opt_compact) |
|
|
|
return; |
|
|
|
return; |
|
|
|
|
|
|
|
|
|
|
|
cgpu = get_thr_cgpu(thr_id); |
|
|
|
if (count >= start_devices || devcursor + count > LINES - 2) |
|
|
|
|
|
|
|
|
|
|
|
if (cgpu->cgminer_id >= start_devices || devcursor + cgpu->cgminer_id > LINES - 2) |
|
|
|
|
|
|
|
return; |
|
|
|
return; |
|
|
|
|
|
|
|
|
|
|
|
cgpu->utility = cgpu->accepted / total_secs * 60; |
|
|
|
cgpu->utility = cgpu->accepted / total_secs * 60; |
|
|
|
|
|
|
|
|
|
|
|
wmove(statuswin,devcursor + cgpu->cgminer_id, 0); |
|
|
|
wmove(statuswin,devcursor + count, 0); |
|
|
|
wprintw(statuswin, " %s %*d: ", cgpu->drv->name, dev_width, cgpu->device_id); |
|
|
|
wprintw(statuswin, " %s %*d: ", cgpu->drv->name, dev_width, cgpu->device_id); |
|
|
|
logline[0] = '\0'; |
|
|
|
logline[0] = '\0'; |
|
|
|
cgpu->drv->get_statline_before(logline, cgpu); |
|
|
|
cgpu->drv->get_statline_before(logline, cgpu); |
|
|
@ -6431,10 +6428,28 @@ static void *watchdog_thread(void __maybe_unused *userdata) |
|
|
|
|
|
|
|
|
|
|
|
#ifdef HAVE_CURSES |
|
|
|
#ifdef HAVE_CURSES |
|
|
|
if (curses_active_locked()) { |
|
|
|
if (curses_active_locked()) { |
|
|
|
|
|
|
|
struct cgpu_info *cgpu; |
|
|
|
|
|
|
|
int count; |
|
|
|
|
|
|
|
|
|
|
|
change_logwinsize(); |
|
|
|
change_logwinsize(); |
|
|
|
curses_print_status(); |
|
|
|
curses_print_status(); |
|
|
|
for (i = 0; i < mining_threads; i++) |
|
|
|
count = 0; |
|
|
|
curses_print_devstatus(i); |
|
|
|
for (i = 0; i < mining_threads; i++) { |
|
|
|
|
|
|
|
cgpu = get_thr_cgpu(i); |
|
|
|
|
|
|
|
#ifndef USE_USBUTILS |
|
|
|
|
|
|
|
if (cgpu) |
|
|
|
|
|
|
|
#else |
|
|
|
|
|
|
|
if (cgpu && !cgpu->usbinfo.nodev) |
|
|
|
|
|
|
|
#endif |
|
|
|
|
|
|
|
curses_print_devstatus(cgpu, count++); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
#ifdef USE_USBUTILS |
|
|
|
|
|
|
|
for (i = 0; i < mining_threads; i++) { |
|
|
|
|
|
|
|
cgpu = get_thr_cgpu(i); |
|
|
|
|
|
|
|
if (cgpu && cgpu->usbinfo.nodev) |
|
|
|
|
|
|
|
curses_print_devstatus(cgpu, count++); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
#endif |
|
|
|
touchwin(statuswin); |
|
|
|
touchwin(statuswin); |
|
|
|
wrefresh(statuswin); |
|
|
|
wrefresh(statuswin); |
|
|
|
touchwin(logwin); |
|
|
|
touchwin(logwin); |
|
|
|