1
1
var bleno = require ( 'bleno' ) ;
2
2
var eddystoneBeacon = require ( 'eddystone-beacon' ) ;
3
+ var webpageCharacteristic = require ( './webpageCharacteristic' ) ;
4
+
5
+ var SERVICE_UUID = 'ae5946d4-e587-4ba8-b6a5-a97cca6affd3' ;
3
6
4
7
/***********************Altering Library Functions**************************/
5
8
/**
6
9
* In order to broadcast in the fatbeacon format, we override several
7
10
* functions in the advertisement-data module of the eddystone-beacon library.
8
11
*/
9
- var AdvertisementData =
12
+ var AdvertisementData =
10
13
require ( 'eddystone-beacon/lib/util/advertisement-data' ) ;
11
14
var Eir = require ( 'eddystone-beacon/lib/util/eir' ) ;
12
15
13
16
var FAT_BEACON_FRAME_TYPE = 0x0e ;
14
17
var MAX_URL_LENGTH = 18 ;
15
- var SERVICE_UUID = 'feaa' ;
18
+ var ADVERTISING_HEADER_UUID = 'feaa' ;
16
19
17
20
/**
18
21
* this patch ensures that the correct Fatbeacon eir flag (0x06) is added
@@ -21,8 +24,8 @@ var SERVICE_UUID = 'feaa';
21
24
AdvertisementData . makeEirData = function ( serviceData ) {
22
25
var eir = new Eir ( ) ;
23
26
eir . addFlags ( 0x06 ) ;
24
- eir . add16BitCompleteServiceList ( [ SERVICE_UUID ] ) ;
25
- eir . addServiceData ( SERVICE_UUID , serviceData ) ;
27
+ eir . add16BitCompleteServiceList ( [ ADVERTISING_HEADER_UUID ] ) ;
28
+ eir . addServiceData ( ADVERTISING_HEADER_UUID , serviceData ) ;
26
29
return eir . buffer ( ) ;
27
30
}
28
31
@@ -33,7 +36,7 @@ AdvertisementData.makeEirData = function(serviceData) {
33
36
*/
34
37
AdvertisementData . makeUrlBuffer = function ( name ) {
35
38
console . log ( `AdvertisementData.makeUrlBuffer called with: ${ name } ` ) ;
36
-
39
+
37
40
var encodedName = Buffer . from ( name ) ;
38
41
if ( encodedName . length > MAX_URL_LENGTH ) {
39
42
throw new Error ( `Encoded Name must be less than ${ MAX_URL_LENGTH } bytes.` +
@@ -50,5 +53,28 @@ AdvertisementData.makeUrlBuffer = function(name) {
50
53
51
54
/*********************************************************/
52
55
56
+ var characteristic = new webpageCharacteristic ( ) ;
57
+ var data = new Buffer . from ( 'Hello World of FatBeacon!' ) ;
58
+ characteristic . onWriteRequest ( data , 0 , null , null ) ;
59
+
60
+ var service = new bleno . PrimaryService ( {
61
+ uuid : SERVICE_UUID ,
62
+ characteristics : [
63
+ characteristic
64
+ ]
65
+ } ) ;
66
+
67
+ bleno . once ( 'advertisingStart' , function ( err ) {
68
+
69
+ if ( err ) {
70
+ throw err ;
71
+ }
72
+
73
+ console . log ( 'on - advertisingStart' ) ;
74
+ bleno . setServices ( [
75
+ service
76
+ ] ) ;
77
+ } ) ;
78
+
53
79
// Start Advertising name.
54
80
eddystoneBeacon . advertiseUrl ( 'New Fatbeacon' ) ;
0 commit comments