1 // 2 // Copyright (c) 2010-2025 Antmicro 3 // 4 // This file is licensed under the MIT License. 5 // Full license text is available in 'licenses/MIT.txt'. 6 // 7 using AntShell.Commands; 8 using Antmicro.Renode.Logging; 9 using Antmicro.Renode.Utilities; 10 using Antmicro.Renode.UserInterface.Tokenizer; 11 12 namespace Antmicro.Renode.UserInterface.Commands 13 { 14 public class NetworkLoggerCommand : AutoLoadCommand 15 { PrintHelp(ICommandInteraction writer)16 public override void PrintHelp(ICommandInteraction writer) 17 { 18 base.PrintHelp(writer); 19 writer.WriteLine(); 20 writer.WriteLine("Usages:"); 21 writer.WriteLine($" {FullCommand} PORT [PLAIN_MODE]"); 22 writer.WriteError("\nYou must specify the port number for the logger's socket."); 23 } 24 25 [Runnable] Run(DecimalIntegerToken port, BooleanToken plainMode)26 public void Run(DecimalIntegerToken port, BooleanToken plainMode) 27 { 28 Run((int)port.Value, plainMode.Value); 29 } 30 31 [Runnable] Run(DecimalIntegerToken port)32 public void Run(DecimalIntegerToken port) 33 { 34 Run((int)port.Value); 35 } 36 NetworkLoggerCommand(Monitor monitor)37 public NetworkLoggerCommand(Monitor monitor) : base(monitor, FullCommand, "sets the output port for logger.", "logN") 38 { 39 } 40 Run(int port, bool plainMode = true)41 private void Run(int port, bool plainMode = true) 42 { 43 Logger.AddBackend(new NetworkBackend(port, plainMode), BackendName, overwrite: true); 44 } 45 46 private readonly string BackendName = "network"; 47 private const string FullCommand = "logNetwork"; 48 } 49 } 50 51