This commit is contained in:
coco
2026-07-03 16:05:30 +08:00
commit df489d5640
1101 changed files with 779140 additions and 0 deletions
@@ -0,0 +1,499 @@
# 安装与配置
<cite>
**本文档中引用的文件**
- [geomativestudio.nsi](file://Install/geomativestudio.nsi)
- [config.ini](file://Install/Geomative Studio/config.ini)
- [database_modify.xml](file://Install/Geomative Studio/database_modify.xml)
- [version_info.txt](file://Install/Geomative Studio/version_info.txt)
- [数据库字段修改记录.txt](file://DB/数据库字段修改记录.txt)
- [IAP-GD10.bat](file://Install/Geomative Studio/tools/IAP-GD10.bat)
- [License-GD10.bat](file://Install/Geomative Studio/tools/License-GD10.bat)
- [project.xml](file://CACHE/project.xml)
- [testzone.xml](file://CACHE/testzone.xml)
</cite>
## 目录
1. [系统安装要求](#系统安装要求)
2. [安装程序工作流程](#安装程序工作流程)
3. [安装目录结构](#安装目录结构)
4. [配置文件详解](#配置文件详解)
5. [数据库字段修改记录](#数据库字段修改记录)
6. [配置最佳实践](#配置最佳实践)
7. [常见配置错误排查](#常见配置错误排查)
8. [不同部署环境的配置差异](#不同部署环境的配置差异)
## 系统安装要求
Geomative Studio 应用程序的安装需要满足以下系统要求:
- **操作系统**Windows 7/8/1032位或64位)
- **权限要求**:必须以管理员身份运行安装程序,NSIS安装脚本通过`RequestExecutionLevel admin`指令确保安装过程具有管理员权限
- **运行时依赖**:安装程序会自动安装Visual C++ Redistributablevc_redist.x64.exe和vc_redist.x86.exe),这是应用程序运行所必需的C++运行时库
- **数据库引擎**:安装程序包含AccessDatabaseEngine.exe,用于支持Access数据库文件(.accdb)的连接和操作
- **硬件驱动**:安装程序包含GD-10设备的驱动程序,包括STM32 USB CDC驱动(stmcdc.inf)和ST Tube驱动(STtube.inf),支持x86和x64架构
**Section sources**
- [geomativestudio.nsi](file://Install/geomativestudio.nsi#L45)
- [geomativestudio.nsi](file://Install/geomativestudio.nsi#L81-L84)
- [geomativestudio.nsi](file://Install/geomativestudio.nsi#L142)
## 安装程序工作流程
Geomative Studio的安装程序使用NSISNullsoft Scriptable Install System)创建,其工作流程如下:
1. **初始化阶段**
- 设置产品信息(名称、版本、发布者、网站)
- 配置安装向导界面,包括欢迎页、安装进度页和完成页
- 设置安装目录为`$PROGRAMFILES\GeomativeStudio`
- 验证管理员权限,通过`EnsureAdminRights`宏检查当前用户是否具有管理员权限
2. **安装阶段**
- **主程序安装**Geomative Studio部分):复制主程序文件、配置文件、数据库文件、日志文件和工具脚本到安装目录
- **驱动程序安装**Drivers部分):复制x86和x64架构的设备驱动程序到相应目录
- **数据库连接引擎安装**DBConntEngine部分):复制Access数据库引擎安装程序
- **管理员权限配置**(ASADMIN部分):在注册表中设置应用程序以管理员身份运行
3. **条件执行阶段**
- 根据系统架构(x64或x86)执行相应的Visual C++ Redistributable安装程序
- 根据系统架构执行相应的驱动程序安装程序(dpinst_amd64.exe用于64位系统,dpinst_x86.exe用于32位系统)
- 执行Access数据库引擎安装程序
4. **安装后处理阶段**
- 创建卸载程序(uninst.exe
- 在注册表中写入安装信息,包括程序路径和卸载信息
- 创建开始菜单快捷方式和桌面快捷方式
5. **卸载流程**
- 删除所有安装的文件和目录
- 删除开始菜单和桌面快捷方式
- 删除注册表中的安装信息
- 清理安装目录
```mermaid
flowchart TD
A[开始安装] --> B[验证管理员权限]
B --> C[安装主程序文件]
C --> D[安装驱动程序]
D --> E[安装数据库引擎]
E --> F[配置管理员运行权限]
F --> G[根据系统架构安装VC++运行库]
G --> H[根据系统架构安装驱动]
H --> I[安装数据库连接引擎]
I --> J[创建快捷方式]
J --> K[写入注册表信息]
K --> L[完成安装]
```
**Diagram sources**
- [geomativestudio.nsi](file://Install/geomativestudio.nsi#L58-L61)
- [geomativestudio.nsi](file://Install/geomativestudio.nsi#L69-L287)
**Section sources**
- [geomativestudio.nsi](file://Install/geomativestudio.nsi#L1-L287)
## 安装目录结构
安装完成后,Geomative Studio的目录结构如下:
```
GeomativeStudio/
├── DB/ # 数据库目录
│ └── GeoMativeDB.accdb # 主数据库文件
├── LOG/ # 日志目录
│ ├── commLog.txt # 通信日志
│ ├── detect_gd20_log.txt # GD20设备检测日志
│ ├── device_log.txt # 设备日志
│ ├── td_time_error.txt # 时间错误日志
│ ├── update_db.log # 数据库更新日志
│ └── general/ # 通用日志目录
│ └── 20211110.txt # 日期日志文件
├── tools/ # 工具目录
│ └── dfu_tools/ # DFU工具目录
│ ├── COPYING.txt # 版权信息
│ ├── dfu-suffix.exe # DFU后缀工具
│ ├── dfu-util.exe # DFU实用工具
│ ├── DfuCreateFile.exe # DFU文件创建工具
│ ├── STDFU.dll # ST DFU动态链接库
│ ├── STDFUFiles.dll # ST DFU文件处理库
│ ├── STDFUPRT.dll # ST DFU协议库
│ └── STTubeDevice30.dll # ST Tube设备库
├── x64/ # 64位驱动目录
│ ├── dpinst.xml # 驱动安装配置
│ ├── dpinst_amd64.exe # 64位驱动安装程序
│ ├── mdmcpq.inf # MDM/COM端口驱动信息
│ ├── stmcdc.cat # STM32 CDC驱动证书
│ ├── stmcdc.inf # STM32 CDC驱动信息
│ ├── stmcdc_g.inf # STM32 CDC通用驱动信息
│ ├── STTub30.sys # ST Tube驱动系统文件
│ ├── sttube.cat # ST Tube驱动证书
│ ├── STtube.inf # ST Tube驱动信息
│ └── usbser.sys # USB串行驱动系统文件
├── x86/ # 32位驱动目录
│ ├── dpinst.xml # 驱动安装配置
│ ├── dpinst_x86.exe # 32位驱动安装程序
│ ├── mdmcpq.inf # MDM/COM端口驱动信息
│ ├── stmcdc.cat # STM32 CDC驱动证书
│ ├── stmcdc.inf # STM32 CDC驱动信息
│ ├── stmcdc_g.inf # STM32 CDC通用驱动信息
│ ├── STTub30.sys # ST Tube驱动系统文件
│ ├── sttube.cat # ST Tube驱动证书
│ ├── STtube.inf # ST Tube驱动信息
│ └── usbser.sys # USB串行驱动系统文件
├── config.ini # 主配置文件
├── database_modify.xml # 数据库修改记录文件
├── Geomative Studio.exe # 主程序可执行文件
├── msado15.dll # ADO数据对象库
├── msadox.dll # ADOX扩展库
├── upGeoMative.exe # 更新程序
├── vc_redist.x64.exe # 64位VC++运行库安装程序
├── vc_redist.x86.exe # 32位VC++运行库安装程序
└── version_info.txt # 版本信息文件
```
**Section sources**
- [geomativestudio.nsi](file://Install/geomativestudio.nsi#L71-L108)
## 配置文件详解
### config.ini 文件结构
`config.ini`是Geomative Studio的主要配置文件,采用INI文件格式,包含多个节区(section),每个节区包含特定功能的配置参数。
#### [UI] 节区
用户界面相关配置:
- **Language**:语言设置,1表示中文,2表示英文。此参数控制应用程序的界面语言。
#### [TRANSFER_INFO] 节区
数据传输和网络相关配置:
- **Url**:软件更新服务器地址,用于检查和下载新版本。
- **HomePage**:公司主页URL,可能在应用程序中作为链接提供。
#### [EXPORT_DATA] 节区
数据导出相关配置:
- **2dDataExpStyle**2D数据导出样式,0表示默认导出格式。
#### [ONLINE_DEVICE] 节区
在线设备连接配置:
- **RemoteType**:远程设备类型,2表示特定类型的在线设备。
- **IP**:远程设备的IP地址。
- **Port**:远程设备的通信端口。
#### [ONLINE_VERSION] 节区
在线版本配置:
- **VERID**:版本ID,用于标识当前版本系列。
#### [ONLINE_TIMEZONE] 节区
时区配置:
- **TIMEZONE**:时区设置,8表示UTC+8(中国标准时间)。
#### [CHANNEL_INFO] 节区
通道信息配置:
- **IsMultiChannel**:是否多通道模式,0表示单通道,1表示多通道。
#### [USER_INFO] 和 [USER_Pwd] 节区
用户认证配置:
- **UserID**:用户ID,用于身份验证。
- **UserPwd**:用户密码,明文存储(存在安全风险)。
- **UserSave**:是否保存用户信息,1表示保存,0表示不保存。
- **UserAuto**:是否自动登录,1表示自动登录,0表示需要手动登录。
#### [CROSS_HOLE_CFG] 和 [CFG_X] 节区
跨孔测量配置:
- **Number**:跨孔配置数量,6表示有6种预设配置。
- **[CFG_X]**:具体的跨孔配置,每个配置包含:
- **Name**:配置名称
- **FirstPoleDep**:第一电极深度
- **HoleSpace**:孔间距
#### [PLC_SET] 节区
PLC(可编程逻辑控制器)设置:
- **TimeInterval**:时间间隔,600表示600秒(10分钟)的间隔。
```mermaid
classDiagram
class ConfigFile {
+string filePath
+readConfig()
+writeConfig()
+validateConfig()
}
class Section {
+string name
+Map~string,string~ parameters
+getParameter(key)
+setParameter(key, value)
}
class UISection {
+int language
+setLanguage(lang)
+getLanguage()
}
class TransferInfoSection {
+string url
+string homePage
+setUrl(url)
+setHomePage(homePage)
}
class UserInfoSection {
+string userId
+string userPwd
+int userSave
+int userAuto
+setUserId(id)
+setUserPwd(pwd)
+setUserSave(save)
+setUserAuto(auto)
}
class OnlineDeviceSection {
+int remoteType
+string ip
+int port
+setRemoteType(type)
+setIp(ip)
+setPort(port)
}
class CrossHoleConfig {
+int number
+CFGSection[] cfgList
+setNumber(num)
+addCFG(cfg)
}
class CFGSection {
+string name
+double firstPoleDep
+double holeSpace
+setName(name)
+setFirstPoleDep(dep)
+setHoleSpace(space)
}
class PLCSetSection {
+int timeInterval
+setTimeInterval(interval)
+getTimeInterval()
}
ConfigFile --> Section : "contains"
Section <|-- UISection
Section <|-- TransferInfoSection
Section <|-- UserInfoSection
Section <|-- OnlineDeviceSection
Section <|-- CrossHoleConfig
Section <|-- PLCSetSection
CrossHoleConfig --> CFGSection : "contains"
```
**Diagram sources**
- [config.ini](file://Install/Geomative Studio/config.ini#L1-L73)
**Section sources**
- [config.ini](file://Install/Geomative Studio/config.ini#L1-L73)
- [config.ini](file://config.ini#L1-L73)
## 数据库字段修改记录
### database_modify.xml 文件
`database_modify.xml`文件用于记录数据库结构的修改历史,采用XML格式,包含当前版本和预版本的修改信息。
文件结构:
- **current_version**:当前数据库版本号
- **pre_version**:前一个版本号
- **table**:表修改信息,包含:
- **name**:表名
- **modify_type**:修改类型,1表示增加表,2表示删除表,3表示修改表
- **column**:列信息,包含:
- **name**:列名
- **is_primary_key**:是否为主键
- **value_type**:值类型(1:text, 2:Memo, 3:Byte, 4:Integer, 5:Long, 6:Single, 7:Double, 8:Currency, 9:AutoNumber, 10:Date/Time, 11:Yes/No等)
- **attribute_value**:属性值(对于文本类型表示长度)
- **index**:索引类型(0:无索引, 1:允许重复, 2:不允许重复)
- **is_empty**:是否允许为空
- **is_compress**:是否压缩
### 数据库字段修改记录.txt 文件
`数据库字段修改记录.txt`文件以文本形式记录了数据库字段的修改历史,按日期组织,便于追溯数据库结构的演变。
主要修改记录包括:
- **2015年6月2日**:在td2dcon、td3dcon、td1dcon表中增加bUse字段,用于标记记录的有效性
- **2015年6月12日**:在Td表中增加rect和rect_loc字段,用于记录测试任务的矩形大小和位置;修改Espace和Edistance字段为文本类型
- **2016年12月2日**:在ac、acds、td_spc_attr表中增加10个时窗信息;在cm表中增加发射频率0.03125Hz
- **2017年9月12日**:在project和tz表中加入默认的工程和测区
- **2017年9月18日**:在device表中增加GPS字段;在desetting表中增加CableType、LowPowerAlarm、AutoStack字段
- **2017年9月23日**:新增task_timer表
- **2017年9月25日**:在td表中添加IsAutoGenerate字段
- **2017年9月26日**:在timer_task表中增加PLCID字段
- **2019年7月4日**medium表新增加强梯度装置
- **2019年7月14日**medium表新增跨孔装置;新增TTaskInfoCoordinetes表用于保存电极坐标信息
- **2019年12月3日**:新增TPictureInfo表存放图片信息;新增TPictureCode表存放岩性编辑图片二维码
- **2019年12月11日**:新增TLoggingTaskInfo表存放新建任务信息;新增TLoggingTaskContent表保存测点数据信息
```mermaid
erDiagram
table "test" {
id AutoNumber PK
col1 Memo
col2 Long
col3 Long
}
table "td2dcon" {
bUse Yes/No
}
table "td3dcon" {
bUse Yes/No
}
table "td1dcon" {
bUse Yes/No
}
table "Td" {
rect Text
rect_loc Text
SkipCable Yes/No
IsAutoGenerate Yes/No
}
table "device" {
GPS Text
}
table "desetting" {
CableType Text
LowPowerAlarm Yes/No
AutoStack Yes/No
}
table "task_timer" {
PLCID Text
}
table "medium" {
加强梯度装置 Yes/No
跨孔装置 Yes/No
}
table "TTaskInfoCoordinetes" {
电极坐标信息 Text
}
table "TPictureInfo" {
图片信息 Text
}
table "TPictureCode" {
二维码信息 Text
}
table "TLoggingTaskInfo" {
测试任务信息 Text
}
table "TLoggingTaskContent" {
测点数据信息 Text
}
```
**Diagram sources**
- [database_modify.xml](file://Install/Geomative Studio/database_modify.xml#L1-L25)
- [数据库字段修改记录.txt](file://DB/数据库字段修改记录.txt#L1-L61)
**Section sources**
- [database_modify.xml](file://Install/Geomative Studio/database_modify.xml#L1-L25)
- [database_modify.xml](file://database_modify.xml#L1-L25)
- [数据库字段修改记录.txt](file://DB/数据库字段修改记录.txt#L1-L61)
## 配置最佳实践
### 安全配置
1. **用户凭证保护**:避免在config.ini中明文存储密码,建议使用加密存储或外部认证机制。
2. **管理员权限**:确保安装程序以管理员身份运行,但运行时尽量使用普通用户权限。
3. **驱动程序签名**:确保所有驱动程序都经过数字签名,防止恶意驱动安装。
### 性能优化
1. **日志管理**:定期清理LOG目录中的日志文件,避免占用过多磁盘空间。
2. **数据库维护**:定期备份GeoMativeDB.accdb数据库文件,防止数据丢失。
3. **缓存配置**:合理配置CACHE目录中的project.xml和testzone.xml文件,提高项目加载速度。
### 网络配置
1. **服务器地址**:确保TRANSFER_INFO节区中的URL和IP地址正确,能够访问更新服务器和远程设备。
2. **端口配置**:确保ONLINE_DEVICE节区中的端口未被其他应用程序占用。
3. **时区设置**:根据实际地理位置正确设置ONLINE_TIMEZONE节区的TIMEZONE值。
### 跨孔测量配置
1. **预设配置**:根据实际测量需求,在CFG_X节区中配置常用的跨孔测量参数。
2. **参数验证**:确保HoleSpace(孔间距)和FirstPoleDep(第一电极深度)的值在合理范围内。
3. **配置管理**:通过CROSS_HOLE_CFG节区的Number参数控制预设配置的数量。
## 常见配置错误排查
### 安装问题
1. **权限不足**:如果安装失败,确保以管理员身份运行安装程序。NSIS脚本会检查管理员权限并提示用户。
2. **驱动安装失败**:检查系统是否禁用了驱动程序安装,或尝试手动运行dpinst_amd64.exe或dpinst_x86.exe。
3. **VC++运行库缺失**:如果程序无法启动,尝试手动安装vc_redist.x64.exe或vc_redist.x86.exe。
### 配置文件问题
1. **config.ini格式错误**:确保文件使用正确的INI格式,节区用方括号包围,参数用等号分隔。
2. **参数值错误**:检查关键参数如IP地址、端口号、用户ID等是否正确。
3. **文件编码问题**:确保config.ini文件保存为ANSI或UTF-8编码,避免中文乱码。
### 数据库问题
1. **数据库连接失败**:确保AccessDatabaseEngine.exe已正确安装,且GeoMativeDB.accdb文件存在。
2. **字段缺失**:如果程序报错字段不存在,检查数据库字段修改记录,确保数据库结构与程序版本匹配。
3. **权限问题**:确保程序对DB目录有读写权限。
### 网络连接问题
1. **无法连接远程设备**:检查IP地址和端口是否正确,防火墙是否阻止了连接。
2. **更新失败**:检查Url参数是否正确,网络连接是否正常。
3. **时区错误**:如果时间显示不正确,检查TIMEZONE参数是否与本地时区匹配。
## 不同部署环境的配置差异
### 开发环境
- **配置特点**
- 启用详细日志记录,便于调试
- 使用测试服务器地址和端口
- 用户认证可能简化或禁用
- 数据库使用测试数据
- **示例配置**
```ini
[TRANSFER_INFO]
Url=http://dev.update.geomative.com/Upgrade/software/V2.0
[ONLINE_DEVICE]
IP=192.168.1.100
Port=8769
[USER_INFO]
UserID=testuser
UserPwd=test123
```
### 测试环境
- **配置特点**
- 使用预生产服务器
- 启用部分日志记录
- 使用测试用户账户
- 数据库使用模拟生产数据
- **示例配置**
```ini
[TRANSFER_INFO]
Url=http://test.update.geomative.com/Upgrade/software/V2.0
[ONLINE_DEVICE]
IP=10.0.1.50
Port=8769
[USER_INFO]
UserID=testuser
UserPwd=securepassword
```
### 生产环境
- **配置特点**
- 最小化日志记录,仅记录关键信息
- 使用正式服务器地址和端口
- 严格的安全认证
- 数据库使用真实生产数据
- 定期备份和监控
- **示例配置**
```ini
[TRANSFER_INFO]
Url=http://update.geomative.com/Upgrade/software/V2.0
[ONLINE_DEVICE]
IP=120.31.131.181
Port=8769
[USER_INFO]
UserID=productionuser
UserPwd=strongpassword123!
```
**Section sources**
- [config.ini](file://Install/Geomative Studio/config.ini#L1-L73)
- [config.ini](file://config.ini#L1-L73)
- [config.ini](file://Release/config.ini#L1-L3)