diff --git a/modules/distribution/src/core/samples/connectedcup/component/analytics/src/main/resources/carbonapps/coffee_level/artifacts.xml b/modules/distribution/src/core/samples/connectedcup/component/analytics/src/main/resources/carbonapps/coffee_level/artifacts.xml index 652aab82..8a29b5f2 100644 --- a/modules/distribution/src/core/samples/connectedcup/component/analytics/src/main/resources/carbonapps/coffee_level/artifacts.xml +++ b/modules/distribution/src/core/samples/connectedcup/component/analytics/src/main/resources/carbonapps/coffee_level/artifacts.xml @@ -23,5 +23,6 @@ + diff --git a/modules/distribution/src/core/samples/connectedcup/component/analytics/src/main/resources/carbonapps/coffee_level/coffee_level_publisher/artifact.xml b/modules/distribution/src/core/samples/connectedcup/component/analytics/src/main/resources/carbonapps/coffee_level/coffee_level_publisher/artifact.xml new file mode 100644 index 00000000..c0528d3d --- /dev/null +++ b/modules/distribution/src/core/samples/connectedcup/component/analytics/src/main/resources/carbonapps/coffee_level/coffee_level_publisher/artifact.xml @@ -0,0 +1,22 @@ + + + + + coffee_level_publisher.xml + \ No newline at end of file diff --git a/modules/distribution/src/core/samples/connectedcup/component/analytics/src/main/resources/carbonapps/coffee_level/coffee_level_publisher/coffee_level_publisher.xml b/modules/distribution/src/core/samples/connectedcup/component/analytics/src/main/resources/carbonapps/coffee_level/coffee_level_publisher/coffee_level_publisher.xml new file mode 100644 index 00000000..5a2641a7 --- /dev/null +++ b/modules/distribution/src/core/samples/connectedcup/component/analytics/src/main/resources/carbonapps/coffee_level/coffee_level_publisher/coffee_level_publisher.xml @@ -0,0 +1,25 @@ + + + + + + + + + diff --git a/modules/distribution/src/core/samples/connectedcup/component/ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.connectedcup.realtime.analytics-view/analytics-view.hbs b/modules/distribution/src/core/samples/connectedcup/component/ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.connectedcup.realtime.analytics-view/analytics-view.hbs index 0a7848a4..dfeb700d 100644 --- a/modules/distribution/src/core/samples/connectedcup/component/ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.connectedcup.realtime.analytics-view/analytics-view.hbs +++ b/modules/distribution/src/core/samples/connectedcup/component/ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.connectedcup.realtime.analytics-view/analytics-view.hbs @@ -17,7 +17,7 @@ }} {{unit "cdmf.unit.lib.rickshaw-graph"}} -
+
Temperature
@@ -28,6 +28,19 @@
Time
+ +
+
+
Coffee Level
+
+
+
+
+
+
Time
+
+
+ diff --git a/modules/distribution/src/core/samples/connectedcup/component/ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.connectedcup.realtime.analytics-view/analytics-view.js b/modules/distribution/src/core/samples/connectedcup/component/ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.connectedcup.realtime.analytics-view/analytics-view.js index 4e619a6b..6f9583d2 100644 --- a/modules/distribution/src/core/samples/connectedcup/component/ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.connectedcup.realtime.analytics-view/analytics-view.js +++ b/modules/distribution/src/core/samples/connectedcup/component/ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.connectedcup.realtime.analytics-view/analytics-view.js @@ -35,10 +35,16 @@ function onRequest(context) { if (tokenPair) { token = tokenPair.accessToken; } - websocketEndpoint = websocketEndpoint + "/secured-websocket/org.wso2.iot.devices.temperature/1.0.0?" + websocketEndpoint1 = websocketEndpoint + "/secured-websocket/org.wso2.iot.devices.temperature/1.0.0?" + + "deviceId=" + device.deviceIdentifier + "&deviceType=" + device.type+ "&websocketToken=" + token; + websocketEndpoint2 = websocketEndpoint + "/secured-websocket/org.wso2.iot.devices.coffeelevel/1.0.0?" + "deviceId=" + device.deviceIdentifier + "&deviceType=" + device.type+ "&websocketToken=" + token; var websocketToken= {'name':'websocket-token','value': token, 'path':'/', "maxAge":18000}; response.addCookie(websocketToken); } - return {"device": device, "websocketEndpoint": websocketEndpoint}; + return { + "device": device, + "websocketEndpoint1": websocketEndpoint1, + "websocketEndpoint2": websocketEndpoint2 + }; } \ No newline at end of file diff --git a/modules/distribution/src/core/samples/connectedcup/component/ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.connectedcup.realtime.analytics-view/public/js/device-stats.js b/modules/distribution/src/core/samples/connectedcup/component/ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.connectedcup.realtime.analytics-view/public/js/device-stats.js index 2805d0c4..dc8240c1 100644 --- a/modules/distribution/src/core/samples/connectedcup/component/ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.connectedcup.realtime.analytics-view/public/js/device-stats.js +++ b/modules/distribution/src/core/samples/connectedcup/component/ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.connectedcup.realtime.analytics-view/public/js/device-stats.js @@ -16,23 +16,39 @@ * under the License. */ -var ws; -var graph; -var chartData = []; +var wsConnection1; +var wsConnection2; +var graphForSensorType1; +var graphForSensorType2; +var chartDataSensorType1 = []; +var chartDataSensorType2 = []; + var palette = new Rickshaw.Color.Palette({scheme: "classic9"}); $(window).load(function () { + drawGraph(wsConnection1, "#div-chart", "y_axis", "chart", chartDataSensorType1 + , graphForSensorType1); + drawGraph(wsConnection2, "#div-chart2", "y_axis2", "chart2", chartDataSensorType2 + , graphForSensorType2); +}); + +window.onbeforeunload = function() { + disconnect(wsConnection1); + disconnect(wsConnection2); +}; + +function drawGraph(wsConnection, placeHolder, yAxis, chat, chartData, graph) { var tNow = new Date().getTime() / 1000; for (var i = 0; i < 30; i++) { chartData.push({ - x: tNow - (30 - i) * 15, - y: parseFloat(0) - }); + x: tNow - (30 - i) * 15, + y: parseFloat(0) + }); } graph = new Rickshaw.Graph({ - element: document.getElementById("chart"), - width: $("#div-chart").width() - 50, + element: document.getElementById(chat), + width: $(placeHolder).width() - 50, height: 300, renderer: "line", interpolation: "linear", @@ -41,7 +57,7 @@ $(window).load(function () { series: [{ 'color': palette.color(), 'data': chartData, - 'name': "Temperature" + 'name': "SensorValue" }] }); @@ -58,51 +74,49 @@ $(window).load(function () { orientation: 'left', height: 300, tickFormat: Rickshaw.Fixtures.Number.formatKMBT, - element: document.getElementById('y_axis') + element: document.getElementById(yAxis) }); new Rickshaw.Graph.HoverDetail({ graph: graph, formatter: function (series, x, y) { - var date = '' + moment(x * 1000).format('Do MMM YYYY h:mm:ss a') + ''; + var date = '' + moment.unix(x * 1000).format('Do MMM YYYY h:mm:ss a') + ''; var swatch = ''; return swatch + series.name + ": " + parseInt(y) + '
' + date; } }); - var websocketUrl = $("#div-chart").data("websocketurl"); - connect(websocketUrl) -}); + var sensorType = $(placeHolder).attr("data-sensorType"); + var websocketUrl = $(placeHolder).attr("data-websocketurl"); + connect(wsConnection, websocketUrl, chartData, graph, sensorType); -$(window).unload(function () { - disconnect(); -}); +} //websocket connection -function connect(target) { +function connect(wsConnection, target, chartData, graph, sensorType) { if ('WebSocket' in window) { - ws = new WebSocket(target); + wsConnection = new WebSocket(target); } else if ('MozWebSocket' in window) { - ws = new MozWebSocket(target); + wsConnection = new MozWebSocket(target); } else { console.log('WebSocket is not supported by this browser.'); } - if (ws) { - ws.onmessage = function (event) { + if (wsConnection) { + wsConnection.onmessage = function (event) { var dataPoint = JSON.parse(event.data); chartData.push({ - x: parseInt(dataPoint[4]) / 1000, - y: parseFloat(dataPoint[5]) - }); + x: parseInt(dataPoint[4]) / 1000, + y: parseFloat(dataPoint[5]) + }); chartData.shift(); graph.update(); }; } } -function disconnect() { - if (ws != null) { - ws.close(); - ws = null; +function disconnect(wsConnection) { + if (wsConnection != null) { + wsConnection.close(); + wsConnection = null; } }