LocalConfig.h 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192
  1. // LocalConfig.h
  2. #pragma once
  3. // Linux 兼容性定义
  4. #define LOCALCONFIG_API
  5. #define LOCALCONFIG_C_API extern "C"
  6. // 基本类型定义
  7. typedef int BOOL; // 布尔类型
  8. #define TRUE 1 // 布尔真值
  9. #define FALSE 0 // 布尔假值
  10. #define MAX_PATH 260 // 最大路径长度
  11. // 进程类型枚举
  12. enum CCOS_PROC_TYPE {
  13. CCOS_PROC_SLAVE = 0, // 从进程
  14. CCOS_PROC_MASTER, // 主进程
  15. CCOS_PROC_CHANNEL, // 通道进程
  16. CCOS_PROC_CLIENT // 客户端进程
  17. };
  18. #include <string>
  19. #include <vector>
  20. #include "Definitions.h"
  21. #include "ResDataObject.h"
  22. #include "common_api.h"
  23. using namespace std;
  24. // 函数声明
  25. // ================================================================
  26. // 声明获取全局实例的函数
  27. CCOS_PROC_TYPE& GetConfigModeInstance();
  28. std::vector<std::string>& GetDriverConfigFilepath();
  29. std::string& GetLocalBusId();
  30. std::string& GetMajorIDInstance();
  31. std::string& GetVendorID();
  32. std::string& GetProductID();
  33. std::string& GetSerialID();
  34. std::string& GetDeviceType();
  35. pthread_mutex_t& GetSectionMutex();
  36. ResDataObject& GetResUid2TypeMap();
  37. // 添加驱动配置文件路径
  38. LOCALCONFIG_API bool AddDriverConfig(const char* pszDriverConfig);
  39. // 获取指定索引的驱动配置文件路径
  40. LOCALCONFIG_API const char* GetDriverConfigFilepath(size_t idx);
  41. // 设置配置模式(进程角色)
  42. LOCALCONFIG_API void SetConfigMode(CCOS_PROC_TYPE Master);
  43. // 获取当前配置模式
  44. LOCALCONFIG_API CCOS_PROC_TYPE GetConfigMode();
  45. LOCALCONFIG_API ResDataObject tryGetLocalOptions(const char* pKey);
  46. // 获取 EBus 日志标志
  47. LOCALCONFIG_API bool getEbusLogFlag();
  48. // 获取本地 EBus ID
  49. LOCALCONFIG_API ResDataObject& getLocalEbusId();
  50. // 获取本地 EBus 路由器 IP
  51. LOCALCONFIG_API ResDataObject& getLocalEbusRouterIp();
  52. // 获取本地 EBus 端口
  53. LOCALCONFIG_API ResDataObject& getLocalEbusPort();
  54. // 获取通道 EBus ID
  55. LOCALCONFIG_API ResDataObject& getChannelEbusId();
  56. // 获取通道根路径
  57. LOCALCONFIG_API ResDataObject& getChannelRootpath();
  58. // 获取本地机器 ID
  59. LOCALCONFIG_API ResDataObject& getLocalMachineId();
  60. // 获取本地 IP 地址
  61. LOCALCONFIG_API ResDataObject& getLocalIpAddress();
  62. // 获取模块标题(可执行文件名)
  63. LOCALCONFIG_API ResDataObject& GetModuleTitle();
  64. // 获取根路径
  65. LOCALCONFIG_API ResDataObject& getRootpath();
  66. // 设置日志根路径
  67. LOCALCONFIG_API void setLogRootpath(const char* pszRootPath);
  68. // 获取日志根路径
  69. LOCALCONFIG_API ResDataObject& getLogRootpath();
  70. // 获取 P2P 标志
  71. LOCALCONFIG_API bool getP2pFlag();
  72. // 获取 P2P 服务器 IP
  73. LOCALCONFIG_API ResDataObject getP2pServerIp();
  74. // 获取 P2P 角色
  75. LOCALCONFIG_API ResDataObject getP2pRole();
  76. // 创建工作路径
  77. LOCALCONFIG_API ResDataObject MakeWorkPath(ResDataObject& probeInfo, ResDataObject& Connection,
  78. ResDataObject& ProcPath, bool ForWork);
  79. // 创建设备路径
  80. LOCALCONFIG_API ResDataObject MakeDevicePath(ResDataObject& probeInfo, ResDataObject& Connection,
  81. ResDataObject& SubPath);
  82. // 创建 CCOS 路径
  83. LOCALCONFIG_API ResDataObject MakeCcosPath(ResDataObject& probeInfo, ResDataObject& Connection,
  84. ResDataObject& SubPath, bool isDriver = false);
  85. // 获取完整驱动配置文件列表
  86. LOCALCONFIG_API bool GetFullDriverConfigFiles(ResDataObject& filelist);
  87. // 获取完整驱动配置路径(扩展版本)
  88. LOCALCONFIG_API DWORD GetFullDriverConfigPathEx(ResDataObject& PathList);
  89. // 获取完整驱动配置路径
  90. LOCALCONFIG_API ResDataObject& GetFullDriverConfigPath();
  91. // 获取32位完整驱动配置路径
  92. LOCALCONFIG_API ResDataObject& GetFullDriverConfigPathX32();
  93. // 获取特定驱动配置文件列表
  94. LOCALCONFIG_API bool GetSpecificDriverConfigFiles(ResDataObject& filelist, bool FullDriverList);
  95. // 获取驱动配置文件列表
  96. LOCALCONFIG_API bool GetDriverConfigFiles(ResDataObject& filelist);
  97. // 获取驱动配置路径
  98. LOCALCONFIG_API ResDataObject& GetDriverConfigPath();
  99. // 获取驱动配置路径(扩展版本)
  100. LOCALCONFIG_API DWORD GetDriverConfigPathEx(ResDataObject& PathList);
  101. // 获取32位驱动配置路径
  102. LOCALCONFIG_API ResDataObject& GetDriverConfigPathX32();
  103. // 获取日志配置路径
  104. LOCALCONFIG_API ResDataObject& GetLogConfigPath();
  105. // 获取驱动 EBus ID
  106. LOCALCONFIG_API bool GetDriverEbusId(const char* pConfigFilepath, ResDataObject& BusId,
  107. ResDataObject& DriverPath, bool ForceUpdate = false);
  108. // 获取驱动进程路径
  109. LOCALCONFIG_API bool GetDriverProcessPath(const char* pConfigFilepath, ResDataObject& DriverProcessPath);
  110. // 获取驱动进程信息
  111. LOCALCONFIG_API bool GetDriverProcInfo(const char* pConfigFilepath, ResDataObject& DriverProcInfo);
  112. // 获取日志模式资源
  113. LOCALCONFIG_API bool GetLogPatternResource(ResDataObject& Pattern);
  114. // 生成唯一 EBus ID
  115. LOCALCONFIG_API bool MakeUniqEbusId(ResDataObject& res);
  116. // 获取客户端唯一 EBus ID
  117. LOCALCONFIG_API bool GetClientUniqEbusId(ResDataObject& res);
  118. // 获取共享内存设置
  119. LOCALCONFIG_API bool GetShareMemSettings(DWORD& BigBlockSize, DWORD& BigBlockCount,
  120. DWORD& SmallBlockSize, DWORD& SmallBlockCount);
  121. // 获取共享内存日志级别
  122. LOCALCONFIG_API bool GetShareMemLogLevel(int& LogLevel);
  123. // 获取主ID(设备类型)
  124. LOCALCONFIG_API string& GetMajorID();
  125. // 获取模块配置文件路径(基于硬件信息)
  126. LOCALCONFIG_API string GetModuleConfigrateFilePath(ResDataObject& resHardware);
  127. // 获取模块配置文件路径(基于设备路径)
  128. LOCALCONFIG_API string GetModuleConfigrateFilePath(string devDioPath);
  129. // 获取CCOS模块配置文件路径
  130. LOCALCONFIG_API string GetCcosModuleConfigrateFilePath(string devDioPath, bool useTemplate = false);
  131. // 获取模块设备路径
  132. LOCALCONFIG_API string GetModuleDevicePath(ResDataObject& resHardware);
  133. // 清除所有模块配置
  134. LOCALCONFIG_API BOOL ClearAllModuleConfigrate();
  135. // 获取设备ID
  136. LOCALCONFIG_API string GetDeviceID();