3434#endif
3535
3636#include " Modbus_TCP_Client_poll.hpp"
37+ #include " Print_Time.hpp"
3738#include " license.hpp"
3839#include " modbus_shm.hpp"
3940
41+
4042// ! Maximum number of registers per type
4143constexpr size_t MODBUS_MAX_REGS = 0x10000 ;
4244
@@ -77,7 +79,9 @@ int main(int argc, char **argv) {
7779 };
7880
7981 auto euid = geteuid ();
80- if (!euid) std::cerr << " !!!! WARNING: You should not execute this program with root privileges !!!!" << std::endl;
82+ if (!euid)
83+ std::cerr << Print_Time::iso << " WARNING: !!!! You should not execute this program with root privileges !!!!"
84+ << std::endl;
8185
8286#ifdef COMPILER_CLANG
8387# pragma clang diagnostic push
@@ -179,7 +183,7 @@ int main(int argc, char **argv) {
179183 try {
180184 args = options.parse (argc, argv);
181185 } catch (cxxopts::OptionParseException &e) {
182- std::cerr << " Failed to parse arguments: " << e.what () << ' .' << std::endl;
186+ std::cerr << Print_Time::iso << " ERROR: Failed to parse arguments: " << e.what () << ' .' << std::endl;
183187 return exit_usage ();
184188 }
185189
@@ -222,35 +226,40 @@ int main(int argc, char **argv) {
222226
223227 // check arguments
224228 if (args[" do-registers" ].as <std::size_t >() > MODBUS_MAX_REGS) {
225- std::cerr << " to many do-registers (maximum: " << MODBUS_MAX_REGS << " )." << std::endl;
229+ std::cerr << Print_Time::iso << " ERROR: to many do-registers (maximum: " << MODBUS_MAX_REGS << " )."
230+ << std::endl;
226231 return exit_usage ();
227232 }
228233
229234 if (args[" di-registers" ].as <std::size_t >() > MODBUS_MAX_REGS) {
230- std::cerr << " to many di-registers (maximum: " << MODBUS_MAX_REGS << " )." << std::endl;
235+ std::cerr << Print_Time::iso << " ERROR: to many di-registers (maximum: " << MODBUS_MAX_REGS << " )."
236+ << std::endl;
231237 return exit_usage ();
232238 }
233239
234240 if (args[" ao-registers" ].as <std::size_t >() > MODBUS_MAX_REGS) {
235- std::cerr << " to many ao-registers (maximum: " << MODBUS_MAX_REGS << " )." << std::endl;
241+ std::cerr << Print_Time::iso << " ERROR: to many ao-registers (maximum: " << MODBUS_MAX_REGS << " )."
242+ << std::endl;
236243 return exit_usage ();
237244 }
238245
239246 if (args[" ai-registers" ].as <std::size_t >() > MODBUS_MAX_REGS) {
240- std::cerr << " to many ai-registers (maximum: " << MODBUS_MAX_REGS << " )." << std::endl;
247+ std::cerr << Print_Time::iso << " ERROR: to many ai-registers (maximum: " << MODBUS_MAX_REGS << " )."
248+ << std::endl;
241249 return exit_usage ();
242250 }
243251
244252 const auto CONNECTIONS = args[" connections" ].as <std::size_t >();
245253 if (CONNECTIONS == 0 ) {
246- std::cerr << " The number of connections must not be 0" << std::endl;
254+ std::cerr << Print_Time::iso << " ERROR: The number of connections must not be 0" << std::endl;
247255 return exit_usage ();
248256 }
249257
250258 const auto SEPARATE = args.count (" separate" );
251259 const auto SEPARATE_ALL = args.count (" separate-all" );
252260 if (SEPARATE && SEPARATE_ALL) {
253- std::cerr << " The options --separate and --separate-all cannot be used together." << std::endl;
261+ std::cerr << Print_Time::iso << " ERROR: The options --separate and --separate-all cannot be used together."
262+ << std::endl;
254263 return EX_USAGE;
255264 }
256265
@@ -267,7 +276,7 @@ int main(int argc, char **argv) {
267276 args[" name-prefix" ].as <std::string>(),
268277 FORCE_SHM);
269278 } catch (const std::system_error &e) {
270- std::cerr << e.what () << std::endl;
279+ std::cerr << Print_Time::iso << " ERROR: " << e.what () << std::endl;
271280 return EX_OSERR;
272281 }
273282 }
@@ -290,7 +299,7 @@ int main(int argc, char **argv) {
290299 FORCE_SHM));
291300 mb_mappings[i] = separate_mappings.back ()->get_mapping ();
292301 } catch (const std::system_error &e) {
293- std::cerr << e.what () << std::endl;
302+ std::cerr << Print_Time::iso << " ERROR: " << e.what () << std::endl;
294303 return EX_OSERR;
295304 }
296305 }
@@ -317,7 +326,7 @@ int main(int argc, char **argv) {
317326 FORCE_SHM));
318327 mb_mappings[a] = separate_mappings.back ()->get_mapping ();
319328 } catch (const std::system_error &e) {
320- std::cerr << e.what () << std::endl;
329+ std::cerr << Print_Time::iso << " ERROR: " << e.what () << std::endl;
321330 return EX_OSERR;
322331 }
323332 }
@@ -338,7 +347,7 @@ int main(int argc, char **argv) {
338347 CONNECTIONS);
339348 client->set_debug (args.count (" monitor" ));
340349 } catch (const std::runtime_error &e) {
341- std::cerr << e.what () << std::endl;
350+ std::cerr << Print_Time::iso << " ERROR: " << e.what () << std::endl;
342351 return EX_SOFTWARE;
343352 }
344353 socket = client->get_socket ();
@@ -349,13 +358,14 @@ int main(int argc, char **argv) {
349358
350359 if (args.count (" byte-timeout" )) { client->set_byte_timeout (args[" byte-timeout" ].as <double >()); }
351360 } catch (const std::runtime_error &e) {
352- std::cerr << e.what () << std::endl;
361+ std::cerr << Print_Time::iso << " ERROR: " << e.what () << std::endl;
353362 return EX_SOFTWARE;
354363 }
355364
356365 auto RECONNECT = args.count (" reconnect" ) != 0 ;
357366
358- std::cerr << " Listening on " << client->get_listen_addr () << " for connections." << std::endl;
367+ std::cerr << Print_Time::iso << " INFO: Listening on " << client->get_listen_addr () << " for connections."
368+ << std::endl;
359369
360370 try {
361371 [&]() {
@@ -366,16 +376,16 @@ int main(int argc, char **argv) {
366376 case Modbus::TCP::Client_Poll::run_t ::ok: continue ;
367377 case Modbus::TCP::Client_Poll::run_t ::term_signal: return ;
368378 case Modbus::TCP::Client_Poll::run_t ::term_nocon:
369- std::cerr << " No more active connections." << std::endl;
379+ std::cerr << Print_Time::iso << " INFO: No more active connections." << std::endl;
370380 return ;
371381 case Modbus::TCP::Client_Poll::run_t ::timeout:
372382 case Modbus::TCP::Client_Poll::run_t ::interrupted: continue ;
373383 }
374384 }
375385 }();
376386 } catch (const std::exception &e) {
377- if (!terminate) std::cerr << e.what () << std::endl;
387+ if (!terminate) std::cerr << Print_Time::iso << " ERROR: " << e.what () << std::endl;
378388 }
379389
380- std::cerr << " Terminating..." << std::endl;
390+ std::cerr << Print_Time::iso << " INFO: Terminating..." << std::endl;
381391}
0 commit comments