CN116033491B - 实时定位系统中的数据压缩缓存上传方法和装置 - Google Patents
实时定位系统中的数据压缩缓存上传方法和装置 Download PDFInfo
- Publication number
- CN116033491B CN116033491B CN202310318791.1A CN202310318791A CN116033491B CN 116033491 B CN116033491 B CN 116033491B CN 202310318791 A CN202310318791 A CN 202310318791A CN 116033491 B CN116033491 B CN 116033491B
- Authority
- CN
- China
- Prior art keywords
- data
- positioning
- transmission
- reader
- tag
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Landscapes
- Mobile Radio Communication Systems (AREA)
Abstract
本发明公开了一种实时定位系统中的数据压缩缓存上传方法和装置,针对现有的实时定位系统的带宽需求对其所在区域(平台)的带宽造成较大流量压力的问题,通过从无线收发器读取定位信号,存放于中断数据队列;定时读取中断数据队列中的定位信号,获取定位信号的标签编号,通过哈希算法计算得到所述定位信号在传输缓冲区中的标签记录数组中的位置,并在相应位置存储所述定位信号的RSSI序列值;响应于定位服务器发送的数据传输指令,将标签记录数组中的定位信号传输至定位服务器。该方法使用相对有限的计算资源,占用空间非常少,而且缓存标签数量的多寡对读写器处理能力的影响几乎没有。
Description
技术领域
本发明属于实时定位系统的技术领域,尤其涉及一种实时定位系统中的数据压缩缓存上传方法和装置。
背景技术
实时定位系统(Real-Time Locationing System,RTLS)已经广泛应用于学生校园定位、仓库托盘定位等应用场景中。
基本的实时定位系统由一个定位服务器、多个读写器、标签组成。
标签可佩戴或固定在定位对象上,读写器分散安装在场所各处,并与定位服务器有通信链路。
当前经济实用的实时定位系统都基于无线信号强度进行定位。其原理是:标签上有无线收发器(transceiver),可以周期性发送无线定位信号;这些信号被周围的读写器收到后,将通过通信链路转发给定位服务器,并且附加上接收信息,比如该信号的无线信号接收强度(RSSI)、到达时间差(TODA,也即空中传输时间)、到达角(AOA);定位服务器汇总一个时间窗口内一个标签被多个读写器读取到的所有无线信号,然后根据三角距离定位、RSSI指纹等定位算法,推测出该标签的位置。其中,无线收发器给出的RSSI值都经过了换算,是8位正整数,与标签-读写器之间的距离,有近似的线性关系,基于RSSI的三角距离定位就依靠这个原理。
定位精度与使用的无线定位技术有关。基于RSSI的技术要求低,定位精度也比较低,一般可以做到5米之内;基于到达时间差的技术要求高,定位精度可以做到1米之内。
常用的无线通信技术主要有有源RFID、蓝牙等。这些技术都有发射功耗低(发射时都在10毫安左右,休眠时功耗在1微安以下,并且可以快速唤醒和休眠)、通信速率高(2Mbps,一般发送一个定位信号只占用100微秒左右的时间窗口)、成本低廉等优点。标签在用纽扣电池供电、不换电池或充电的情况下,一般可以做到3到10年的使用寿命(具体寿命与电池容量、定位信号发射周期有关),足以满足许多应用场景的需求。
标签每次发射的定位信号,是否能被周围的读写器接收到,有一定的概率。比如标签是否贴近金属或液体(人体就是典型的液体)、标签与读写器之间是否存在阻挡(比如墙、玻璃、树叶等)、标签与读写器的绝对距离,等等。
为了解决这种无线通信技术的本质性问题,一方面需要提高标签的发射频率,提高在时间窗口内被读写器至少读取到一次的概率,另一方面需要读写器把所有读取到的定位信号,都及时转发给定位服务器,避免遗漏。但标签发射频率也不能太高,一个原因是增加标签能耗,缩短标签寿命,另外一个原因是,增加了邻近标签同时发射信号导致信号冲突的概率。所以需要根据应用场景(标签移动速度、标签空间密度等),有针对性的设置标签发射频率。
一类比较常见的应用是中学校园等人员密集场所的学生定位。在高中走班制启动之后,学生需要在不同教室流动上课,容易发生走错班级或缺勤的情况。实时定位系统可以自动检查每个学生是否在正确的时间、正确的教室上课,学生进出教室、教学楼、宿舍楼、校门时也不再需要手工刷卡。
目前,国内许多中学(特别是名牌中学)的学生人数都有4、5千,甚至接近1万,有1、2百个教室,而且教室在三维空间上距离都很近。在这种场景下,当学生上课时,大部分读写器周围都可以读取到近5~9个教室里的学生所佩戴的标签,以每个教室50人计,总共约有500个标签。在课间休息时,由于学生大多滞留在楼道上,读取到的标签数量会更多。由于需要在经过通道(比如校门)时也能被周围的读写器可靠读取,所以标签的发射周期不能太短,比如1秒。在这种情况下,每个读写器每秒可以读到500个定位信号,每个定位信号需要至少5个字节的存储空间(4字节的标签编号、1字节的RSSI值,这里还没考虑时间戳所需要占用的存储空间)。若把这些数据直接转发给定位服务器,需要20Kbps带宽,200个读写器就总共需要4Mbps带宽,会给普通10M、100M带宽校园网带来沉重流量压力。若不想抛弃数据,就需要对数据进行压缩上传。
发明内容
本发明的目的是提供一种实时定位系统中的数据压缩缓存上传方法,可在计算资源有限的平台上运行,缓解带宽压力,确保实时定位系统的正常运行。
为解决上述问题,本发明的技术方案为:
一种实时定位系统中的数据压缩缓存上传方法,包括:
数据采集中断线程:读写器响应于无线收发器发送的数据采集中断信号,从无线收发器读取定位信号,存放于中断数据队列;所述定位信号包括标签编号及RSSI序列值;
嘀嗒中断线程:读写器中的定时器每个嘀嗒触发一次中断,用于记录一个标签每次收到的定位信号中的RSSI序列值;
数据缓存线程:读写器定时读取中断数据队列中的定位信号,获取定位信号的标签编号,通过哈希算法计算得到所述定位信号在传输缓冲区中的标签记录数组中的位置,并在相应位置存储所述定位信号的RSSI序列值;
数据传输线程:读写器响应于定位服务器发送的数据传输指令,将标签记录数组中的定位信号传输至定位服务器;读写器再次收到数据传输指令后,获取指令序列号SEQ,并将所述指令序列号SEQ与上次的指令序列号比较,若相同,则说明上次数据传输失败,需重新发送;若不同,则将本次收到的指令序列号及传输开始位置拷贝至传输缓冲区,将传输缓存区中的数据传输至定位服务器。
根据本发明一实施例,读写器根据预设过期时间窗口W,将缓存时间超过所述过期时间W还未传输至定位服务器的数据删除。
根据本发明一实施例,读写器设置记录一个标签每次收到的定位信号中的RSSI序列值的嘀嗒窗口X为读写器的信号接收时间,该信号接收时间的值小于实时定位系统中所有标签的发送定位信号的最短可能间隔,并且能够被W整除,读写器只保存在一个嘀嗒窗口X内收到的最后一次定位信号的RSSI序列值。
根据本发明一实施例,通过哈希算法计算得到所述定位信号在传输缓冲区中的标签记录数组中的位置进一步包括:
所述标签记录数组的长度为一质数S,定位信号的标签编码为一整数I,通过以下哈希算法计算得到定位信号在标签记录数组中的位置L:L = I % S
%表示取余。
根据本发明一实施例,预设地址指针c,当成功存储一定位信号的RSSI序列值后,将c加1,指向标签记录数组的下一个位置,相应的下一定位信号的RSSI序列值的存储位置为:(I + c)% S。
根据本发明一实施例,数据采集中断线程、嘀嗒中断线程、数据缓存线程和数据传输线程为四个并发线程。
根据本发明一实施例,所述嘀嗒中断线程进一步包括:
读写器中的定时器每个嘀嗒触发一次中断,在嘀嗒中断线程计数一次,并且在嘀嗒中断线程中,将RSSI保存序列位置R加1,若R超过Rmax,那么设置R=0。
根据本发明一实施例,所述数据缓存线程进一步包括:
A1:从中断数据队列头部取出一条定位信号,得到其标签编号I,I是正整数;
A2:通过哈希算法计算所述定位信号在传输缓冲区中的标签记录数组中的记录位置L:L = I % S
式中,%表示取余计算,S表示标签记录数组的长度;
A3:初始化地址指针c=0;
A4:若记录位置L是空闲的,那么在其标签编号位置保存I,在RSSI保存序列的位置R保存相应的RSSI值,跳转步骤A1;
A5:检查记录位置L存储的标签编号是否为I,若是,则在RSSI保存序列的位置R保存相应的RSSI值,跳转步骤A1;
A6:将地址指针c加1,设置L = (I + c) % S,跳转步骤A4。
根据本发明一实施例,所述数据传输线程进一步包括:
B1:初始化传输序列号SEQ;
B2:读写器收到定位服务器的数据传输命令,得到命令序列号CMD_SEQ;所述定位服务器的数据存储位置从0开始,每次成功收到传输数据包之后,其命令序列号加1,用于下一次发送。
B3:若CMD_SEQ与传输序列号SEQ相同,则定位服务器没有接收到上次的传输数据包,跳转步骤B12,重新发送数据。
B4:更新传输序列号SEQ=CMD_SEQ,将传输序列号SEQ拷贝到传输缓冲区;
B5:将传输起始位置T保存到传输缓冲区,定位服务器根据T值,判断RSSI保存队列的最早起始位置;
B6:设置传输位置t=T;
B7:检查位置t是否有数据;
B8:若有,则拷贝位置t的标签记录到传输缓冲区,将标签记录的标签编号和RSSI保存序列都设置为0,表示空闲;
B9:将t加1,若t大于S,则设置t=0,进行下一轮传输;S表示标签记录数组的长度;
B10:若传输缓冲区不满,并且T不等于t,则跳转步骤B7;
B11:更新传输起始位置T= t;
B12:启动数据传输,将传输缓冲区中的数据传输给定位服务器,本线程结束。
一种实时定位系统中的数据压缩缓存上传装置,包括:
数据采集模块,用于读写器响应于无线收发器发送的数据采集中断信号,从无线收发器读取定位信号,存放于中断数据队列;所述定位信号包括标签编号及RSSI序列值;读写器中的定时器每个嘀嗒触发一次中断;
数据缓存模块,用于读写器定时读取中断数据队列中的定位信号,获取定位信号的标签编号,通过哈希算法计算得到所述定位信号在传输缓冲区中的标签记录数组中的位置,并在相应位置存储所述定位信号的RSSI序列值;
数据上传模块,用于读写器响应于定位服务器发送的数据传输指令,将标签记录数组中的定位信号传输至定位服务器;读写器再次收到数据传输指令后,获取指令序列号,并将所述指令序列号与上次的指令序列号比较,若相同,则说明上次数据传输失败,需重新发送;若不同,则将本次收到的指令序列号及传输开始位置拷贝至传输缓冲区,将传输缓存区中的数据传输至定位服务器。
一种实时定位系统中的数据压缩缓存上传设备,包括:存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行本发明一实施例中的实时定位系统中的数据压缩缓存上传方法中的步骤。
一种存储有计算机可读指令的存储介质,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行本发明一实施例中的实时定位系统中的数据压缩缓存上传方法中的步骤。
本发明由于采用以上技术方案,使其与现有技术相比具有以下的优点和积极效果:
1)本发明一实施例中的实时定位系统中的数据压缩缓存上传方法,针对现有的实时定位系统的带宽需求对其所在区域(平台)的带宽造成较大流量压力的问题,通过从无线收发器读取定位信号,存放于中断数据队列;定时读取中断数据队列中的定位信号,获取定位信号的标签编号,通过哈希算法计算得到所述定位信号在传输缓冲区中的标签记录数组中的位置,并在相应位置存储所述定位信号的RSSI序列值;响应于定位服务器发送的数据传输指令,将标签记录数组中的定位信号传输至定位服务器;当再次收到数据传输指令后,获取指令序列号,并将所述指令序列号与上次的指令序列号比较,若相同,则说明上次数据传输失败,需重新发送;若不同,则将本次收到的指令序列号及传输开始位置拷贝至传输缓冲区,将传输缓存区中的数据传输至定位服务器。该方法使用相对有限的计算资源,除非网络堵塞或断网的持续时间超过过期时间,否则读写器都不会遗漏或抛弃收到的定位信号。同时,占用空间非常少,而且缓存标签数量的多寡对读写器处理能力的影响几乎没有。
2)本发明设置标签记录数组的长度为一质数S,定位信号的标签编码为一整数I,通过以下哈希算法:L = I % S,计算得到定位信号在标签记录数组中的位置L,通过该算法可实现标签查找操作的O(1)计算复杂性。或者说,在标签记录数组中查找某个标签的耗时,与数组中已经记录的标签数量无关。
3)本发明中的数据采集中断线程、嘀嗒中断线程、数据缓存线程和数据传输线程为四个并发线程,通过这四个并发线程可充分利用MCU的计算资源,减少系统接收无线信号、缓存数据、传输数据等并行任务的整体延迟、提高系统吞吐量。
附图说明
图1 为本发明一实施例中的实时定位系统中的数据压缩缓存上传方法流图;
图2 为本发明一实施例中的实时定位系统示意图;
图3 为本发明一实施例中的实时定位系统中的数据压缩缓存上传装置框图;
图4 为本发明一实施例中的实时定位系统中的数据压缩缓存上传设备示意图。
具体实施方式
以下结合附图和具体实施例对本发明提出的一种实时定位系统中的数据压缩缓存上传方法和装置作进一步详细说明。根据下面说明和权利要求书,本发明的优点和特征将更清楚。
实施例一
本实施例提供了一种实时定位系统中的数据压缩缓存上传方法,请参看图1,其包括:
数据采集中断线程:读写器响应于无线收发器发送的数据采集中断信号,从无线收发器读取定位信号,存放于中断数据队列;所述定位信号包括标签编号及RSSI序列值;
嘀嗒中断线程:读写器中的定时器每个嘀嗒触发一次中断;
数据缓存线程:读写器定时读取中断数据队列中的定位信号,获取定位信号的标签编号,通过哈希算法计算得到所述定位信号在传输缓冲区中的标签记录数组中的位置,并在相应位置存储所述定位信号的RSSI序列值;
数据传输线程:读写器响应于定位服务器发送的数据传输指令,将标签记录数组中的定位信号传输至定位服务器;读写器再次收到数据传输指令后,获取指令序列号SEQ,并将所述指令序列号SEQ与上次的指令序列号比较,若相同,则说明上次数据传输失败,需重新发送;若不同,则将本次收到的指令序列号及传输开始位置拷贝至传输缓冲区,将传输缓存区中的数据传输至定位服务器。
具体的,基本的实时定位系统由定位服务器、无线收发器、读写器及定位标签组成,其中,定位服务器通过以太网轮询读写器,定位标签上的无线收发器实时发送定位信号,读写器接收该定位信号发送至定位服务器。通常,读写器把收到的定位信号数据长时间存起来,以方便定位服务器读取。
在实际应用中,定位服务器通过以太网轮询读写器的时间是不确定的,具体要根据如校内网的网速、网络堵塞持续时间、网络拓扑结构、定位服务器的轮询算法等,所以读写器需要进行数据缓存。但是,读写器把收到的数据长时间缓存起来,一方面会占用内存,另一方面对于很早以前的定位结果,用途有限。
因此,本实施例在读写器中设置一个过期时间窗口W,作为定位信号在读写器中缓存的过期时间。读写器可抛弃所有缓存时间超过W还没有被定位服务器取走的数据。比如W设置为8秒。
在这个基础上,需要设置记录一个标签每次收到的定位信号中的RSSI序列值的嘀嗒窗口X,即读写器的信号接收时间。该信号接收时间的值小于实时定位系统中所有标签的发送定位信号的最短可能间隔,并且能够被W整除。假如W是4秒,标签平均1秒发一个定位信号,那么X可以设置为0.5秒。对于一个标签,读写器只保存在一个嘀嗒窗口X内收到的最后一次定位信号的RSSI序列值。
每个标签记录由两个部分组成,前面是4个字节的标签编号位置,后面是RSSI保存序列。W/X的结果称为最大RSSI保存序列长度Rmax。在W=4,T=0.5秒的情况下,Rmax等于8。每个RSSI值占用1个字节,所以RSSI保存序列的空间占用是8字节,每个标签记录的空间占用是12字节。
所有在时间窗口W内收集到的标签记录,都放在一个标签记录数组内。记录数组长度S是一个质数,比如3001。
在读写器初始化阶段,设置标签记录数组的所有记录都标记为空闲。假设标签编号0不被使用,所以标签编号字段为0就可以表示空闲。此外,还需要设置一些全局变量:
RSSI保存序列起始位置R设置为0;
中断数据队列设置为空;
传输起始位置T设置为0;
传输序列号SEQ为-1;
注意,所有位置都从0开始。
本实施例提供的实时定位系统中的数据压缩缓存上传方法,其定位服务器、读写器、标签记录数组及传输缓冲区的关系如图2所示。读写器接收标签发送的定位信号数据,将定位信号数据缓存于标签记录数组中;当读写器接收定位服务器发送的数据传输指令后,将标签记录数组中的数据拷贝到传输缓冲区后发送给定位服务器。
该实时定位系统中的数据压缩缓存上传方法分为4个并发线程:
一、数据采集中断线程。
1.当无线收发器收到新的定位信号之后,通过中断通知读写器的MCU。
2.MCU响应中断,从无线收发器读取定位信号,放到中断数据队列尾部,本线程结束。队列长度一般根据读写器实时性要求确定。
二、嘀嗒中断线程。
1.读写器中的定时器每个嘀嗒触发一次中断。
2.在中断线程中,将RSSI保存序列位置R加1,若R超过Rmax,那么设置R=0。
三、数据缓存线程。
1.从中断数据队列头部取出一条定位信号,得到其标签编号I,I是正整数。若取完,本线程结束。
2.通过哈希算法计算记录位置L,L = I % S,%表示取余计算。
3.初始化地址指针c=0。
4.若记录位置L是空闲的,那么在其标签编号位置保存I,在RSSI保存序列的R位置保存RSSI值,跳转到步骤1。
5.检查记录位置L存储的标签编号是否就是I。
6.若是,则在RSSI保存序列的R位置保存RSSI值,跳转到步骤1。
7.将c加1,设置L = (I + c) % S,回到步骤4。
四、数据传输线程。
1.读写器收到定位服务器的数据传输命令,得到其命令序列号CMD_SEQ。定位服务器的数据存储位置从0开始,每次成功收到传输数据包之后,其命令序列号加1,用于下一次发送。
2.若CMD_SEQ与传输序列号SEQ相同,说明定位服务器没有接收到上次的传输数据包,那么跳转到步骤11,重新发送数据。
3.设置SEQ=CMD_SEQ,将传输序列号SEQ拷贝到传输缓冲区。
4.将传输开始位置T保存到传输缓冲区,定位服务器可根据T值,判断RSSI保存队列的最早起始位置。
5.设置传输位置t=T。
6.检查位置t是否有数据。
7.若有,则拷贝位置t的标签记录到传输缓冲区,然后将其标签编号和RSSI保存序列都设置为0,表示空闲。
8.将t加1,若t大于S,则设置t=0,进行下一轮传输。
9.若传输缓冲区不满,并且T不等于t,则回到步骤6。
10.更新传输起始位置T=t。
11.启动数据传输,将传输缓冲区中的数据传输给定位服务器,本线程结束。
本实施例通过上述方法,使用相对有限的计算资源,除非网络堵塞或断网的持续时间超过W,否则读写器都不会遗漏或抛弃收到的定位信号。同时,占用空间非常少,而且缓存标签数量的多寡对读写器处理能力的影响几乎没有。
应用例
目前,国内许多中学(特别是名牌中学)的学生人数都有4、5千,甚至接近1万,有1、2百个教室,而且教室在三维空间上距离都很近。在这种场景下,当学生上课时,大部分读写器周围都可以读取到近5~9个教室里的学生所佩戴的标签,以每个教室50人计,总共约有500个标签。在课间休息时,由于学生大多滞留在楼道上,读取到的标签数量会更多。由于需要在经过通道(比如校门)时也能被周围的读写器可靠读取,所以标签的发射周期不能太短,比如1秒。在这种情况下,每个读写器每秒可以读到500个定位信号,每个定位信号需要至少5个字节的存储空间(4字节的标签编号、1字节的RSSI值,这里还没考虑时间戳所需要占用的存储空间)。若把这些数据直接转发给定位服务器,需要20Kbps带宽,200个读写器就总共需要4Mbps带宽,会给普通10M、100M带宽校园网带来沉重流量压力。
通过本实施例一中的方法,如果每个读写器的过期时间窗口W是8秒,那么与前述普通方案相比,带宽最大可压缩到(4字节+8字节)/(5字节*8)=30%。更重要的是,当带宽堵塞时,超过过期时间窗口的数据会自动被覆盖抛弃,从而在网络环境不佳时,服务器依然能得到最新数据。
实施例二
基于相同的构思,本实施例提供了一种实时定位系统中的数据压缩缓存上传装置,实现实施例一中的实时定位系统中的数据压缩缓存上传方法。请参看图3,该实时定位系统中的数据压缩缓存上传装置包括:
数据采集模块1,用于读写器响应于无线收发器发送的数据采集中断信号,从无线收发器读取定位信号,存放于中断数据队列;该定位信号包括标签编号及RSSI序列值;读写器中的定时器每个嘀嗒触发一次中断;
数据缓存模块2,用于读写器定时读取中断数据队列中的定位信号,获取定位信号的标签编号,通过哈希算法计算得到该定位信号在传输缓冲区中的标签记录数组中的位置,并在相应位置存储该定位信号的RSSI序列值;
数据上传模块3,用于读写器响应于定位服务器发送的数据传输指令,将标签记录数组中的定位信号传输至定位服务器;读写器再次收到数据传输指令后,获取指令序列号,并将该指令序列号与上次的指令序列号比较,若相同,则说明上次数据传输失败,需重新发送;若不同,则将本次收到的指令序列号及传输开始位置拷贝至传输缓冲区,将传输缓存区中的数据传输至定位服务器。
上述数据采集模块1、数据缓存模块2及数据上传模块3的功能设置及实现方式均如上述实施例一所述,在此不再赘述。
实施例三
本实施例提供了一种实时定位系统中的数据压缩缓存上传设备。请参看图4,该实时定位系统中的数据压缩缓存上传设备500可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)510(例如,x86,arm架构处理器或FPGA)和存储器520,一个或一个以上存储应用程序533或数据532的存储介质530(例如一个或一个以上海量存储设备)。其中,存储器520和存储介质530可以是短暂存储或持久存储。存储在存储介质530的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对实时定位系统中的数据压缩缓存上传设备500中的一系列指令操作。
进一步,处理器510可以设置为与存储介质530通信,在实时定位系统中的数据压缩缓存上传设备500上执行存储介质530中的一系列指令操作。
实时定位系统中的数据压缩缓存上传设备500还可以包括一个或一个以上电源540,一个或一个以上有线或无线的网络接口550,一个或一个以上输入输出接口560,和/或,一个或一个以上操作系统531,例如Windows Serve、Vista等等。
本领域技术人员可以理解,图4示出的实时定位系统中的数据压缩缓存上传设备的结构并不构成对实时定位系统中的数据压缩缓存上传设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
本发明的另一实施例还提供了一种计算机可读存储介质。
该计算机可读存储介质可以为非易失性计算机可读存储介质,该计算机可读存储介质也可以为易失性计算机可读存储介质。该计算机可读存储介质中存储有指令,当该指令在计算机上运行时,使得计算机执行实施例一中的实时定位系统中的数据压缩缓存上传设备方法的步骤。
实时定位系统中的数据压缩缓存上传方法若以程序指令的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件的形式体现出来,该计算机软件存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-onlymemory, ROM)、随机存取存储器(Random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
所属领域的技术人员可以清楚地了解到,为描述得方便和简洁,上述描述的系统及设备的具体执行的识别内容,可以参考前述方法实施例中的对应过程。
上面结合附图对本发明的实施方式作了详细说明,但是本发明并不限于上述实施方式。即使对本发明作出各种变化,倘若这些变化属于本发明权利要求及其等同技术的范围之内,则仍落入在本发明的保护范围之中。
Claims (7)
1.一种实时定位系统中的数据压缩缓存上传方法,其特征在于,包括:
数据采集中断线程:读写器响应于无线收发器发送的数据采集中断信号,从无线收发器读取定位信号,存放于中断数据队列;所述定位信号包括标签编号及RSSI序列值;
嘀嗒中断线程:读写器中的定时器每个嘀嗒触发一次中断,用于记录一个标签每次收到的定位信号中的RSSI序列值;
数据缓存线程:读写器定时读取中断数据队列中的定位信号,获取定位信号的标签编号,通过哈希算法计算得到所述定位信号在传输缓冲区中的标签记录数组中的位置,并在相应位置存储所述定位信号的RSSI序列值;
数据传输线程:读写器响应于定位服务器发送的数据传输指令,将标签记录数组中的定位信号传输至定位服务器;读写器再次收到数据传输指令后,获取指令序列号SEQ,并将所述指令序列号SEQ与上次的指令序列号比较,若相同,则说明上次数据传输失败,需重新发送;若不同,则将本次收到的指令序列号及传输开始位置拷贝至传输缓冲区,将传输缓存区中的数据传输至定位服务器;
其中,所述数据缓存线程进一步包括:
A1:从中断数据队列头部取出一条定位信号,得到其标签编号I,I是正整数;
A2:通过哈希算法计算所述定位信号在传输缓冲区中的标签记录数组中的记录位置L:
L = I % S
式中,%表示取余计算,S表示标签记录数组的长度;
A3:初始化地址指针c=0;
A4:若记录位置L是空闲的,那么在其标签编号位置保存I,在RSSI保存序列的位置R保存相应的RSSI值,跳转步骤A1;
A5:检查记录位置L存储的标签编号是否为I,若是,则在RSSI保存序列的位置R保存相应的RSSI值,跳转步骤A1;
A6:将地址指针c加1,设置L = (I + c) % S,跳转步骤A4。
2.如权利要求1所述的实时定位系统中的数据压缩缓存上传方法,其特征在于,读写器根据预设过期时间窗口W,将缓存时间超过所述过期时间W还未传输至定位服务器的数据删除。
3.如权利要求2所述的实时定位系统中的数据压缩缓存上传方法,其特征在于,读写器设置记录一个标签每次收到的定位信号中的RSSI序列值的嘀嗒窗口X为读写器的信号接收时间,该信号接收时间的值小于实时定位系统中所有标签的发送定位信号的最短可能间隔,并且能够被W整除,读写器只保存在一个嘀嗒窗口X内收到的最后一次定位信号的RSSI序列值。
4.如权利要求1所述的实时定位系统中的数据压缩缓存上传方法,其特征在于,数据采集中断线程、嘀嗒中断线程、数据缓存线程和数据传输线程为四个并发线程。
5.如权利要求4所述的实时定位系统中的数据压缩缓存上传方法,其特征在于,所述嘀嗒中断线程进一步包括:
读写器中的定时器每个嘀嗒触发一次中断,在嘀嗒中断线程计数一次,并且在嘀嗒中断线程中,将RSSI保存序列位置R加1,若R超过Rmax,那么设置R=0。
6.如权利要求1所述的实时定位系统中的数据压缩缓存上传方法,其特征在于,所述数据传输线程进一步包括:
B1:初始化传输序列号SEQ;
B2:读写器收到定位服务器的数据传输命令,得到命令序列号CMD_SEQ;所述定位服务器的数据存储位置从0开始,每次成功收到传输数据包之后,其命令序列号加1,用于下一次发送;
B3:若CMD_SEQ与传输序列号SEQ相同,则定位服务器没有接收到上次的传输数据包,跳转步骤B12,重新发送数据;
B4:更新传输序列号SEQ=CMD_SEQ,将传输序列号SEQ拷贝到传输缓冲区;
B5:将传输起始位置T保存到传输缓冲区,定位服务器根据T值,判断RSSI保存队列的最早起始位置;
B6:设置传输位置t=T;
B7:检查位置t是否有数据;
B8:若有,则拷贝位置t的标签记录到传输缓冲区,将标签记录的标签编号和RSSI保存序列都设置为0,表示空闲;
B9:将t加1,若t大于S,则设置t=0,进行下一轮传输;S表示标签记录数组的长度;
B10:若传输缓冲区不满,并且T不等于t,则跳转步骤B7;
B11:更新传输起始位置T= t;
B12:启动数据传输,将传输缓冲区中的数据传输给定位服务器,本线程结束。
7.一种实时定位系统中的数据压缩缓存上传装置,实现上述权利要求1至6中任意一项所述的实时定位系统中的数据压缩缓存上传方法,其特征在于,包括:
数据采集模块,用于读写器响应于无线收发器发送的数据采集中断信号,从无线收发器读取定位信号,存放于中断数据队列;所述定位信号包括标签编号及RSSI序列值;读写器中的定时器每个嘀嗒触发一次中断;
数据缓存模块,用于读写器定时读取中断数据队列中的定位信号,获取定位信号的标签编号,通过哈希算法计算得到所述定位信号在传输缓冲区中的标签记录数组中的位置,并在相应位置存储所述定位信号的RSSI序列值;
数据上传模块,用于读写器响应于定位服务器发送的数据传输指令,将标签记录数组中的定位信号传输至定位服务器;读写器再次收到数据传输指令后,获取指令序列号,并将所述指令序列号与上次的指令序列号比较,若相同,则说明上次数据传输失败,需重新发送;若不同,则将本次收到的指令序列号及传输开始位置拷贝至传输缓冲区,将传输缓存区中的数据传输至定位服务器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310318791.1A CN116033491B (zh) | 2023-03-29 | 2023-03-29 | 实时定位系统中的数据压缩缓存上传方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310318791.1A CN116033491B (zh) | 2023-03-29 | 2023-03-29 | 实时定位系统中的数据压缩缓存上传方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116033491A CN116033491A (zh) | 2023-04-28 |
CN116033491B true CN116033491B (zh) | 2023-07-04 |
Family
ID=86074441
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310318791.1A Active CN116033491B (zh) | 2023-03-29 | 2023-03-29 | 实时定位系统中的数据压缩缓存上传方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116033491B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102075193A (zh) * | 2011-02-11 | 2011-05-25 | 中国科学院软件研究所 | 基于时空关系的rfid事件压缩方法及解压缩方法 |
CN109102042A (zh) * | 2018-07-13 | 2018-12-28 | 成都德杉科技有限公司 | 一种基于特征参数的rfid货品定位管理系统及方法 |
CN109145665A (zh) * | 2018-08-27 | 2019-01-04 | 中国人民解放军32128部队 | 基于rfid的双路处理智能门式通道系统及其处理方法 |
WO2021087990A1 (zh) * | 2019-11-08 | 2021-05-14 | 深圳市欢太科技有限公司 | 标签更新方法、装置、电子设备及存储介质 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010225007A (ja) * | 2009-03-25 | 2010-10-07 | Hitachi Ltd | 情報処理方法、情報処理システムおよびリーダライタ |
US20160054427A1 (en) * | 2013-03-26 | 2016-02-25 | Nokia Technologies Oy | Utilizing shortened derivatives of identifiers of entities of communication systems for retrieving positioning information |
CN103530383A (zh) * | 2013-10-18 | 2014-01-22 | 重庆邮电大学 | 一种用于安全的rfid中间件冗余数据过滤方法 |
US9852074B2 (en) * | 2015-01-12 | 2017-12-26 | Alcatel Lucent | Cache-optimized hash table data structure |
CN105912969B (zh) * | 2016-05-31 | 2018-07-24 | 江苏凯尔消防工程设备有限公司 | 一种具备学习能力的射频定位系统及定位方法 |
US9996471B2 (en) * | 2016-06-28 | 2018-06-12 | Arm Limited | Cache with compressed data and tag |
EP3989137A1 (de) * | 2020-10-21 | 2022-04-27 | Aesculap AG | Sicherstellung single use anwendungen von su produkten mittels dlt/blockchain |
KR102513921B1 (ko) * | 2020-11-19 | 2023-03-23 | 조현성 | Gps 기반 qr 코드를 이용한 위치 확인 서비스 제공 시스템 |
CN113204556A (zh) * | 2021-05-21 | 2021-08-03 | 山东英信计算机技术有限公司 | 基于低位哈希标签的存储方法、系统、终端及存储介质 |
US12004114B2 (en) * | 2021-06-11 | 2024-06-04 | AT&T Intellectual Propety I, L.P. | Geolocation of wireless network users |
-
2023
- 2023-03-29 CN CN202310318791.1A patent/CN116033491B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102075193A (zh) * | 2011-02-11 | 2011-05-25 | 中国科学院软件研究所 | 基于时空关系的rfid事件压缩方法及解压缩方法 |
CN109102042A (zh) * | 2018-07-13 | 2018-12-28 | 成都德杉科技有限公司 | 一种基于特征参数的rfid货品定位管理系统及方法 |
CN109145665A (zh) * | 2018-08-27 | 2019-01-04 | 中国人民解放军32128部队 | 基于rfid的双路处理智能门式通道系统及其处理方法 |
WO2021087990A1 (zh) * | 2019-11-08 | 2021-05-14 | 深圳市欢太科技有限公司 | 标签更新方法、装置、电子设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
RFID包装系统中防冲突算法研究;金迪;;包装工程(01);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN116033491A (zh) | 2023-04-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7616642B2 (en) | Priority assignment and transmission of sensor data | |
CN112202623B (zh) | 一种数据处理方法及装置 | |
Aantjes et al. | Fast downstream to many (computational) RFIDs | |
Li et al. | Goodput optimization via dynamic frame length and charging time adaptation for backscatter communication | |
CN110399224A (zh) | 信息处理方法和电子设备 | |
CN116033491B (zh) | 实时定位系统中的数据压缩缓存上传方法和装置 | |
CN117195934B (zh) | 一种耳标的跟踪方法及养殖数据采集方法 | |
CN113329175A (zh) | 抓拍方法、装置、电子装置和存储介质 | |
KR100829794B1 (ko) | Rfid 시스템에서의 무선태그 인식방법 | |
CN110048865B (zh) | 一种总线数据传输方法、装置、电子设备及存储介质 | |
US20060095518A1 (en) | Software application for modular sensor network node | |
US11062099B1 (en) | System and method for wearable, ubiquitous RFID-enabled sensing | |
CN111669431B (zh) | 消息传输方法、装置、计算机设备和存储介质 | |
WO2021212438A1 (zh) | 数据传输方法、装置、系统、终端设备和存储介质 | |
CN113392667A (zh) | 一种读写器的数据传输方法、数据接收器及存储介质 | |
US20150312861A1 (en) | Method and system for device aware power save | |
CN117112039B (zh) | 一种数据中心的传输优化系统及运行方法 | |
CN115586869B (zh) | 一种自组网系统及自组网系统的流数据处理方法 | |
KR102006703B1 (ko) | Wi-Fi 백스캐터 시스템에서 멀티 태그 접속 방법, Wi-Fi 백스캐터 리더기 및 이를 이용한 Wi-Fi 백스캐터 시스템 | |
CN116343187B (zh) | 电动自行车车牌号智能匹配的方法、装置、设备和介质 | |
CN116405587B (zh) | 一种手机售后性能情况智能监测方法、系统和介质 | |
CN111708997B (zh) | 目标对象身份标识符的确定方法、装置及存储介质 | |
EP4109325A1 (en) | Tag identification and inventory method and apparatus, reader, medium and computer program | |
CN109922490B (zh) | 一种数据防中断持续传输管理系统 | |
CN115514616A (zh) | 一种异地试验训练仿真系统间集成互联可靠传输方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |