A version of the BLE beacon scanner that uses the Vert.x framework
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.



A version of the BLE beacon scanner that uses the Vert.x framework


First clone and build the native scanner integration. Its README.md documents the required package installations. https://github.com/RHioTResearch/BeaconScannerJNI

Optionally, if you have an LCD display attached to the scanner and what to use it, clone and install the LCDDisplays project. https://github.com/RHioTResearch/LCDDisplays.git

Next, clone and install the BaseBeaconScanner jars https://github.com/RHioTResearch/BaseBeaconScanner

Next, clone and package the VertxBeaconScanner https://github.com/RHioTResearch/VertxBeaconScanner


Finally, run the scanner using target/VertxScanner-1.0.0-SNAPSHOT.jar fat jar produced by the package phase. A typical command line is something like:

java -Djava.library.path=/usr/local/lib -jar target/VertxScanner-1.0.0-SNAPSHOT.jar -username demo-user -password 2015-summit-user -brokerURL amqp://

Alternatively, you can use a scanner.conf file in either the current directory, or the user home directory and place properties there. An example scanner.conf is:

root@pi2-devzone:~/VertxBeaconScanner# cat ../scanner.conf 

This would be used via a command line like:

root@pi2-devzone:~/VertxBeaconScanner# java -Djava.library.path=/usr/local/lib -jar target/VertxScanner-1.0.0-SNAPSHOT.jar -useScannerConf


The current command arguments are:

	java -jar target/VertxScanner-1.0.0-SNAPSHOT.jar -help
	Usage: <main class> [options]
			 Specify the number of seconds in the analyzeMode time window, default is
			 Default: 1
			 Run the scanner in a mode that simply collects beacon readings and
			 reports unique beacons seen in a time window
			 Default: false
			 Indicate that the parsed beacons should be published using async delivery
			 Default: false
			 Specify a maxium number of events the scanner should combine before
			 sending to broker; default 0 means no batching
			 Default: 0
			 Simply monitor the raw heartbeat beacon events and publish them to the
			 Default: false
			 Address to broadcast scanner status to as backup to statusQueue if
			 non-empty; default empty
			 Port to broadcast scanner status to as backup to statusQueue if
			 non-empty; default 12345
			 Default: 12345
			 Specify the source of the beacon id to user name mapping. The following
			 formats are understood:
					string of id1=user1,id2=user2,... mappingsfile:path to
								 java properties file with beaconid=userid mappings
			 Specify the brokerURL to connect to the msg broker with; default
			 Default: tcp://localhost:1883
			 Specify the clientID to connect to the msg broker with
			 Default: <empty string>
			 Specify the name of the destination on the msg broker to publish to;
			 default beaconEvents
			 Default: beaconEvents
			 Specify the name of the host controller interface to use; default hci0
			 Default: hci0
			 Specify the UUID of the beacon used to signal the scanner heartbeat event
			 Default: <empty string>
		-help, -h, -?
			 Default: false
			 Specify the LcdDisplayType enum for the LCD implementation to use;
			 default PCD8544
			 Default: PCD8544
			 Don't try to reconnect to the broker on failure, just exit
			 Default: false
			 Indicate that the hcidump stream should not be parsed, just made
			 Default: false
			 Specify the sshPassword to connect to the msg broker with
			 Specify the MsgPublisherType enum for the publisher implementation to
			 use; default AMQP_QPID
			 Default: AMQP_QPID
			 Specify the ID of the scanner reading the beacon events. If this is a
			 string with a comma separated list of names, the scanner will cycle through
			 them. If this is the string {IP}, the host ip address will be used.
			 Default: {IP}
			 Don't publish the heartbeat messages. Useful to limit the noise when
			 testing the scanner.
			 Default: false
			 Indicate that the parsed beacons should not be published
			 Default: false
			 Skip the scanner view display of closest beacon
			 Default: false
			 Specify the name of the status health destination; default scannerHealth
			 Default: scannerHealth
			 Specify the interval in seconds between health status messages, <= 0
			 means no messages; default 30
			 Default: 30
			 Specify whether destination is a queue; default false == destination is a
			 Default: false
			 Load the scanner.conf file and populate the command line args from it.
			 Searches current dir and home dir.
			 Default: false
			 Specify the sshUsername to connect to the msg broker with