18 KiB
18 KiB
安装与配置
**本文档中引用的文件** - [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)目录
系统安装要求
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
安装程序工作流程
Geomative Studio的安装程序使用NSIS(Nullsoft Scriptable Install System)创建,其工作流程如下:
-
初始化阶段:
- 设置产品信息(名称、版本、发布者、网站)
- 配置安装向导界面,包括欢迎页、安装进度页和完成页
- 设置安装目录为
$PROGRAMFILES\GeomativeStudio - 验证管理员权限,通过
EnsureAdminRights宏检查当前用户是否具有管理员权限
-
安装阶段:
- 主程序安装(Geomative Studio部分):复制主程序文件、配置文件、数据库文件、日志文件和工具脚本到安装目录
- 驱动程序安装(Drivers部分):复制x86和x64架构的设备驱动程序到相应目录
- 数据库连接引擎安装(DBConntEngine部分):复制Access数据库引擎安装程序
- 管理员权限配置(ASADMIN部分):在注册表中设置应用程序以管理员身份运行
-
条件执行阶段:
- 根据系统架构(x64或x86)执行相应的Visual C++ Redistributable安装程序
- 根据系统架构执行相应的驱动程序安装程序(dpinst_amd64.exe用于64位系统,dpinst_x86.exe用于32位系统)
- 执行Access数据库引擎安装程序
-
安装后处理阶段:
- 创建卸载程序(uninst.exe)
- 在注册表中写入安装信息,包括程序路径和卸载信息
- 创建开始菜单快捷方式和桌面快捷方式
-
卸载流程:
- 删除所有安装的文件和目录
- 删除开始菜单和桌面快捷方式
- 删除注册表中的安装信息
- 清理安装目录
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
Section sources
安装目录结构
安装完成后,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
配置文件详解
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分钟)的间隔。
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
数据库字段修改记录
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表保存测点数据信息
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
Section sources
- [database_modify.xml](file://Install/Geomative Studio/database_modify.xml#L1-L25)
- database_modify.xml
- 数据库字段修改记录.txt
配置最佳实践
安全配置
- 用户凭证保护:避免在config.ini中明文存储密码,建议使用加密存储或外部认证机制。
- 管理员权限:确保安装程序以管理员身份运行,但运行时尽量使用普通用户权限。
- 驱动程序签名:确保所有驱动程序都经过数字签名,防止恶意驱动安装。
性能优化
- 日志管理:定期清理LOG目录中的日志文件,避免占用过多磁盘空间。
- 数据库维护:定期备份GeoMativeDB.accdb数据库文件,防止数据丢失。
- 缓存配置:合理配置CACHE目录中的project.xml和testzone.xml文件,提高项目加载速度。
网络配置
- 服务器地址:确保TRANSFER_INFO节区中的URL和IP地址正确,能够访问更新服务器和远程设备。
- 端口配置:确保ONLINE_DEVICE节区中的端口未被其他应用程序占用。
- 时区设置:根据实际地理位置正确设置ONLINE_TIMEZONE节区的TIMEZONE值。
跨孔测量配置
- 预设配置:根据实际测量需求,在CFG_X节区中配置常用的跨孔测量参数。
- 参数验证:确保HoleSpace(孔间距)和FirstPoleDep(第一电极深度)的值在合理范围内。
- 配置管理:通过CROSS_HOLE_CFG节区的Number参数控制预设配置的数量。
常见配置错误排查
安装问题
- 权限不足:如果安装失败,确保以管理员身份运行安装程序。NSIS脚本会检查管理员权限并提示用户。
- 驱动安装失败:检查系统是否禁用了驱动程序安装,或尝试手动运行dpinst_amd64.exe或dpinst_x86.exe。
- VC++运行库缺失:如果程序无法启动,尝试手动安装vc_redist.x64.exe或vc_redist.x86.exe。
配置文件问题
- config.ini格式错误:确保文件使用正确的INI格式,节区用方括号包围,参数用等号分隔。
- 参数值错误:检查关键参数如IP地址、端口号、用户ID等是否正确。
- 文件编码问题:确保config.ini文件保存为ANSI或UTF-8编码,避免中文乱码。
数据库问题
- 数据库连接失败:确保AccessDatabaseEngine.exe已正确安装,且GeoMativeDB.accdb文件存在。
- 字段缺失:如果程序报错字段不存在,检查数据库字段修改记录,确保数据库结构与程序版本匹配。
- 权限问题:确保程序对DB目录有读写权限。
网络连接问题
- 无法连接远程设备:检查IP地址和端口是否正确,防火墙是否阻止了连接。
- 更新失败:检查Url参数是否正确,网络连接是否正常。
- 时区错误:如果时间显示不正确,检查TIMEZONE参数是否与本地时区匹配。
不同部署环境的配置差异
开发环境
- 配置特点:
- 启用详细日志记录,便于调试
- 使用测试服务器地址和端口
- 用户认证可能简化或禁用
- 数据库使用测试数据
- 示例配置:
[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
测试环境
- 配置特点:
- 使用预生产服务器
- 启用部分日志记录
- 使用测试用户账户
- 数据库使用模拟生产数据
- 示例配置:
[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
生产环境
- 配置特点:
- 最小化日志记录,仅记录关键信息
- 使用正式服务器地址和端口
- 严格的安全认证
- 数据库使用真实生产数据
- 定期备份和监控
- 示例配置:
[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
- config.ini