101{
102 std::string red = "\033[31m";
103 std::string green = "\033[32m";
104 std::string reset = "\033[0m";
105
108
109 while (
get_kernel()->get_signal_interrupt_command_line_loop() ==
true) {
110 int total_execution_time = 0.0;
111
112 std::cout << "[Status]"
113 << std::setw(15) << "Component (Segment #)"
114 << std::setw(15) << "CPU #"
115 << std::setw(15) << "Execution Time"
116 << std::setw(15) << "Update Rate"
117 << std::flush << std::endl;
119 std::string online = std::string(red + "Offline" + reset);
120 if (i->second.ptr->is_initialized() == true)
121 online = std::string(green + "Online" + reset);
122 std::cout << "\r\033[K" << std::flush;
123
124 double limited_update_rate = std::round(i->second.ptr->get_thread_update_rate() * 100.0) / 100.0;
125
126 total_execution_time += i->second.ptr->get_total_execution_time();
127 std::cout << "[" << online << "]"
128 << std::setw(15) << i->second.ptr->get_type_string() << " (" << i->second.segment_number << ")"
129 << std::setw(15) << i->second.ptr->get_thread_cpu_id()
130 << std::setw(15) << i->second.ptr->get_total_execution_time() << "ns"
131 << std::setw(15) << limited_update_rate << "/s."
132 << std::flush << std::endl;
133 }
134
135 std::cout << "Total Execution Time: " << total_execution_time << "ns" << std::endl;
136
138 std::this_thread::sleep_for(std::chrono::seconds(1));
139 }
141 return true;
142}
Kernel * get_kernel()
Definition: Server.hpp:237
void set_signal_interrupt_command_line_loop(bool signal)
Definition: Server.hpp:540
KernelComponents & get_components()
Definition: Server.hpp:528