1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
// Copyright (c) 2017, Intel Corporation.
var ocf = require("ocf");
var server = ocf.server;
ocf.device = {
name: "MyOCFServer",
coreSpecVersion: "2.0",
dataModels: "2.5"
}
ocf.platform = {
manufacturerName: "MyManufacturer",
osVersion: "10.0",
model: "Arduino101",
manufacturerURL: "myurl.com",
manufacturerDate: "11-11-2011",
platformVersion: "5.0",
firmwareVersion: "9.0",
supportURL: "myurl.com/support"
}
console.log("Started OCF server");
var MyProperties = {
state: true,
power: 10
}
var resourceInit = {
resourcePath: "/a/light",
resourceTypes: ["core.light"],
interfaces: ["/oic/if/rw"],
discoverable: true,
observable: true,
properties: MyProperties
}
var MyResource = null;
server.register(resourceInit).then(function(resource) {
console.log("Registered resource. UUID: " + ocf.device.uuid);
MyResource = resource;
server.on("retrieve", function(request, observe) {
MyProperties.state = (MyProperties.state) ? false : true;
console.log("on('retrieve'): request.target.resourcePath=" +
request.target.resourcePath + " observe=" + observe);
request.respond(MyProperties).then(function() {
console.log("respond success");
}).catch(function(error) {
console.log("respond error: " + error.name);
});
});
server.on("update", function(request) {
console.log("on('update'): request.target.resourcePath=" + request.target.resourcePath);
if (request.resource.properties) {
console.log("properties.state=" + request.resource.properties.state);
MyProperties.state = request.resource.properties.state;
} else {
console.log("request.properties does not exist");
}
request.respond(MyProperties);
});
}).catch(function(error) {
console.log("Error registering");
});
|