001/* 002 * Copyright (C) Photon Vision. 003 * 004 * This program is free software: you can redistribute it and/or modify 005 * it under the terms of the GNU General Public License as published by 006 * the Free Software Foundation, either version 3 of the License, or 007 * (at your option) any later version. 008 * 009 * This program is distributed in the hope that it will be useful, 010 * but WITHOUT ANY WARRANTY; without even the implied warranty of 011 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 012 * GNU General Public License for more details. 013 * 014 * You should have received a copy of the GNU General Public License 015 * along with this program. If not, see <https://www.gnu.org/licenses/>. 016 */ 017 018package org.photonvision.common.hardware.metrics.cmds; 019 020import org.photonvision.common.configuration.HardwareConfig; 021 022public class LinuxCmds extends CmdBase { 023 public void initCmds(HardwareConfig config) { 024 // CPU 025 cpuMemoryCommand = "free -m | awk 'FNR == 2 {print $2}'"; 026 027 // TODO: boards have lots of thermal devices. Hard to pick the CPU 028 029 cpuUtilizationCommand = 030 "top -bn1 | grep \"Cpu(s)\" | sed \"s/.*, *\\([0-9.]*\\)%* id.*/\\1/\" | awk '{print 100 - $1}'"; 031 032 cpuUptimeCommand = "uptime -p | cut -c 4-"; 033 034 // RAM 035 ramUsageCommand = "free -m | awk 'FNR == 2 {print $3}'"; 036 037 // Disk 038 diskUsageCommand = "df ./ --output=pcent | tail -n +2"; 039 } 040}