7.4 KiB
测量数据模型
**本文档引用的文件** - [数据库字段修改记录.txt](file://DB/数据库字段修改记录.txt) - [database_modify.xml](file://Install/Geomative Studio/database_modify.xml) - [Release\DB\数据库字段修改记录.txt](file://Release/DB/数据库字段修改记录.txt) - [TdManager.cpp](file://cpp/Managers/TdManager.cpp) - [TaskDataOper.cpp](file://cpp/Operator/TaskDataOper.cpp) - [TaskDataOper.h](file://h/TaskDataOper.h) - [CLoggingDataOper.cpp](file://cpp/logging/CLoggingDataOper.cpp) - [DialUploadLoopTask.h](file://h/DialUploadLoopTask.h) - [TdRecord.h](file://h/TdRecord.h)目录
引言
本文件详细描述了Geomative Studio软件的测量数据模型,重点阐述了Td表及其关联表(如gr、ac、cm等)的结构设计。文档涵盖了2015年6月12日引入的测试任务几何信息记录设计、2017年9月23日和26日的定时任务管理功能,以及后续新增的测井和图像数据管理表。通过分析数据库修改记录和相关代码实现,本文档为理解系统的数据存储和管理机制提供了全面的参考。
Section sources
核心数据表结构
测量数据模型的核心是Td表,它存储了所有测试任务的基本信息。该表与多个关联表共同构成了完整的数据结构体系。gr表用于存储测量数据,cm表存储了代码和标签的映射关系,而tdchannel表则记录了通道信息。这些表通过ID等字段相互关联,形成了一个完整的数据网络。
erDiagram
Td {
int ID PK
string TDname
string DESN
string Sname
int Stype
int Ttype
int Eamount
int TPamount
string Edistance
string rect
string rect_loc
datetime Cdate
datetime Tdate
}
gr {
int ID PK
int TDID FK
string Ecode
datetime Mdate
datetime Mtime
int OMvalue
int StatusCode
}
cm {
int ID PK
string Cname
int Cvalue
string Clabel
int Lang
}
tdchannel {
int ID PK
int TDID FK
int CHnumber
int AR
}
Td ||--o{ gr : "包含"
Td ||--o{ tdchannel : "包含"
cm }|--|| Td : "Stype映射"
cm }|--|| Td : "Ttype映射"
**Diagram sources **
Section sources
几何信息记录设计
2015年6月12日,系统对Td表进行了重要更新,增加了rect和rect_loc字段来记录测试任务的几何信息。这一设计变更旨在更精确地描述测量任务的空间布局。rect字段以文本类型存储矩形的大小,而rect_loc字段则记录矩形的位置信息。同时,系统删除了原有的X0\Y0\X1\Y1字段,采用了更灵活的文本格式来存储几何信息。
erDiagram
Td {
string rect
string rect_loc
}
SCON {
string Rect
string RectLoc
float PoleDistance
float PoleStep
}
Td }|--|| SCON : "几何参数"
**Diagram sources **
Section sources
字段类型变更原因
在2015年6月12日的更新中,系统将Td表的Espace和Edistance字段从数字类型改为文本类型。这一变更的主要原因是增加了对多种单位和格式的支持。通过使用文本类型,系统可以存储包含单位标识的值(如"10m"、"5ft"等),提高了数据的灵活性和可读性。此外,文本类型还支持存储复杂的距离描述,如范围值或特殊标记。
Section sources
定时任务管理机制
2017年9月23日,系统新增了task_timer表用于管理定时任务。该表与PLCID字段(2017年9月26日添加)共同构成了定时任务管理的核心。task_timer表存储了定时任务的配置信息,包括执行时间、周期等。PLCID字段用于标识与任务关联的PLC设备,实现了任务与特定设备的绑定。这一机制使得系统能够自动化执行测量任务,并与外部设备进行协调。
erDiagram
task_timer {
int ID PK
datetime TaskTime
int Interval
string PLCID
int Status
}
Td {
int ID PK
bool IsAutoGenerate
}
task_timer }|--|| Td : "生成任务"
**Diagram sources **
Section sources
测井与图像数据管理
系统在2019年12月新增了TPictureInfo和TLoggingTaskInfo等表,用于管理测井和图像数据。TPictureInfo表存储了图片信息,包括岩性图片的路径和描述。TLoggingTaskInfo表则用于存储新建的测井任务信息,供用户选择和执行。这些新增表扩展了系统的功能,使其能够支持更复杂的测井和数据可视化需求。
erDiagram
TPictureInfo {
int ID PK
int LanguageID
string LithologyName
string LithologyPicPath
string LithologyType
}
TLoggingTaskInfo {
int TaskID PK
string TaskName
string Location
byte LogType
float SamplingInterval
float InitDepth
float EndDepth
}
TLoggingTaskContent {
int TaskID PK, FK
int TestID PK
float Depth
string Data
}
TPictureInfo ||--o{ TLoggingTaskContent : "关联"
TLoggingTaskInfo ||--o{ TLoggingTaskContent : "包含"
**Diagram sources **
Section sources
电极坐标同步机制
2019年7月14日,系统新增了TTaskInfoCoordinetes表,用于管理电极坐标信息。该表的主要作用是将本地的坐标信息下发给GD设备,或者保存云端的坐标数据。通过这一机制,系统实现了电极坐标的同步和共享,确保了测量数据的一致性和准确性。TTaskInfoCoordinetes表与任务ID关联,为每个测量任务提供了精确的电极位置信息。
Section sources
结论
Geomative Studio的测量数据模型经过多次迭代和优化,形成了一个功能完整、结构合理的数据管理体系。从最初的Td表到后来的定时任务管理和测井数据管理,系统的数据模型不断扩展以满足新的需求。通过分析这些设计变更,我们可以看到系统在灵活性、可扩展性和实用性方面的持续改进。这些改进不仅提升了系统的功能,也为用户提供了更强大的数据管理能力。