VisualDCT用户手册

本手册是一份如何使用VisualDCT的用户手册,并且也包含了一些技巧。适宜人群为VisualDCT的所有用户。

 

内容表

1、介绍

可视化数据库配置工具(VisualDCT)是一个EPICS数据库配置工具,完全用Java编写了它,因而在各种系统中都能支持它。开发它是为了提供在已有工具(例如:Capfast和图形化数据库配置工具GDCT)中缺失的特性。实际上,VisualDCT类似于GDCT;能够创建,移动和链接记录,能够简单地修改字段和链接。但VisualDCT提供了更多功能:对DBs和组使用层级设计,能够用一个逻辑块对记录进行分组。另外使用箭头地数据流方向指示使得设计更容易理解。VisualDCT有一个强大地DB解析器,它允许导入已有DB和DBD文件。输出文件也是DB文件,所有注释和记录顺序被保留。

2、基本原理

VisualDCT被设计为创建和维护EPICS记录实例数据库(.db)文件。为了使VisualDCT正常地执行,必须提供一个数据库定义文件(.dbd),此文件包含各种记录和设备类型的说明,并且打算在由VisualDCT创建的任何记录实例数据库(.db)文件中引用这些记录和设备类型。完成指定一个数据库定义文件(.dbd)后,使用由VisualDCT提供的各种工具可以创建,复制,重命名记录等。当用户与各种VisualDCT窗口,选项和数据输入字段交互时,在窗口中显示了这些交互的结果。在窗口中显示的记录实例数据的修改和数据输入更新在用户保存当前修改的记录实例数据库文件(.db)前不会替代先去存储的记录数据数据。当VisualDCT执行时,它尝试捕获和显示可能导致减少用户提供信息完整性的最常见情况。

3、运行VisualDCT

为了运行VisualDCT 2.8.3,需要Java 13或Java 16。VisualDCT以一个Java Archive包(.jar文件)被发布,因此在这个二进制包中仅有一个文件。这个文件必须被添加到java classpath变量(应用程序类和资源的搜索路径)来帮助JVM查找com.cosylab.vdct.VisualDCT类,它是这个VisualDCT的主要类。

VisualDCT的用法:

列表1:基本运行命令

java -cp VisualDCT.jar com.cosylab.vdct.VisualDCT [*]

列表2:运行可执行的JAR

VisualDCT Java ARchive包(.jar)也被称作可执行的JAR文件,这表示可以以以下命令运行它:

java -jar VisualDCT.jar [*]
[blctrl@main-machine VisualDCT]$ java -jar VisualDCT.jar
Loading VisualDCT v2.8.3...



o) Usage: java com.cosylab.vdct.VisualDCT [<DBDs>] [<DB>]

列表3:NO DBD被装载的错误消息

如果你的GUI有这个特性,在VisualDCT.jar上双击将也做了这件事。VisualDCT接受两个不是必需的参数:数据库定义文件和记录实例数据库文件(如果在DBs中已经指定了这个文件,不需要指定数据库定义文件)。DBD被识别为一个带有.dbd扩展名的文件,否则认为是DB。如果没有指定DBDs,一个打开对话框将出现,允许你指定DBD文件。如果到这时,没有指定一个有效的DBD,VisualDCT将用以下输出退出:

No DBD loaded! Exiting...

列表4:一个允许VisualDCT的示例

一个使用test.dbd定义数据库和test.db示例数据文件运行VisualDCT的示例:

VDCT_DIR环境变量用于定义默认工作路径。

java -jar VisualDCT.jar -DVDCT_DIR=~/epics test.dbd test.db

列表5:一个EPICS_DB_INCLUDE_PATH环境变量用法示例

VisualDCT支持EPICS_DB_INCLUDE_PATH环境变量,它为在层级中使用的DB文件多增加一个搜索路径,因此你可以在一个中心位置存储有用的模块。 

java -jar VisualDCT.jar -DEPICS_DB_INCLUDE_PATH=$EPICS_DB_INCLUDE_PATH test.dbd test.db

列表6:一个重写默认插件配置目录的示例

VisualDCT在用户家目录中搜索插件配置。如果那里没有,它对VDCT_CONFIG_DIR目录进行查找,此处VDCT_CONFIG_DIR是一个用于定义默认插件配置目录的环境变量。VDCT_CONFIG_DIR的默认值是/etc/vdct。

java -jar VisualDCT.jar -DVDCT_CONFIG_DIR=/usr/local/vdct test.dbd test.db

4、用于产生文本数据库的命令行工具

你可以从命令行产生文本数据库,着对从脚本或者产生大型数据库有用。对于VisualDCT相同,在这里使用了OpenJDK 19,但差别是你能够在一个无头终端使用它。

[blctrl@main-machine ~]$ java -version
openjdk version "19.0.2" 2023-01-17
OpenJDK Runtime Environment (build 19.0.2+7-44)
OpenJDK 64-Bit Server VM (build 19.0.2+7-44, mixed mode, sharing)

要启动这种生成,你必须添加VisualDCT的jar到classpth并且调用特定的类(com.cosylab.vdct.GenerateFlatDatabase),这个类管理生成。这个命令行基本上接受两个参数:输入.vdb文件(可能你的主文件),它与作为模板被包含的所有.vdb文件一起使用,以及向其产生文本数据库的输出.db文件。

列表7:产生文本数据库

java -cp VisualDCT.jar com.cosylab.vdct.GenerateFlatDatabase [OPTION] ... input.vdb out.db

列表8:用脚本运行

也提供了一个用于运行这个工具的脚本,能够在VisualDCT的发行包中找到它:

[blctrl@main-machine VisualDCT]$ ls
flatdb.sh  pom.xml                 README.md  VisualDCT.jar          visualdct.sh
LICENSE    README_DISTRIBUTION.md  site       VisualDCT-javadoc.jar  VisualDCT-sources.jar
[blctrl@main-machine VisualDCT]$
flatdb [OPTION] ... input.vdb out.db

列表9:一个.dbd文件示例

另外,你可以指定命令行选项-d或者--dbd-file,后跟一个.dbd文件的名称。这在产生一个文本数据库前装载一个特定的.dbd文件。

flatdb --dbd-file app.dbd input.vdb output.db

选项--enable-global-macros--disable-global-macros各自启用和停用全局宏计算。

选项--enable-capfast和--disable-capfast启用和停用像Capfast的层级名称的产生。

5、层级支持

VisualDCT也支持EPICS数据库的层级设计。有关此的详细信息,参考VisualDCT EPICS Database Hierachy Support和VisualDCT Hierarchy Additions文档。

6、特性

6.1 快速数据库开发(RDD)

VisualDCT可以被认为是一个快速数据库开发工具 -- 使用普通文本编辑器的数据库构建可以快速地用一些简单的鼠标点击来完成,使得所有非必需的键盘输入最少。记录实例数据库的可视化使得数据库更容易理解,更加容易地找到错误(例如:断开的链接由红色叉号表示),并且帮助找到更好的数据库设计。允许用户到用户的分层设计和把数据库分成逻辑块。

6.2 数据库文件解析器,输入/输出文件

VisualDCT只创建和维护一个文件,记录实例数据库(.db或.vdb)文件,并且当有多个文件时,没有用于避免任何可能的一致性问题的任何其它图形信息文件,所有必需的可视组成数据作为注释被存储在这个DB文件末尾。一个DB文件示例:

#! Generated by VisualDCT v2.8.3
#! DBDSTART
#! DBD("/home/blctrl/exer/damaiao/dbd/damaiao.dbd")
#! DBDEND



record(ai, "$(USER):Range") {
  field(SCAN, "Passive")
  field(PINI, "YES")
  field(INP, "10")
}

record(calc, "$(USER):Random") {
  field(SCAN, "1 second")
  field(CALC, "RNDM*A")
  field(INPA, "$(USER):Range")
}

#! Further lines contain data used by VisualDCT
#! View(2000,2115,1.0)
#! Record("$(USER):Range",2240,2202,0,1,"$(USER):Range")
#! Field("$(USER):Range.VAL",16777215,0,"$(USER):Range.VAL")
#! Record("$(USER):Random",2240,2402,0,1,"$(USER):Random")
#! Field("$(USER):Random.INPA",16777215,0,"$(USER):Random.INPA")
#! Link("$(USER):Random.INPA","$(USER):Range.VAL")

VisualDCT有强大解析器,它能够解析已存在的DBs文件,这些文件是由其它工具创建或修改。它也探测数据库中的错误,包括DBDs。有缺陷的可视组成数据或者它的缺失被安全地处理,并且不会引起任何严重错误,VisualDCT只是自动放置不带任何可视数据地所有对象。VisualDCT保留在记录实例数据库中地注释和记录/字段顺序,这提供了在其它工具中或手动编辑你数据库地能力,而不损害数据库和VisualDCT。

6.3 对象的可视化表示

6.3.1 记录

以上有四个记录:两个ai记录,一个ao记录和一个calc记录。

图1:记录

 用一个在其内部有可写的类型和名称的方块表示记录。在记录内部横线之下,是一个显示所有字段值的区域,字段的选择取决于可见性属性。

有三种字段类型,它们可以作为这个记录的组成部分出现(这个记录下的白色矩形):变量(数据),输入,输出和转发字段。变量字段保存一段数据,诸如VAL或HIHI字段。由于这个变量字段可以被其它记录的输出字段填充以及被其它记录的输入字段读取,一个字段节点将显示在这个记录下。另外,使用箭头的数据流方向标记使得容易区分这些字段:

  • 圆圈:变量字段(从版本2.5起,变量字段在两边都有一个圆圈)
  • 外箭头:输出和转发字段
  • 内箭头:输入字段

通过添加连接器(在链接线上可移动的小矩形),在任何连个可链接字段之间,可以绘制一条多点线。如果一个链接是一个组间链接(不是在相同组中的两个字段之间的链接),这个链接被表示成一条在屏幕中带有边上显示目标链接名的线条。当VisualDCT发现两条线有合并的可能性时,它通过在这条线上可能的合并点绘制一个小点来表示。

6.3.2 组

 图2:组

用一个内部带有其名称的白色矩形表示组。在其上双击,进入内部。

6.3.3 模板实例

 模板实例时一个更大的矩形表示。其体内包含:位于右上角的名称(id),下面的模板描述,模板端口(将被传递出这个模板的值)以及模板宏(要被在这个模板内传递的宏定义)。只要通过拖动它们,可以重新排列那些模板字段,但默认(以及推荐的)顺序隐含输入字段在左边,输出字段在右边。

要更改模板实例属性,在它上面双击,并且使用Inspector工具或者Shift+双击进入它内部。

6.3.4 链接

 图4:链接

 VisualDCT识别若干链接类型:

  • 普通:常规链接。类似任何其它链接类型,可以使用连接头自由断开链接线。
  • 不可见:带有不完整线的链接(使得复杂数据库更加清晰)。要创建它,添加接头,左键在其上点击并且选择Mode->Invisible
  • 组间:在不是在相同组中的对象之间的链接或者对不可见模板字段的链接。
  • 外部输入:链接那些目标是一个外部对象(对VisualDCT无效)。要创建它,输入目标,向字段添加接头,左键在接头上点击并且选择Mode->External Input
  • 外部输出:链接那些目标是外部对象(对于VisualDCT无效)。要创建它,输入目标,添加接头,左键在接头上点击并且选择Mode->External Output
  • 无效:对于VisualDCT没有找到其目标的链接。

6.3.5 其它图形对象

图5:线/箭头,框和文本框(普通和HTML) 

6.4 链接

有两种链接方式:

1) 使用Inspector工具输入INPUT, OUTPUT或FORWARD链接字段的值

2) 使用VisualDCT的链接功能,仅使用鼠标:

  1. 在INPUT,OUTPUT或FORWARD链接字段的父记录上右击鼠标
  2. 弹出菜单将出现,选择合适的链接字段
  3. 父记录将闪烁,直到变量字段或者记录;要做这件事,有三个选项:
    • 在记录上左键点击,使用-VAR字段,或者如果FORWARD链接,使用记录
    • 在字段上左键点击,创建指向被点击字段的链接
    • 在记录上右键点击,弹出菜单将显示,允许你选择变量字段。

在链接完成后,光标恢复正常。

VisualDCT使用以下规则:链接目标,其值包含了目标名称,例如:ao001.INP(源)字段包含了"ao002.VAL"值(目标)。

6.5 变形

VisualDCT有变行(更改)记录和模板类型的功能,即:更改类型并且保留所有公共字段。通过菜单Edit->Morph或者弹出菜单可访问这个命令。

6.6 边框

VisualDCT支持自定义边框(就像机械和电气工程图中的边框),它有作者,id,名称和变化块。它们由线条,矩形和文本块组成,但没有记录。一旦被合并,这个块仍然保持为一个带有可编辑文本的单个块。

边框被定义成使用框,文本框和线条对象的普通DB文件。一旦使用File->Import border...将这个DB文件导入到其它DB,所有图形对象以带有可编辑文本的单个块被导入。

6.7 分组(过时了,被层级替代)

分组是基于名称,例如,名称grp1:ao001的记录属于组grp1,而记录grp1:grp2:ao002属于组grp2,而grp2属于grp1,因此也可以嵌套组。在先前示例中:字符被用作组分隔符,这是默认,但在设置窗口(View->Settings)中能够简单地更改它。

在组上双击将进入这个组并且只显示在此组中的组和记录,使用View->Level Up(Shift+Up)来跳出这个组。

根据命名规则能够简单地分组,只要通过命名记录,或者在选择对象上使用来自Edit菜单的Group或Ungroup命令。

7 用户接口

作为强大的IDE,VisualDCT提供了诸如剪切板和撤销支持等不可缺少的功能。为了记录实例数据库和它的可视化之间同步付出了巨大的努力。每次视觉上做好的更改立即在数据库中反映,反之亦然;像影响链接的记录移动,重命名和删除的所有操作自动被VisualDCT修复。

7.1 图形用户接口

VisualDCT的图形用户接口有3个主窗口组成:

  • 主窗口
  • Inspector窗口
  • console窗口

7.1.1 主窗口

 主窗口由以下组成:

  1. 主菜单
  2. 工具栏 - 使得访问常见操作更加简单。
  3. 带有导航的工作区 - 它是VisualDCT的主要组件,它提供了可视化和编辑记录实例数据库的功能。导航是整个工作区的微缩视图。在导航区使用鼠标,你可以容易地在工作区移动。
  4. 带有缩放滑动条地状态栏 - 显示活动的定义数据库的名称和当前组的名称。缩放滑动条被用于简单地更改缩放尺寸。在小尺寸(小于100%),特殊的缩放(shift+move)可以用于放大对象。

7.1.2 Inspector窗口

Inspector工具提供了检查和修改所有对象属性的功能。inpsector工具基本上已经是编辑记录实例数据库所需的一切,它替代了普通的文本编辑器。inpsctor窗口由以下组成:

1)对象组合框:显示当前受检查对象并且允许用户选择当前数据库中的另一个对象。

2)属性表:名称-值对的表格,允许用户检查或修复字段。根据在定义数据库中promptgroup字段,分组记录字段。

3)注释文本区域:显示记录注释并且允许用户修改它。

4) 状态栏:提供基本的帮助,为这些字段显示在定义数据库中定义的prompt字段的值,并且帮助用户理解这些字段的含义(例如:LBRK--"上个断点")。

5)居中按钮:在受检查对象放在窗口中间。

图7:Inspector窗口

受检查对象在窗口上被标记为高亮。

每个字段有一个称为可见性的属性,其值表示这个字段是否在记录体内被现实。通过在左列上点击鼠标右键可以疼过它。三个图标表示这个字段的可见性状态:

  • :如果只不同于默认值,显示字段值。
  • :总是显示字段值。
  • :总是不显示字段值。

任何字段能够输入要给宏定义,包括菜单和链接。对字段的任何更改在可视组件中立即出现。

 7.1.3 Console窗口

 Console窗口用于替代经常被用户忽略的JVM的标准输出。所有输出被重定向到这个console,每次一条新消息在它中出现时,它弹出,因此,通告用户这条新消息。

7.2 命令参考

这部分描述VisualDCT所有可用的命令。

7.2.1 菜单命令参考

这部分描述VisualDCT可用的菜单命令。

7.2.1.1 文件菜单

  • New:关闭当前活动的数据库,并且允许用户创建一个新数据库。
  • Open:关闭当前活动的数据库,并且提供一个文件选择窗口,它将允许用户打开一个新的已经存在的数据库。用装载的DBDs检查这个记录实例数据库一致性。
  • Import DB:提供文件选择窗口,它将允许用户指定一个新的已有数据库,它将被添加到这个已有活动数据库中(如果包含templates,只被装载到模板寄存器)。
  • Manage DBDs:弹出一个DBD管理对话框,允许删除/装载其它DBDs。
  • Save:保存当前活动的数据库。
  • Save As:保存当前活动的数据库,并且允许用户指定一个此数据库将被保存到的文件名。
  • Save As Group:以一个单独数据库保存当前活动的数据库组,并且允许用户指定此数据库将被保存到的文件的名称。
  • Generate:保存当前活动数据库为一个文本数据库。
  • Generate As Group:以一个文本独立数据库保存当前活动的数据库组。
  • Export:包含所有导出插件的菜单。
  • Export as PostScript:导出当前视图到PostScript(.ps)文件。
  • Print:打印这个数据库的当前可见区域。
  • Print as PostScript:以PostScript打印当前可见的数据库区域。
  • Print Preview:显示在这个活动数据库将被打印时的视图。
  • Recent files ...:最近使用文件的列表(选项一个文件,打开它)
  • Exit:退出VisualDCT。

7.2.1.2 编辑菜单

  • Undo:撤销上次操作。
  • Redo:重做上次被撤销的操作。
  • Cut:剪切选择并且放入剪切板。
  • Copy:复制选择并且放入剪切板。
  • Paste:插入剪切板内容到工作区。
  • Move/Rename:移动/重命名选择。
  • Group:分组选择。
  • Ungroup:取消分组选择的组。
  • Delete:删除选择。
  • Select All:选取当前组中所有对象。

7.1.2.3 视图菜单

  • Flat View:未实现。
  • Level Up:移动到父组。
  • zoom In:增大10%
  • Zoom Out:减小10%
  • Zoom Selection:放大选择区填满窗口。
  • Base View:移动到工作区中心并且设置缩放因子为100%。
  • Toolbar:切换工具栏可见性。
  • Statusbar:切换状态栏可见性。
  • Navigator:切换导航栏可见性。
  • Show Grid:显示工作区的网格可见性。
  • Snap to Grid:捕获对象到网格。
  • Settings:弹出设置对话框。

7.1.2.4 插件菜单

1)插件管理器:弹出插件管理对话框。

2)列出安装的插件。

7.1.2.5 调试菜单

1)Start:启动调试插件。安装的调试插件...的列表。

2)Stop:停止运行的调试插件。

7.1.2.6 帮助菜单

1) Hellp Topics:列出帮助话题(暂时仅显示鼠标命令)

2) Books Online:为实现。

3)About Box:显示程序信息,版本号和版权。

7.2.2 鼠标命令参考

表格1:鼠标命令参考 

7.2.3 键盘命令参考

在所有记录的组合(在菜单项左侧)外,还有一个组合。

ctrl+箭头在工作空间导航

8、插件

图9:插件管理器窗口

为了使得VisualDCT更加灵活的支持已经实现的插件。详细信息请参考VisualDCT文档。 

9、未来计划

由于VisualDCT是一个有效项目,在未来发行的VisualDCt中要实现某些特性,并且感谢所有漏洞报告,建议以及想法。

10、结论

如果本手册美哟满足你所有的预期,或者你有任何问题或者建议,请联系作者。欢迎使用VisualDCT。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值