Files
geomative/GeomativeStudio/.qoder/repowiki/zh/content/安装与配置/配置说明/应用配置详解.md
T
coco df489d5640 a
2026-07-03 16:05:30 +08:00

9.3 KiB
Raw Blame History

应用配置详解

**本文档引用的文件** - [config.ini](file://config.ini) - [Install/Geomative Studio/config.ini](file://Install/Geomative Studio/config.ini) - [Release/config.ini](file://Release/config.ini) - [cpp/Main/GeoMative.cpp](file://cpp/Main/GeoMative.cpp) - [cpp/Views/DailLogin.cpp](file://cpp/Views/DailLogin.cpp)

目录

  1. 简介
  2. 配置文件结构
  3. 核心配置节分析
  4. 多环境配置示例
  5. 配置加载优先级
  6. 配置维护最佳实践
  7. 结论

简介

GeomativeStudio是一款专业的地球物理数据处理软件,其行为和功能通过config.ini配置文件进行控制。本文档深入解析该配置文件的结构与各项参数的具体含义,涵盖用户界面、数据传输、设备连接、用户认证及跨孔测量等关键配置。通过分析代码实现,我们将揭示配置参数如何影响系统行为,并提供实际应用场景下的配置建议。

配置文件结构

GeomativeStudio的config.ini文件采用标准的INI文件格式,由多个节(section)组成,每个节包含若干键值对(key-value pairs)。配置文件定义了软件的用户界面语言、数据传输设置、导出格式、远程设备连接信息、用户认证凭据以及跨孔测量参数等核心功能。

flowchart TD
A[config.ini] --> B[UI]
A --> C[TRANSFER_INFO]
A --> D[EXPORT_DATA]
A --> E[ONLINE_DEVICE]
A --> F[USER_INFO]
A --> G[CROSS_HOLE_CFG]
B --> B1[Language]
C --> C1[Url]
C --> C2[HomePage]
D --> D1[2dDataExpStyle]
E --> E1[RemoteType]
E --> E2[IP]
E --> E3[Port]
F --> F1[UserID]
F --> F2[UserPwd]
G --> G1[Number]
G --> G2[CFG_1...CFG_N]

Diagram sources

核心配置节分析

[UI] 节:界面语言控制

[UI]节中的Language参数控制软件界面的显示语言。

  • Language=1:表示界面语言为中文
  • Language=2:表示界面语言为英文

该参数在软件启动时被读取,并通过WM_CHANGE_LANGUAGE消息通知主窗口切换语言。代码实现中,系统会根据当前线程的区域设置(LCID)和配置值共同决定最终的语言显示。

int iLanguage = GetPrivateProfileInt(_T("UI"), _T("Language"), 0, _T("./config.ini"));
if (LANG_ZHCN == iLanguage && (LANG_CHINESE_SIMPLIFIED == PRIMARYLANGID(LANGIDFROMLCID(lcidNew))))
{
    WritePrivateProfileString(_T("UI"), _T("Language"), _T("1"), _T("./config.ini"));
    m_pMainWnd->SendMessage(WM_CHANGE_LANGUAGE, (WPARAM)LANG_ZHCN, 0);
}
else
{
    WritePrivateProfileString(_T("UI"), _T("Language"), _T("2"), _T("./config.ini"));
    m_pMainWnd->SendMessage(WM_CHANGE_LANGUAGE, (WPARAM)LANG_ENUS, 0);
}

Section sources

[TRANSFER_INFO] 节:数据传输与系统更新

[TRANSFER_INFO]节定义了软件的数据传输和系统更新相关URL。

  • Url:系统更新服务器地址,用于检查和下载软件更新
  • HomePage:公司主页URL,可能用于用户引导或信息展示

这些参数在GetCfgUrl()函数中被读取,如果获取失败,系统会弹出错误提示。该配置支持软件的在线升级功能,确保用户能够及时获取最新版本。

::GetPrivateProfileString(_T("TRANSFER_INFO"), _T("Url"),_T("NULL"), chUrl, 150,_T("./config.ini"));
::GetPrivateProfileString(_T("TRANSFER_INFO"), _T("HomePage"),_T("NULL"), chHomePage, 150,_T("./config.ini"));

Section sources

[EXPORT_DATA] 节:导出数据格式

[EXPORT_DATA]节中的2dDataExpStyle参数控制二维数据的导出格式。

  • 2dDataExpStyle=0:表示一种特定的二维数据导出样式

该参数在软件初始化时被读取,影响数据导出模块的行为。不同的值可能对应不同的文件格式、坐标系统或数据组织方式。

m_i2dDataExpStyle = GetPrivateProfileInt(_T("EXPORT_DATA"), _T("2dDataExpStyle"), 0, _T("./config.ini"));

Section sources

[ONLINE_DEVICE] 节:远程设备连接

[ONLINE_DEVICE]节配置了与远程设备的网络连接参数。

  • RemoteType:传输模式,如USB、云端或WiFi
  • IP:远程服务器或设备的IP地址
  • Port:通信端口号

在软件启动时,如果选择云端或WiFi模式,系统会读取这些参数并尝试建立网络连接。如果IP或端口配置错误,会弹出相应的错误提示。

char chIP[30]="NULL";
GetPrivateProfileString(_T("ONLINE_DEVICE"),_T("IP"), "NULL",chIP, sizeof(chIP),_T("./config.ini"));
WORD wPort = GetPrivateProfileInt(_T("ONLINE_DEVICE"), _T("Port"), 0, _T("./config.ini"));

Section sources

[USER_INFO] 节:用户认证机制

[USER_INFO]节包含用户认证相关的信息。

  • UserID:用户的唯一标识符
  • UserPwd:用户密码,存储在单独的[USER_Pwd]节中
  • UserSave:是否保存用户凭据
  • UserAuto:是否自动登录

用户在登录界面输入凭据后,如果选择保存,系统会将用户名和密码写回配置文件。认证机制通过DailLogin对话框实现,确保只有授权用户才能访问系统。

WritePrivateProfileString(_T("USER_INFO"), _T("UserID"), csID, _T("./config.ini"));
WritePrivateProfileString(_T("USER_Pwd"), _T("UserPwd"), csPwd, _T("./config.ini"));

Section sources

[CROSS_HOLE_CFG] 节:跨孔测量参数

[CROSS_HOLE_CFG]节定义了跨孔测量的相关物理参数。

  • Number:配置组的数量
  • CFG_1...CFG_N:每个配置组的具体参数
    • Name:配置名称
    • FirstPoleDep:第一电极深度(单位:米)
    • HoleSpace:孔间距(单位:米)

这些参数通过GeCrossHoleCfg()函数解析,用于地质勘探中的跨孔电阻率成像。系统会根据配置数量循环读取每个CFG_X节的参数,并存储在内存映射中供后续处理使用。

int iNumber = ::GetPrivateProfileInt(_T("CROSS_HOLE_CFG"), _T("Number"),255,_T("./config.ini"));
for (int i = 1; i <= iNumber; i++)
{
    if (!ParserSigCrossHole(i))
    {
        bRes = false;
        break;
    }
}

Section sources

多环境配置示例

开发环境配置

[UI]
Language=1

[TRANSFER_INFO]
Url=http://dev.update.geomative.com/Upgrade/software/V2.0
HomePage=http://dev.geomative.com/

[ONLINE_DEVICE]
RemoteType=2
IP=192.168.1.100
Port=8769

测试环境配置

[UI]
Language=2

[TRANSFER_INFO]
Url=http://test.update.geomative.com/Upgrade/software/V2.0
HomePage=http://test.geomative.com/

[ONLINE_DEVICE]
RemoteType=2
IP=10.0.0.50
Port=8769

生产环境配置

[UI]
Language=1

[TRANSFER_INFO]
Url=http://update.geomative.com/Upgrade/software/V2.0
HomePage=http://www.geomative.com/

[ONLINE_DEVICE]
RemoteType=2
IP=120.31.131.181
Port=8769

配置加载优先级

GeomativeStudio遵循特定的配置文件加载优先级:

  1. 根目录优先:位于软件根目录的config.ini具有最高优先级
  2. 安装目录次之Install/Geomative Studio/目录下的配置文件作为备选
  3. 运行时动态更新:某些配置(如用户凭据)可在运行时修改并立即生效

这种设计允许用户在不同环境中灵活切换配置,同时确保关键设置不会被意外覆盖。例如,Release/config.ini中的Language=2会覆盖安装目录中相同文件的设置。

配置维护最佳实践

参数修改后的生效机制

  • 重启生效:大多数配置需要重启软件才能生效
  • 即时生效:用户界面语言等少数配置可在运行时动态切换
  • 验证机制:关键参数(如IP地址)在读取后会进行有效性验证

常见配置错误排查方法

  1. 连接失败:检查ONLINE_DEVICE节的IP和Port是否正确
  2. 语言不切换:确认UI节的Language值是否为1或2
  3. 更新失败:验证TRANSFER_INFO中的URL是否可访问
  4. 认证失败:检查USER_INFOUSER_Pwd节的凭据是否正确
  5. 跨孔数据异常:核对CROSS_HOLE_CFG中各孔的间距和深度设置

建议在修改配置前备份原文件,并在修改后通过日志文件(位于LOG/目录)验证配置是否正确加载。

Section sources

结论

GeomativeStudio的config.ini文件是控制系统行为的核心组件。通过深入分析其结构和参数含义,我们可以更好地理解软件的工作机制,并根据实际需求进行定制化配置。遵循最佳实践进行配置维护,可以确保系统的稳定运行和高效管理。