我的设想,实现区域报警,在已经得到标签坐标的情况下,通过划定警戒区域,给予标签不同的权限,实现报警,基础界面如下: 新增权限窗口,主要目的是,划定警戒区域,点1为矩形左上角点,点2为矩形右下角点,可以像基站一样,勾选权限按钮,则点被引用,当两个点都被引用时,在下方坐标系内画出相应区域 接着是标签权限的划分,这个权限分为1、2、3三个级别(可以由) self.spinBox.setMinimum(0)#
self.spinBox.setMaximum(2)# 使用spinBox.划定级别 第一级别,无视警戒区域,可以在任何区域内移动 第二级别,只允许在警戒区域内移动 第三级别,只允许在警戒区域外移动 在警戒区域划定前,标签权限划分无效 接下来是,警戒的判定,以进入警戒区域报警为例, 使用标签的坐标和警戒区域的坐标进行比较,点1(a,b),点2(c,d),标签坐标(x,y) a<x<c且b>y>d;则在警戒区域内,发出警报 接下来是,警报的实现 首先是上位机上实现,上位机上出现一个提示串口,显示某标签违反权限规则, 接着上位机通过串口向基站或标签传输一个信号,基站和标签间互相通信,所有的标签和基站都获取这个信号,然后向各自的串口输出一个持续的高电平, 我在串口处外接了一个警报器,当串口输出高电平,警报器就会发出警报 当标签回到正确的区域,或者标签直接断电失联的话,回复到原来的状态,警报解除
大佬指点一下,要是成功了,我就把代码共享
|