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

499 lines
18 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 安装与配置
<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)