# SPDX-FileCopyrightText: Copyright (c) 2022 NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: LicenseRef-NvidiaProprietary # # NVIDIA CORPORATION, its affiliates and licensors retain all intellectual # property and proprietary rights in and to this material, related # documentation and any modifications thereto. Any use, reproduction, # disclosure or distribution of this material and related documentation # without an express license agreement from NVIDIA CORPORATION or # its affiliates is strictly prohibited. from tkinter import StringVar from tkinter.ttk import Label, LabelFrame from ...utils.common import PAttrs, PNames from ...utils.layoutmanager import fill_parent, grid_span, padding from ...utils.subjectobserver import Observer class EMCFrame(LabelFrame, Observer): def __init__(self, master=None, **kwargs): super().__init__(master, text="EMC", **kwargs) self.create_widgets() self.manage_layout() fill_parent(self) def create_widgets(self): self.emc_freq_v = StringVar() self.emc_load_v = StringVar() self.mem_usage_v = StringVar() self.mem_load_v = StringVar() self.swap_usage_v = StringVar() self.swap_load_v = StringVar() self.name_hl = Label(self, text="Name") self.freq_hl = Label(self, text="Freq (MHz) / Size (MB)") self.load_hl = Label(self, text="Load %") self.emc_l = Label(self, text="emc") self.mem_l = Label(self, text="memory") self.swap_l = Label(self, text="swap") self.emc_freq_l = Label(self, textvariable=self.emc_freq_v) self.mem_usage_l = Label(self, textvariable=self.mem_usage_v) self.swap_usage_l = Label(self, textvariable=self.swap_usage_v) self.emc_load_l = Label(self, textvariable=self.emc_load_v) self.mem_load_l = Label(self, textvariable=self.mem_load_v) self.swap_load_l = Label(self, textvariable=self.swap_load_v) def manage_layout(self): self.name_hl.grid(row=0, column=0, **grid_span, **padding) self.freq_hl.grid(row=0, column=1, **grid_span, **padding) self.load_hl.grid(row=0, column=2, **grid_span, **padding) self.emc_l.grid(row=1, column=0, **grid_span, **padding) self.mem_l.grid(row=2, column=0, **grid_span, **padding) self.swap_l.grid(row=3, column=0, **grid_span, **padding) self.emc_freq_l.grid(row=1, column=1, **grid_span, **padding) self.mem_usage_l.grid(row=2, column=1, **grid_span, **padding) self.swap_usage_l.grid(row=3, column=1, **grid_span, **padding) self.emc_load_l.grid(row=1, column=2, **grid_span, **padding) self.mem_load_l.grid(row=2, column=2, **grid_span, **padding) self.swap_load_l.grid(row=3, column=2, **grid_span, **padding) def update_data(self, data): self.emc_freq_v.set(f"{data[(PNames.EMC, PAttrs.CURR_FREQ)]} MHz") self.emc_load_v.set(f"{data[(PNames.EMC, PAttrs.CURR_LOAD)]} %") self.mem_usage_v.set(f"{data[(PNames.MEM, PAttrs.USED_SIZE)]}/" f"{data[(PNames.MEM, PAttrs.TOTAL_SIZE)]} MB") self.mem_load_v.set(f"{data[(PNames.MEM, PAttrs.CURR_LOAD)]} %") self.swap_usage_v.set(f"{data[(PNames.SWAP, PAttrs.USED_SIZE)]}/" f"{data[(PNames.SWAP, PAttrs.TOTAL_SIZE)]} MB") self.swap_load_v.set(f"{data[(PNames.SWAP, PAttrs.CURR_LOAD)]} %")