# 安装与配置 **本文档中引用的文件** - [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) ## 目录 1. [系统安装要求](#系统安装要求) 2. [安装程序工作流程](#安装程序工作流程) 3. [安装目录结构](#安装目录结构) 4. [配置文件详解](#配置文件详解) 5. [数据库字段修改记录](#数据库字段修改记录) 6. [配置最佳实践](#配置最佳实践) 7. [常见配置错误排查](#常见配置错误排查) 8. [不同部署环境的配置差异](#不同部署环境的配置差异) ## 系统安装要求 Geomative Studio 应用程序的安装需要满足以下系统要求: - **操作系统**:Windows 7/8/10(32位或64位) - **权限要求**:必须以管理员身份运行安装程序,NSIS安装脚本通过`RequestExecutionLevel admin`指令确保安装过程具有管理员权限 - **运行时依赖**:安装程序会自动安装Visual C++ Redistributable(vc_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的安装程序使用NSIS(Nullsoft 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)