FIX graphics formatting

This commit is contained in:
Nathan Dwarshuis 2021-07-13 00:14:04 -04:00
parent 7befb37523
commit 021ab83434
2 changed files with 36 additions and 22 deletions

View File

@ -147,14 +147,14 @@ end
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
-- percent plot (label plot with percent signs and some indicator data above it) -- percent plot (label plot with percent signs and some indicator data above it)
M.initPercentPlot = function(x, y, w, h, spacing, label) M.initPercentPlot_formatted = function(x, y, w, h, spacing, label, format)
return { return {
label = _left_text(_G_Widget_.make_point(x, y), label), label = _left_text(_G_Widget_.make_point(x, y), label),
value = _G_Widget_.formattedThresholdText( value = _G_Widget_.formattedThresholdText(
_G_Widget_.make_point(x + w, y), _G_Widget_.make_point(x + w, y),
nil, nil,
M.right_text_style, M.right_text_style,
'%s%%', format,
_G_Widget_.threshold_text_style(_G_Patterns_.CRITICAL_FG, 80) _G_Widget_.threshold_text_style(_G_Patterns_.CRITICAL_FG, 80)
), ),
plot = M.initThemedLabelPlot( plot = M.initThemedLabelPlot(
@ -167,6 +167,10 @@ M.initPercentPlot = function(x, y, w, h, spacing, label)
} }
end end
M.initPercentPlot = function(x, y, w, h, spacing, label)
return M.initPercentPlot_formatted(x, y, w, h, spacing, label, '%s%%')
end
M.percent_plot_draw_static = function(pp, cr) M.percent_plot_draw_static = function(pp, cr)
Text.draw(pp.label, cr) Text.draw(pp.label, cr)
LabelPlot.draw_static(pp.plot, cr) LabelPlot.draw_static(pp.plot, cr)
@ -177,9 +181,17 @@ M.percent_plot_draw_dynamic = function(pp, cr)
LabelPlot.draw_dynamic(pp.plot, cr) LabelPlot.draw_dynamic(pp.plot, cr)
end end
-- TODO this is pretty confusing, nil means -1 which gets fed to any text
-- formatting functions
M.percent_plot_set = function(pp, cr, value) M.percent_plot_set = function(pp, cr, value)
Text.set(pp.value, cr, math.floor(value)) local t = -1
LabelPlot.update(pp.plot, value * 0.01) local p = 0
if value ~= nil then
t = math.floor(value)
p = value * 0.01
end
Text.set(pp.value, cr, t)
LabelPlot.update(pp.plot, p)
end end
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------

View File

@ -14,6 +14,12 @@ local _TEXT_SPACING_ = 20
local _PLOT_SEC_BREAK_ = 20 local _PLOT_SEC_BREAK_ = 20
local _PLOT_HEIGHT_ = 56 local _PLOT_HEIGHT_ = 56
local NA = 'N/A'
local na_percent_format = function(x)
if x == -1 then return NA else return string.format('%s%%', x) end
end
local header = Common.Header( local header = Common.Header(
_G_INIT_DATA_.LEFT_X, _G_INIT_DATA_.LEFT_X,
_MODULE_Y_, _MODULE_Y_,
@ -43,7 +49,7 @@ local internal_temp = Common.initTextRowCrit(
_INTERNAL_TEMP_Y_, _INTERNAL_TEMP_Y_,
_G_INIT_DATA_.SECTION_WIDTH, _G_INIT_DATA_.SECTION_WIDTH,
'Internal Temperature', 'Internal Temperature',
'%s°C', function(s) if s == -1 then return NA else return string.format('%s°C', s) end end,
80 80
) )
@ -75,35 +81,38 @@ local separator3 = Common.initSeparator(
local _GPU_UTIL_Y_ = _SEP_Y_3_ + _SEPARATOR_SPACING_ local _GPU_UTIL_Y_ = _SEP_Y_3_ + _SEPARATOR_SPACING_
local gpu_util = Common.initPercentPlot( local gpu_util = Common.initPercentPlot_formatted(
_G_INIT_DATA_.LEFT_X, _G_INIT_DATA_.LEFT_X,
_GPU_UTIL_Y_, _GPU_UTIL_Y_,
_G_INIT_DATA_.SECTION_WIDTH, _G_INIT_DATA_.SECTION_WIDTH,
_PLOT_HEIGHT_, _PLOT_HEIGHT_,
_PLOT_SEC_BREAK_, _PLOT_SEC_BREAK_,
'GPU Utilization' 'GPU Utilization',
na_percent_format
) )
local _MEM_UTIL_Y_ = _GPU_UTIL_Y_ + _PLOT_HEIGHT_ + _PLOT_SEC_BREAK_ * 2 local _MEM_UTIL_Y_ = _GPU_UTIL_Y_ + _PLOT_HEIGHT_ + _PLOT_SEC_BREAK_ * 2
local mem_util = Common.initPercentPlot( local mem_util = Common.initPercentPlot_formatted(
_G_INIT_DATA_.LEFT_X, _G_INIT_DATA_.LEFT_X,
_MEM_UTIL_Y_, _MEM_UTIL_Y_,
_G_INIT_DATA_.SECTION_WIDTH, _G_INIT_DATA_.SECTION_WIDTH,
_PLOT_HEIGHT_, _PLOT_HEIGHT_,
_PLOT_SEC_BREAK_, _PLOT_SEC_BREAK_,
'Memory Utilization' 'Memory Utilization',
na_percent_format
) )
local _VID_UTIL_Y_ = _MEM_UTIL_Y_ + _PLOT_HEIGHT_ + _PLOT_SEC_BREAK_ * 2 local _VID_UTIL_Y_ = _MEM_UTIL_Y_ + _PLOT_HEIGHT_ + _PLOT_SEC_BREAK_ * 2
local vid_util = Common.initPercentPlot( local vid_util = Common.initPercentPlot_formatted(
_G_INIT_DATA_.LEFT_X, _G_INIT_DATA_.LEFT_X,
_VID_UTIL_Y_, _VID_UTIL_Y_,
_G_INIT_DATA_.SECTION_WIDTH, _G_INIT_DATA_.SECTION_WIDTH,
_PLOT_HEIGHT_, _PLOT_HEIGHT_,
_PLOT_SEC_BREAK_, _PLOT_SEC_BREAK_,
'Video Utilization' 'Video Utilization',
na_percent_format
) )
--[[ --[[
@ -129,21 +138,14 @@ local NV_REGEX = '(%d+)\n'..
'(%d+),(%d+)\n'.. '(%d+),(%d+)\n'..
'graphics=(%d+), memory=%d+, video=(%d+), PCIe=%d+\n' 'graphics=(%d+), memory=%d+, video=(%d+), PCIe=%d+\n'
local NA = 'N/A'
local nvidia_off = function(cr) local nvidia_off = function(cr)
Common.text_row_crit_set(internal_temp, cr, NA) Common.text_row_crit_set(internal_temp, cr, -1)
Common.text_rows_set(clock_speed, cr, 1, NA) Common.text_rows_set(clock_speed, cr, 1, NA)
Common.text_rows_set(clock_speed, cr, 2, NA) Common.text_rows_set(clock_speed, cr, 2, NA)
-- TODO refactor this Common.percent_plot_set(gpu_util, cr, nil)
Text.set(gpu_util.value, cr, NA) Common.percent_plot_set(vid_util, cr, nil)
Text.set(mem_util.value, cr, NA) Common.percent_plot_set(mem_util, cr, nil)
Text.set(vid_util.value, cr, NA)
LabelPlot.update(gpu_util.plot, 0)
LabelPlot.update(mem_util.plot, 0)
LabelPlot.update(vid_util.plot, 0)
end end
local gpu_bus_ctrl = '/sys/bus/pci/devices/0000:01:00.0/power/control' local gpu_bus_ctrl = '/sys/bus/pci/devices/0000:01:00.0/power/control'