main.cpp 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. #include <QCoreApplication>
  2. #include "LHLogInit.h"
  3. #include "LHQLogAPI.h"
  4. #include "spdlog/spdlog.h"
  5. #include "ThreadPool.h"
  6. #include "LHCompareAPI.h"
  7. #include "signalstats.h"
  8. #include "ACAServer.h"
  9. #include "singleapplication.h"
  10. #include <QDir>
  11. #include <QFile>
  12. int main(int argc, char* argv[])
  13. {
  14. QCoreApplication a(argc, argv);
  15. /* 初始化日志库 */
  16. initLog("ACAServer", g_apiLhQLog);
  17. auto logger = spdlog::get("main");
  18. if(logger == nullptr)
  19. {
  20. fmt::print("main logger is nullptr");
  21. return -1;
  22. }
  23. /* 检查是否已经有实例在运行 */
  24. SingleApplication app(argc, argv);
  25. if(app.isRunning())
  26. {
  27. SPDLOG_LOGGER_WARN(logger, "ACAServer 已经有一个实例在运行,无法启动新的实例");
  28. return 0;
  29. }
  30. SPDLOG_LOGGER_INFO(logger, "★ ★ ★ ★ ★ ★ ★ ☆ ACAServer ☆ ★ ★ ★ ★ ★ ★ ★");
  31. SPDLOG_LOGGER_INFO(logger, "ACServer Version: {}", "6.0.0.4");
  32. /* 设置线程池最大线程个数 */
  33. CPPTP.setThreadMaxNum(1024);
  34. /* 加载第三方库 */
  35. /* 加载一致性比对动态库 */
  36. if(LoadCompareLibrary())
  37. {
  38. SPDLOG_INFO("一致性对比动态库加载成功!");
  39. }else {
  40. SPDLOG_ERROR("一致性对比动态库加载失败!");
  41. }
  42. SPDLOG_LOGGER_DEBUG(logger, "☆ 初始化噪音检测服务");
  43. /* 初始化噪音检测功能 */
  44. signalstats::initialize(false);
  45. SPDLOG_LOGGER_DEBUG(logger, "★ 噪音检测服务初始化完成");
  46. ACAServer acas;
  47. /* 初始化一些系统信息 */
  48. if(!acas.initGlobalInfo())
  49. {
  50. SPDLOG_LOGGER_ERROR(logger, "ACAServer 初始化失败! 即将退出程序");
  51. return -1;
  52. }
  53. /* 启动服务 */
  54. if(acas.startService())
  55. {
  56. SPDLOG_LOGGER_INFO(logger, "ACAServer 服务启动成功");
  57. } else
  58. {
  59. SPDLOG_LOGGER_ERROR(logger, "ACAServer 服务启动失败");
  60. return -1;
  61. }
  62. int result = a.exec();
  63. signalstats::finalize(); // 结束噪音检测服务
  64. SPDLOG_LOGGER_INFO(logger, "ACAServer 结束运行");
  65. return result;
  66. }