Not able to get the RSSI Monitoring Service to work in Rifidi Version 3.7.0
Posted: Tue Apr 03, 2018 9:59 am
I have a Rifidi app that subscribes to only the RSSIMonitoringService. I cannot get any tagArrived or
tagDeparted events triggered in my testing; testing is done in Eclipse.
The Rifidi setup is version 3.7.0, using Eclipse Juno 64-bit and Esper 5.3.0.
I am running the app in Eclipse on a Windows 10 Pro 64-bit machine.
This app used 2 read zones and one LLRP reader with 3 antennas.
The read zone "Front_Door" uses antenna 1
The read zone "Back_Door" uses antennas 2 and 3
Here are the app properties used by the RSSI Monitoring Service below.
I have tried many variations of these properties with no success.
# windowTime: The timeout that will be used to determine if a tag has gone
# to a new zone. Times less than 5s are not recommended.
# It's used for RSSIMonitoring Service
windowTime =10.0
# countThreshold: The threshold for number of times a tag must be read before
# the readzone it has shown up at will be switched.
# Do not set this to greater than the windowTime divided by the frequency in
# seconds that tag reports will show up as configured by your reader.
# It's used for RSSIMonitoring Service
countThreshold =1
# minAvgRSSIThreshold: The lowest average RSSI that will have to be seen
# before the readzone is switched.
# It's used for RSSIMonitoring Service
minAvgRSSIThreshold =1.0
Here is the _start method in the app:
@Override
public void _start() {
super._start();
//Get all the read zones
HashMap<String, ReadZone> allReadZones = super.getReadZones();
// RSSi
rssiReadZoneSubscriberList = new LinkedList<MyRSSIReadZoneSubscriber>();
//Subscribe allReadZones to rssiMonitoringService
subscribeToRSSIMonitoringService(allReadZones);
}
Here is the code that subscribes to the RSSI Monitoring Service:
public void subscribeToRSSIMonitoringService(HashMap<String, ReadZone> allReadZones){
//Create an instance of the rssi read zone subscriber
MyRSSIReadZoneSubscriber myRSSIReadZoneSubscriber = new MyRSSIReadZoneSubscriber(this);
rssiReadZoneSubscriberList.add(myRSSIReadZoneSubscriber);
getRssiMonitoringService().subscribe(
myRSSIReadZoneSubscriber,
allReadZones,
getWindowTime(),
TimeUnit.SECONDS,
getCountThreshold(),
getMinAvgRSSIThreshold(),
0.0d, true);
logger.info("subscribed all readzones to RSSI Monitor"
+ " and getWindowTime: " + getWindowTime() + ", countThreshold: "
+ getCountThreshold() + ", minAvgRSSIThreshold: " + getMinAvgRSSIThreshold());
}
tagDeparted events triggered in my testing; testing is done in Eclipse.
The Rifidi setup is version 3.7.0, using Eclipse Juno 64-bit and Esper 5.3.0.
I am running the app in Eclipse on a Windows 10 Pro 64-bit machine.
This app used 2 read zones and one LLRP reader with 3 antennas.
The read zone "Front_Door" uses antenna 1
The read zone "Back_Door" uses antennas 2 and 3
Here are the app properties used by the RSSI Monitoring Service below.
I have tried many variations of these properties with no success.
# windowTime: The timeout that will be used to determine if a tag has gone
# to a new zone. Times less than 5s are not recommended.
# It's used for RSSIMonitoring Service
windowTime =10.0
# countThreshold: The threshold for number of times a tag must be read before
# the readzone it has shown up at will be switched.
# Do not set this to greater than the windowTime divided by the frequency in
# seconds that tag reports will show up as configured by your reader.
# It's used for RSSIMonitoring Service
countThreshold =1
# minAvgRSSIThreshold: The lowest average RSSI that will have to be seen
# before the readzone is switched.
# It's used for RSSIMonitoring Service
minAvgRSSIThreshold =1.0
Here is the _start method in the app:
@Override
public void _start() {
super._start();
//Get all the read zones
HashMap<String, ReadZone> allReadZones = super.getReadZones();
// RSSi
rssiReadZoneSubscriberList = new LinkedList<MyRSSIReadZoneSubscriber>();
//Subscribe allReadZones to rssiMonitoringService
subscribeToRSSIMonitoringService(allReadZones);
}
Here is the code that subscribes to the RSSI Monitoring Service:
public void subscribeToRSSIMonitoringService(HashMap<String, ReadZone> allReadZones){
//Create an instance of the rssi read zone subscriber
MyRSSIReadZoneSubscriber myRSSIReadZoneSubscriber = new MyRSSIReadZoneSubscriber(this);
rssiReadZoneSubscriberList.add(myRSSIReadZoneSubscriber);
getRssiMonitoringService().subscribe(
myRSSIReadZoneSubscriber,
allReadZones,
getWindowTime(),
TimeUnit.SECONDS,
getCountThreshold(),
getMinAvgRSSIThreshold(),
0.0d, true);
logger.info("subscribed all readzones to RSSI Monitor"
+ " and getWindowTime: " + getWindowTime() + ", countThreshold: "
+ getCountThreshold() + ", minAvgRSSIThreshold: " + getMinAvgRSSIThreshold());
}