Commit b96ab0c6 authored by Mateus Goto's avatar Mateus Goto

[Updated] New array acquisition

parent 60e5851e
......@@ -501,9 +501,16 @@ class NHR9400():
return self.receiveFloat(value)
def getVoltageArray(self):
self.__s.send("FETC:ARR:VOLT?\n".encode())
value = self.__s.recv(1024)
return self.receiveArray(value)
array = []
self.__s.send("SENSe:SWEep:POINts?\n".encode())
points = self.__s.recv(1024)
points = self.receiveFloat(points)
for i in range(int(points/130)):
self.__s.send(("FETC:ARR:VOLT? " + str(i*130) +"\n").encode())
value = self.__s.recv(1024)
value = self.receiveArray(value)
array = array + value
return array
#Fetch the average power of all channels
......
......@@ -16,7 +16,7 @@ def main():
nhr10 = []
nhr30 = []
nhr10 = interface.getNhr9410()
nhr30 = interface.getNhr9430()
#nhr30 = interface.getNhr9430()
for elem in nhr10:
......
......@@ -501,10 +501,16 @@ class NHR9400():
return self.receiveFloat(value)
def getVoltageArray(self):
self.__s.send("FETC:ARR:VOLT?\n".encode())
value = self.__s.recv(1024)
return self.receiveArray(value)
array = []
self.__s.send("SENSe:SWEep:POINts?\n".encode())
points = self.__s.recv(1024)
points = self.receiveFloat(points)
for i in range(int(points/130)):
self.__s.send(("FETC:ARR:VOLT? " + str(i*130) +"\n").encode())
value = self.__s.recv(1024)
value = self.receiveArray(value)
array = array + value
return array
#Fetch the average power of all channels
def getPower(self):
......
......@@ -16,5 +16,9 @@ class GraphConsumer(AsyncWebsocketConsumer):
await self.accept()
for i in range(1000):
await self.send(json.dumps({'value': randint(0,40)}))
await sleep(1)
array = nhr10[0].getVoltageArray()
print(len(array)/10)
for j in range(int(len(array)/4)):
await self.send(json.dumps({'value': array[j*4]}))
await sleep(0.1)
var data_array = []
var label_array = []
var dps = Array(130)
var graph_data = {
type: 'line',
data: {
labels: Array.from(Array(100).keys()),
datasets: [{
label: 'Prototype',
data: data_array,
tension: 0.4,
backgroundColor: 'rgba(255, 99, 132, 0.2)',
borderWidth: 5
}]
},
var myChart = new CanvasJS.Chart("chartContainer",{
title: {
text: "Live Data"
},
axisY: {
gridThickness: 0
},
data: [{
type: "spline",
dataPoints: dps
}]
});
myChart.render();
}
const config = {
type: 'line',
data: graph_data,
bezierCurve: true,
tension: 0.5,
options: {
animations: {
tension: {
duration: 1000,
easing: 'easeInSine',
loop: true
}
},
scales: {
y: { // defining min and max so hiding the dataset does not change scale range
min: 0,
max: 100
},
x: {
type: 'time',
ticks: {
autoSkip: true,
maxTicksLimit: 100
}
}
}
}
};
var socket = new WebSocket('ws://localhost:7000/ws/graph/');
var updateInterval = 500;
const ctx = document.getElementById('myChart').getContext('2d');
const myChart = new Chart(ctx, graph_data, config);
var socket = new WebSocket('ws://localhost:7000/ws/graph/')
socket.onmessage = function(e){
var djangoData = JSON.parse(e.data);
console.log(djangoData.value);
var updatedDps = [];
myChart.options.data[0].dataPoints = [];
for(var i = 0; i < dps.length; i++)
updatedDps.push(djangoData.value[i]);
console.log(djangoData.value[i]);
myChart.options.data[0].dataPoints = updatedDps;
myChart.render();
};
setInterval(function(e){socket.onmessage()}, updateInterval);
\ No newline at end of file
var newGraphData = graph_data.data.datasets[0].data;
if (newGraphData.length > 99){
newGraphData.shift();
}
newGraphData.push(djangoData.value);
console.log(newGraphData);
graph_data.data.datasets[0].data = newGraphData;
myChart.update();
}
......@@ -17,7 +17,7 @@
<div class="row">
<div class="col-10 mx-auto mt-5">
<h1 id="app">{{ text }}</h1>
<canvas id="chartContainer" width="400" height="200"></canvas>
<canvas id="myChart" width="400" height="200"></canvas>
</div>
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment