Commit b96ab0c6 authored by Mateus Goto's avatar Mateus Goto

[Updated] New array acquisition

parent 60e5851e
...@@ -501,9 +501,16 @@ class NHR9400(): ...@@ -501,9 +501,16 @@ class NHR9400():
return self.receiveFloat(value) return self.receiveFloat(value)
def getVoltageArray(self): def getVoltageArray(self):
self.__s.send("FETC:ARR:VOLT?\n".encode()) array = []
value = self.__s.recv(1024) self.__s.send("SENSe:SWEep:POINts?\n".encode())
return self.receiveArray(value) 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 #Fetch the average power of all channels
......
...@@ -16,7 +16,7 @@ def main(): ...@@ -16,7 +16,7 @@ def main():
nhr10 = [] nhr10 = []
nhr30 = [] nhr30 = []
nhr10 = interface.getNhr9410() nhr10 = interface.getNhr9410()
nhr30 = interface.getNhr9430() #nhr30 = interface.getNhr9430()
for elem in nhr10: for elem in nhr10:
......
...@@ -501,10 +501,16 @@ class NHR9400(): ...@@ -501,10 +501,16 @@ class NHR9400():
return self.receiveFloat(value) return self.receiveFloat(value)
def getVoltageArray(self): def getVoltageArray(self):
self.__s.send("FETC:ARR:VOLT?\n".encode()) array = []
value = self.__s.recv(1024) self.__s.send("SENSe:SWEep:POINts?\n".encode())
return self.receiveArray(value) 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 #Fetch the average power of all channels
def getPower(self): def getPower(self):
......
...@@ -16,5 +16,9 @@ class GraphConsumer(AsyncWebsocketConsumer): ...@@ -16,5 +16,9 @@ class GraphConsumer(AsyncWebsocketConsumer):
await self.accept() await self.accept()
for i in range(1000): for i in range(1000):
await self.send(json.dumps({'value': randint(0,40)})) array = nhr10[0].getVoltageArray()
await sleep(1) 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: { const config = {
text: "Live Data"
},
axisY: {
gridThickness: 0
},
data: [{
type: "spline",
dataPoints: dps
}]
});
myChart.render();
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/'); const ctx = document.getElementById('myChart').getContext('2d');
var updateInterval = 500; const myChart = new Chart(ctx, graph_data, config);
var socket = new WebSocket('ws://localhost:7000/ws/graph/')
socket.onmessage = function(e){ socket.onmessage = function(e){
var djangoData = JSON.parse(e.data); var djangoData = JSON.parse(e.data);
console.log(djangoData.value);
var updatedDps = []; var newGraphData = graph_data.data.datasets[0].data;
myChart.options.data[0].dataPoints = []; if (newGraphData.length > 99){
newGraphData.shift();
for(var i = 0; i < dps.length; i++) }
updatedDps.push(djangoData.value[i]);
console.log(djangoData.value[i]); newGraphData.push(djangoData.value);
console.log(newGraphData);
myChart.options.data[0].dataPoints = updatedDps;
myChart.render(); graph_data.data.datasets[0].data = newGraphData;
}; myChart.update();
setInterval(function(e){socket.onmessage()}, updateInterval);
\ No newline at end of file }
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
<div class="row"> <div class="row">
<div class="col-10 mx-auto mt-5"> <div class="col-10 mx-auto mt-5">
<h1 id="app">{{ text }}</h1> <h1 id="app">{{ text }}</h1>
<canvas id="chartContainer" width="400" height="200"></canvas> <canvas id="myChart" width="400" height="200"></canvas>
</div> </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