--
-- Copyright (c) 2020-2023, Adel Noureddine, Université de Pau et des Pays de l'Adour.
-- All rights reserved. This program and the accompanying materials
-- are made available under the terms of the
-- GNU General Public License v3.0 only (GPL-3.0-only)
-- which accompanies this distribution, and is available at:
-- https://www.gnu.org/licenses/gpl-3.0.en.html
--
-- Author : Adel Noureddine
--
with Ada.Text_IO; use Ada.Text_IO;
with Ada.Characters.Latin_1; use Ada.Characters.Latin_1;
package body Help_Info is
procedure Show_Help is
Version_Number : constant String := "0.7.0";
begin
Put_Line (ESC & "[93m" & "~~ PowerJoular ~~" & ESC & "[0m");
Put_Line ("Version " & Version_Number);
Put_Line ("--------------------------");
Put_Line ("PowerJoular is a multi-platform power monitoring tool");
Put_Line ("It estimates power consumption every second based on:");
Put_Line("- Processor and SOC for Intel processors (since Sandy Bridge) using RAPL, or AMD (Ryzen, EPYC)");
Put_Line("- NVIDIA GPUs using NVIDIA SMI if power monitoring is supported by the GPU model");
--Put_Line("- Processor for Raspberry Pi using a regression model");
Put_Line ("--------------------------");
Put_Line (ESC & "[93m" & "Usage:" & ESC & "[0m");
--Put_Line (HT & "powerjoular (for Raspberry Pi)");
Put_Line (HT & "sudo powerjoular (for Intel requires root/sudo)");
Put_Line ("--------------------------");
Put_Line (ESC & "[93m" & "Options:" & ESC & "[0m");
Put_Line (HT & "-h: show this help message");
Put_Line (HT & "-p pid: specifiy a particular PID to monitor");
Put_Line (HT & "-a appName: specifiy a particular application name to monitor (will monitor all PIDs of the application)");
Put_Line (HT & "-f filename: save monitoring data to the given filename path");
Put_Line (HT & "-o filename: save only last monitoring data to the given filename path (file overwritten with only latest power measures)");
Put_Line (HT & "-t: print data to the terminal");
Put_Line (HT & "-l: use linear regression models (less accurate than the default polynomial models) for Raspberry Pi energy models");
Put_Line ("You can mix options, i.e., powerjoular -tp 144 --> monitor PID 144 and will print to the terminal");
Put_Line ("--------------------------");
Put_Line (ESC & "[93m" & "Daemons/Systemd service:" & ESC & "[0m");
Put_Line ("When installing the tool, a systemd service can also be installed. The service runs PowerJoular using the -o option and saves power data to /tmp/powerjoular-service.csv");
Put_Line ("Service can be started using: systemctl start powerjoular.service, and can be enabled to run on boot with: systemctl enable powerjoular.service");
Put_Line ("--------------------------");
Put_Line (ESC & "[93m" & "About:" & ESC & "[0m");
Put_Line ("PowerJoular is written and maintained by Dr Adel Noureddine from the University of Pau and the Pays de l'Adour");
Put_Line ("--------------------------");
Put_Line (ESC & "[93m" & "Copyright:" & ESC & "[0m");
Put_Line ("Copyright (c) 2020-2023, Adel Noureddine. PowerJoular is licensed under the GNU GPL 3 license only (GPL-3.0-only)");
end;
procedure Show_Version is
Version_Number : constant String := "0.7.0";
begin
Put_Line (Version_Number);
end;
end Help_Info;