智能书柜前端相关配置 2 - DigitalPlatform/dp2 GitHub Wiki
用户安装连接好书柜,在书柜上安装好dp2SSL,在dp2SSL【参数配置】中先设置好必要的指纹中心、人脸中心、RFID 中心URL,设置“功能类型”为“智能书柜”后(详细设置步骤参考智能书柜参数配置 1),还需要在dp2SSL 的用户文件夹中创建一个文件 shelf.xml,配置后,dp2SSL书柜系统才能正常运行。
dp2SSL 的用户文件夹的位置:打开dp2 SSL后,点【设置】按钮进入【主菜单】,输入密码点【登录】,再点【打开用户文件夹】,进入用户文件夹。dp2SSL安装的时候用户文件夹里面不会有shelf.xml文件。
shelf.xml文件定义了dp2SSL书柜操作界面上,当用户点击某柜色块时,系统如何将当前色块与对应的书柜进行关联,并调用对应的天线,门锁和灯。
配置样例如下:
<?xml version="1.0" encoding="utf-8" ?>
<root>
<shelf>
<door name="左第一排" lock="*.1.1" antenna="RD5100:1" shelfNo="一楼大厅书柜:左-1" lamp="*"/>
<door name="左第二排" lock="*.1.3" antenna="RD5100:2" shelfNo="一楼大厅书柜:左-2" lamp="*"/>
<door name="左第三排" lock="*.1.5" antenna="RD5100:3" shelfNo="一楼大厅书柜:左-3" lamp="*"/>
<door name="左第四排" lock="*.1.7" antenna="RD5100:4" shelfNo="一楼大厅书柜:左-4" lamp="*"/>
</shelf>
<shelf>
<door name="右第一排" lock="*.1.2" antenna="RD5100:5" shelfNo="一楼大厅书柜:右-1" lamp="*"/>
<door name="右第二排" lock="*.1.4" antenna="RD5100:6" shelfNo="一楼大厅书柜:右-2" lamp="*"/>
<door name="右第三排" lock="*.1.6" antenna="RD5100:7" shelfNo="一楼大厅书柜:右-3" lamp="*"/>
<door name="右第四排" lock="*.1.8" antenna="RD5100:8" shelfNo="一楼大厅书柜:右-4" lamp="*"/>
</shelf>
<patron readerName="RL1700"/>
</root>
door元素的name 属性为柜门的名字,这里配置什么属性,对应的柜门打开后界面上就会显示什么名字,语音播报时也会播报相应的名字。为了让用户能清晰地辨识所操作的柜门,建议配置指向性明确的名字,让人一听就知道在哪里。
door元素的lock 属性为门锁参数,例如 *.1.1
,星号表示任意锁名字,(第一个)1 表示锁控板编号,(第二个)1表示锁的编号(在当前锁控板内)。
一个锁控板通常有多个锁控,每个锁控控制一个柜门。
锁控板编号是指书柜里面硬件上的锁控板上当前选择的编号(红色控板上那个开关打开)。配置参数的时候,lock 属性的锁控板编号需要与实物相符。
上面的配置表示锁控板上的1号锁控同时控制了8个柜门。
当书柜副柜较多时,可能配置了不止一个锁控板(比如有16个门,一个锁控只能控制8个门的话,这时需要配两个锁控板),这时相同的锁名下每个锁控板的编号要设置不同。如果存在不同的锁控板编号重复,系统将不知到底该控制哪个锁控好。
antenna 属性为读卡器天线参数。例如 *:1
,星号表示任意读卡器名字,1 表示天线编号,读卡器的名字可以从书柜上安装的RFID中心的“操作历史”属性页开查看。另外注意天线编号有的读卡器是从 0 开始,有的是从 1 开始,要看具体读卡器型号的说明。(注:RL8600类型的读写器是从0编号的)
shelfNo 属性为架号。一般格式为"馆藏地名称:架号"。馆藏地名称要根据 dp2library 中所配置的馆藏地来设置,不能随便命名。如果当前书柜属于某实例下的某个分馆,设置的时候要注意写成完整的馆藏地,例如"海淀分馆/大厅书柜";没有使用分馆模式时,直接设置馆藏名称,例如“大厅书柜”。
架号建议设置为指向性明确的命名,让人一看就知道所指的是哪个柜。比如:左1,表示左边1号柜。为了更加清晰期间,柜门上可以贴上表示柜号的标识,以便用户快速对应。
lamp 属性为灯名字。目前只能使用 "*"。如果属性值为空,或者没有定义此属性,表示此柜门打开的时候不需要开灯。
受目前智能书柜硬件限制,所有定义了 lamp 属性的 door 元素,都共同决定全体灯的亮灭。具体算法是,只要有一扇门开着,那么(定义了 lamp 属性的)所有门内的灯会一齐打开;如果全部门都关上了,那么(定义了 lamp 属性的)所有门内的灯会一齐关掉。
door 元素还可以有一个特殊属性 type(上述举例没有配置),如果值为 "free",表示这不是一个普通的处于柜门内的读卡器,而是一个不属于任何柜门的读卡器。可以这样配置书柜屏幕下方原本用于识读证卡的那个小读卡器,它也可以形成一个“门”的界面,但里面的图书放入和取出不会触发还书和借书请求。
patron 元素的 readerName 属性定义了读者证读卡器的名字。具体名字需要在 RfidCenter 的“操作历史”属性页中观察确认,上面举例的 "RL1700" 不一定符合实际情况。如果不定义 readerName 属性,则 dp2SSL 会持续不停对图书读卡器进行盘点操作;如果正确定义了 readerName 属性,则 dp2SSL 在智能书柜所有的柜门关闭后,会自动暂停对图书读卡器的盘点操作(有门打开时会重启盘点操作)。
蓝色小书柜规定的配置为:
<?xml version="1.0" encoding="utf-8" ?>
<root width="818" height="1918" backImageFile="bg-mini.png" >
<background>
<LinearGradientBrush
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
EndPoint="1,1" StartPoint="0,0">
<GradientStop Color="Black" Offset="0"/>
<GradientStop Color="#FF363636" Offset="1"/>
</LinearGradientBrush>
</background>
<group left="72" top="98" width="562" height="1696" margin="30" cornerRadius="7" openBrush="#E5BB4B" closeBrush="#498EAF">
<door name="第一层" lock="*.1.1" antenna="RD2104:1" shelfNo="馆藏地:1" lamp="*"/>
<door name="第二层" lock="*.1.2" antenna="RD2104:2" shelfNo="馆藏地:2" lamp="*" />
<door name="第三层" lock="*.1.3" antenna="RD2104:3" shelfNo="馆藏地:3" lamp="*"/>
<door name="第四层" lock="*.1.4" antenna="RD2104:4" shelfNo="馆藏地:4" lamp="*"/>
</group>
<patron readerName="RL8600"/>
</root>
在配置时需要注意antenna和patron readerName要配置为书柜实际的读写器型号。RD2104为2020.11的新读卡器型号。