11 KiB
配置说明
**本文档引用的文件** - [config.ini](file://config.ini) - [Install\Geomative Studio\config.ini](file://Install/Geomative Studio/config.ini) - [database_modify.xml](file://database_modify.xml) - [version_info.txt](file://version_info.txt) - [cpp\Main\GeoMative.cpp](file://cpp/Main/GeoMative.cpp) - [cpp\Tools\checkupdate.cpp](file://cpp/Tools/checkupdate.cpp)目录
项目结构
GeomativeStudio项目的目录结构清晰地分为多个功能区域,包括缓存、数据库、安装包、日志、发布版本和源代码等。项目根目录下的config.ini文件是主要的配置文件,而Install目录下也包含了一个config.ini副本,用于安装过程中的配置。
graph TD
A[GeomativeStudio] --> B[CACHE]
A --> C[DB]
A --> D[Install]
A --> E[LOG]
A --> F[Release]
A --> G[cpp]
A --> H[h]
A --> I[res]
A --> J[tools]
A --> K[config.ini]
A --> L[database_modify.xml]
A --> M[version_info.txt]
D --> N[GD_10]
D --> O[Geomative Studio]
O --> P[LOG]
O --> Q[tools]
O --> R[config.ini]
O --> S[database_modify.xml]
O --> T[version_info.txt]
F --> U[DB]
F --> V[config.ini]
Diagram sources
- config.ini
- [Install\Geomative Studio\config.ini](file://Install/Geomative Studio/config.ini)
- database_modify.xml
- version_info.txt
Section sources
- config.ini
- [Install\Geomative Studio\config.ini](file://Install/Geomative Studio/config.ini)
- database_modify.xml
- version_info.txt
核心配置文件分析
UI配置节
[UI]配置节主要控制用户界面的语言设置。Language参数决定了应用程序的显示语言。
- Language: 语言设置参数,值为1表示中文,2表示英文。该参数在程序启动时被读取,并通过
WM_CHANGE_LANGUAGE消息通知主窗口切换语言。
[UI]
Language=1
Section sources
传输信息配置节
[TRANSFER_INFO]配置节定义了软件更新和主页的URL地址。
- Url: 自动更新服务器的URL地址,用于检查和下载新版本。
- HomePage: 公司官方网站地址,用于用户访问更多信息。
[TRANSFER_INFO]
Url=http://update.geomative.com/Upgrade/software/V2.0
HomePage=http://www.geomative.com/
Section sources
数据导出配置节
[EXPORT_DATA]配置节控制数据导出的样式设置。
- 2dDataExpStyle: 二维数据导出样式,值为0表示默认样式。
[EXPORT_DATA]
2dDataExpStyle=0
Section sources
在线设备配置节
[ONLINE_DEVICE]配置节定义了远程设备连接的网络参数。
- RemoteType: 远程传输类型,值为2表示云传输模式。
- IP: 远程服务器IP地址。
- Port: 远程服务器端口号。
[ONLINE_DEVICE]
RemoteType=2
IP=120.31.131.181
Port=8769
Section sources
用户信息配置节
[USER_INFO]、[USER_Pwd]、[USER_Save]和[USER_Auto]配置节共同管理用户认证信息。
- UserID: 用户ID,用于身份识别。
- UserPwd: 用户密码,用于身份验证。
- UserSave: 是否保存密码,1表示保存,0表示不保存。
- UserAuto: 是否自动登录,1表示自动登录,0表示手动登录。
[USER_INFO]
UserID=12345637
[USER_Pwd]
UserPwd=123456
[USER_Save]
UserSave=1
[USER_Auto]
UserAuto=0
Section sources
跨孔测量配置节
[CROSS_HOLE_CFG]配置节定义了跨孔测量的配置组,包含多个CFG_n子节。
- Number: 配置组数量,表示有多少个CFG_n配置节。
- CFG_n: 每个配置组包含Name、FirstPoleDep和HoleSpace三个参数。
[CROSS_HOLE_CFG]
Number=6
[CFG_1]
Name=1_2
FirstPoleDep=1
HoleSpace=2.66
[CFG_2]
Name=1_3
FirstPoleDep=1
HoleSpace=2.78
Section sources
配置加载与优先级
GeomativeStudio的配置加载遵循特定的优先级规则。根目录下的config.ini文件优先于安装目录中的副本。程序启动时,会从根目录的config.ini文件中读取配置信息。
配置加载过程如下:
- 程序启动时,首先读取
config.ini文件中的各种配置参数。 - 使用Windows API
GetPrivateProfileString和GetPrivateProfileInt函数读取INI文件中的字符串和整数参数。 - 对于跨孔测量配置,程序会先读取
[CROSS_HOLE_CFG]节的Number参数,然后循环读取每个[CFG_n]节的配置。 - 如果配置文件中缺少必要的参数,程序会记录错误日志并可能显示错误消息。
sequenceDiagram
participant App as 应用程序
participant Config as config.ini
participant Memory as 内存
App->>Config : 读取Language参数
Config-->>App : 返回1(中文)
App->>Memory : 设置语言为中文
App->>Config : 读取Transfer_Info
Config-->>App : 返回URL和主页
App->>Config : 读取Online_Device
Config-->>App : 返回IP和端口
App->>Config : 读取Cross_Hole_Cfg
Config-->>App : 返回配置数量
loop 每个CFG_n配置
App->>Config : 读取CFG_n参数
Config-->>App : 返回Name, FirstPoleDep, HoleSpace
App->>Memory : 存储配置
end
Diagram sources
Section sources
版本管理与更新机制
version_info.txt文件
version_info.txt文件用于存储软件的版本信息,支持自动更新功能。
geomative_version=2.4.1
该文件包含一个简单的键值对,geomative_version表示当前软件版本。在自动更新过程中,程序会读取此文件的版本号,并与服务器上的最新版本进行比较,以决定是否需要更新。
Section sources
自动更新流程
自动更新流程如下:
- 程序启动时读取
version_info.txt中的当前版本号。 - 从
config.ini中获取更新服务器URL。 - 连接到更新服务器,获取最新版本信息。
- 比较本地版本和服务器版本,如果服务器版本更高,则提示用户更新。
- 下载并安装新版本。
数据库变更管理
database_modify.xml文件
database_modify.xml文件记录了数据库结构的变更历史,用于数据库版本控制和迁移。
<?xml version="1.0" encoding="UTF-8"?>
<current_version value = "1.1.2">
<pre_version value = "1.1.2">
<!-- modify_type值含义 1 : 增加表 2 : 删除表 3 : 修改表 -->
<!-- 列的属性在这里只为名称,主键,值的属性,索引信息,外键,和是否为空,其中是否压缩.
其中 vallue_type的值域 1: text 最多255个字节 2: Memo 最多65535个字节 3: Byte
4: Integer 5: Long 6: Single 7: Double 8:Currency 9 AutoNumber 10: Date/Time
11: Yes/No 12 : Ole Object 13: Hyperlink 暂时不支持Lookup Wizard
其中在1,2 中,attribute_value表示的是字符的长度,其他值时,attribute_value没有含义。
index值得含义: 0 : 表示没有索引, 1: 有索引并允许重复 2: 有索引不允许重复
is_primary_key, index, is_foreign_key,is_empty, is_compress默认值为0 -->
<table name = "test" modify_type= "1" >
<column name = "id" is_primary_key = "1" value_type = "9" attribute_value="1" is_foreign_key = "0" is_empty="0" is_compress="0"/>
<column name = "col1" value_type = "2" attribute_value="20" is_empty="1" is_compress="1"/>
<column name = "col2" value_type = "5" attribute_value="30" is_foreign_key = "0" refer_table_name="FK_test" refer_table_col="fk1"/>
<column name = "col3" value_type = "5" index ="2" />
</table>
</pre_version>
</current_version>
该XML文件的结构说明:
- current_version: 当前数据库版本号。
- pre_version: 前一版本号。
- table: 表示一个数据库表的变更。
name: 表名modify_type: 变更类型,1表示新增,2表示删除,3表示修改
- column: 表示表中的一列。
name: 列名value_type: 数据类型is_primary_key: 是否为主键index: 索引类型
Section sources
配置最佳实践
敏感信息保护
- 密码保护: 避免在配置文件中明文存储敏感密码,建议使用加密存储或环境变量。
- 用户ID管理: 用户ID不应包含敏感信息,建议使用随机生成的唯一标识符。
- 配置文件权限: 确保配置文件的访问权限受到限制,防止未授权访问。
多环境配置管理
- 开发/生产分离: 为不同环境(开发、测试、生产)维护不同的配置文件。
- 配置模板: 使用模板文件,通过脚本生成特定环境的配置。
- 环境变量: 将环境特定的配置(如数据库连接、API密钥)通过环境变量注入。
跨孔测量参数设置
正确设置跨孔测量参数的示例:
[CROSS_HOLE_CFG]
Number=3
[CFG_1]
Name=A_B
FirstPoleDep=1.5
HoleSpace=3.0
[CFG_2]
Name=A_C
FirstPoleDep=1.5
HoleSpace=4.5
[CFG_3]
Name=B_C
FirstPoleDep=1.5
HoleSpace=3.8
关键参数说明:
- FirstPoleDep: 第一电极深度,单位为米,表示测量起始深度。
- HoleSpace: 孔间距,单位为米,表示两个测量孔之间的距离。
网络通信参数设置
正确设置网络通信参数的示例:
[ONLINE_DEVICE]
RemoteType=2
IP=192.168.1.100
Port=8769
[TRANSFER_INFO]
Url=http://your-update-server.com/Upgrade/software/V2.0
HomePage=http://your-company.com/
注意事项:
- 确保IP地址和端口号正确无误。
- 更新服务器URL应使用HTTPS以保证安全。
- 在防火墙设置中开放指定端口。