LocalConfig.h 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179
  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. LOCALCONFIG_API bool AddDriverConfig(const char* pszDriverConfig);
  28. // 获取指定索引的驱动配置文件路径
  29. LOCALCONFIG_API const char* GetDriverConfigFilepath(size_t idx);
  30. // 设置配置模式(进程角色)
  31. LOCALCONFIG_API void SetConfigMode(CCOS_PROC_TYPE Master);
  32. // 获取当前配置模式
  33. LOCALCONFIG_API CCOS_PROC_TYPE GetConfigMode();
  34. LOCALCONFIG_API ResDataObject tryGetLocalOptions(const char* pKey);
  35. // 获取 EBus 日志标志
  36. LOCALCONFIG_API bool getEbusLogFlag();
  37. // 获取本地 EBus ID
  38. LOCALCONFIG_API ResDataObject& getLocalEbusId();
  39. // 获取本地 EBus 路由器 IP
  40. LOCALCONFIG_API ResDataObject& getLocalEbusRouterIp();
  41. // 获取本地 EBus 端口
  42. LOCALCONFIG_API ResDataObject& getLocalEbusPort();
  43. // 获取通道 EBus ID
  44. LOCALCONFIG_API ResDataObject& getChannelEbusId();
  45. // 获取通道根路径
  46. LOCALCONFIG_API ResDataObject& getChannelRootpath();
  47. // 获取本地机器 ID
  48. LOCALCONFIG_API ResDataObject& getLocalMachineId();
  49. // 获取本地 IP 地址
  50. LOCALCONFIG_API ResDataObject& getLocalIpAddress();
  51. // 获取模块标题(可执行文件名)
  52. LOCALCONFIG_API ResDataObject& GetModuleTitle();
  53. // 获取根路径
  54. LOCALCONFIG_API ResDataObject& getRootpath();
  55. // 设置日志根路径
  56. LOCALCONFIG_API void setLogRootpath(const char* pszRootPath);
  57. // 获取日志根路径
  58. LOCALCONFIG_API ResDataObject& getLogRootpath();
  59. // 获取 P2P 标志
  60. LOCALCONFIG_API bool getP2pFlag();
  61. // 获取 P2P 服务器 IP
  62. LOCALCONFIG_API ResDataObject getP2pServerIp();
  63. // 获取 P2P 角色
  64. LOCALCONFIG_API ResDataObject getP2pRole();
  65. // 创建工作路径
  66. LOCALCONFIG_API ResDataObject MakeWorkPath(ResDataObject& probeInfo, ResDataObject& Connection,
  67. ResDataObject& ProcPath, bool ForWork);
  68. // 创建设备路径
  69. LOCALCONFIG_API ResDataObject MakeDevicePath(ResDataObject& probeInfo, ResDataObject& Connection,
  70. ResDataObject& SubPath);
  71. // 创建 CCOS 路径
  72. LOCALCONFIG_API ResDataObject MakeCcosPath(ResDataObject& probeInfo, ResDataObject& Connection,
  73. ResDataObject& SubPath, bool isDriver = false);
  74. // 获取完整驱动配置文件列表
  75. LOCALCONFIG_API bool GetFullDriverConfigFiles(ResDataObject& filelist);
  76. // 获取完整驱动配置路径(扩展版本)
  77. LOCALCONFIG_API DWORD GetFullDriverConfigPathEx(ResDataObject& PathList);
  78. // 获取完整驱动配置路径
  79. LOCALCONFIG_API ResDataObject& GetFullDriverConfigPath();
  80. // 获取32位完整驱动配置路径
  81. LOCALCONFIG_API ResDataObject& GetFullDriverConfigPathX32();
  82. // 获取特定驱动配置文件列表
  83. LOCALCONFIG_API bool GetSpecificDriverConfigFiles(ResDataObject& filelist, bool FullDriverList);
  84. // 获取驱动配置文件列表
  85. LOCALCONFIG_API bool GetDriverConfigFiles(ResDataObject& filelist);
  86. // 获取驱动配置路径
  87. LOCALCONFIG_API ResDataObject& GetDriverConfigPath();
  88. // 获取驱动配置路径(扩展版本)
  89. LOCALCONFIG_API DWORD GetDriverConfigPathEx(ResDataObject& PathList);
  90. // 获取32位驱动配置路径
  91. LOCALCONFIG_API ResDataObject& GetDriverConfigPathX32();
  92. // 获取日志配置路径
  93. LOCALCONFIG_API ResDataObject& GetLogConfigPath();
  94. // 获取驱动 EBus ID
  95. LOCALCONFIG_API bool GetDriverEbusId(const char* pConfigFilepath, ResDataObject& BusId,
  96. ResDataObject& DriverPath, bool ForceUpdate = false);
  97. // 获取驱动进程路径
  98. LOCALCONFIG_API bool GetDriverProcessPath(const char* pConfigFilepath, ResDataObject& DriverProcessPath);
  99. // 获取驱动进程信息
  100. LOCALCONFIG_API bool GetDriverProcInfo(const char* pConfigFilepath, ResDataObject& DriverProcInfo);
  101. // 获取日志模式资源
  102. LOCALCONFIG_API bool GetLogPatternResource(ResDataObject& Pattern);
  103. // 生成唯一 EBus ID
  104. LOCALCONFIG_API bool MakeUniqEbusId(ResDataObject& res);
  105. // 获取客户端唯一 EBus ID
  106. LOCALCONFIG_API bool GetClientUniqEbusId(ResDataObject& res);
  107. // 获取共享内存设置
  108. LOCALCONFIG_API bool GetShareMemSettings(DWORD& BigBlockSize, DWORD& BigBlockCount,
  109. DWORD& SmallBlockSize, DWORD& SmallBlockCount);
  110. // 获取共享内存日志级别
  111. LOCALCONFIG_API bool GetShareMemLogLevel(int& LogLevel);
  112. // 获取主ID(设备类型)
  113. LOCALCONFIG_API string& GetMajorID();
  114. // 获取模块配置文件路径(基于硬件信息)
  115. LOCALCONFIG_API string GetModuleConfigrateFilePath(ResDataObject& resHardware);
  116. // 获取模块配置文件路径(基于设备路径)
  117. LOCALCONFIG_API string GetModuleConfigrateFilePath(string devDioPath);
  118. // 获取CCOS模块配置文件路径
  119. LOCALCONFIG_API string GetCcosModuleConfigrateFilePath(string devDioPath, bool useTemplate = false);
  120. // 获取模块设备路径
  121. LOCALCONFIG_API string GetModuleDevicePath(ResDataObject& resHardware);
  122. // 清除所有模块配置
  123. LOCALCONFIG_API BOOL ClearAllModuleConfigrate();
  124. // 获取设备ID
  125. LOCALCONFIG_API string GetDeviceID();