Commit 69278f17 authored by Mateus Goto's avatar Mateus Goto

Updated

parent 4876103a
from Utility.IPFinder import IPFinder
from NHR9400series.NHR9410 import NHR9410
from NHR9400series.NHR9430 import NHR9430
class controlInterface:
def __init__(self):
self.__listIp = IPFinder.getList()
self.__listUsedIp = []
self.__nhr9410 = []
self.__nhr9430 = []
#refresh the list of ip
def refresh(self):
self.__listIp = IPFinder.getList()
for ip in self.__listUsedIp:
self.__listIp.remove(ip)
#create a NHR9410 object
def newNhr9410(self):
new = NHR9410
new.__init__()
new.locateIp(self.__listIp)
usedIp = new.getIp()
self.__listIp.remove(usedIp)
self.__listUsedIp.append(usedIp)
self.__nhr9410.append(new)
#create a NHR9430 object
def newNhr9430(self):
new = NHR9430
new.__init__()
new.locateIp(self.__listIp)
usedIp = new.getIp()
self.__listIp.remove(usedIp)
self.__listUsedIp.append(usedIp)
self.__nhr9430.append(new)
def getNhr9410(self):
return self.__nhr9410
def getNhr9430(self):
return self.__nhr9430
......@@ -11,13 +11,14 @@ class NHR9400:
self.__s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
self.__s.settimeout(1)
self.__out = RefineOutput
self.__ip = ""
################################# Configurations ######################################################
@abstractmethod
def locateIp(self):
pass
def getIp(self):
return self.__ip
#Function that receives messages back and transform it in a string
def receiveString(self):
msg = self.__s.recv(1024)
......@@ -37,7 +38,15 @@ class NHR9400:
def checkErrors(self):
self.__s.send("SYST:ERR?\n")
return self.receive()
# Controle do relé de saída do hardware (LIGAR OU DESLIGAR)
# 0 OFF - Instrumento desabilitado
# 1 ON - Instrumento habilitado
def enableOutput(self, value):
if value == 0 or value == 1:
self.__s.send("SOUR:OUTP:ON "+ value + "\n")
else:
print("INVALID INPUT")
################################# Setters and Getters ################################################
#set limit voltage of all phases
def setVoltage(self,voltage):
self.__s.send("SOUR:VOLT " + voltage + "\n")
......@@ -79,20 +88,6 @@ class NHR9400:
value = self.__s.send("FETC:VOLT:CPHase?\n")
return self.receiveFloat(value)
#Fetch the average current of all channels
def getCurrent(self):
value = self.__s.send("FETC:CURR?\n")
return self.receiveFloat(value)
#fetch individual value of current of one channel
def getCurrentA(self):
value = self.__s.send("FETC:CURR:APHase?\n")
return self.receiveFloat(value)
def getCurrentB(self):
value = self.__s.send("FETC:CURR:BPHase?\n")
return self.receiveFloat(value)
def getCurrentC(self):
value = self.__s.send("FETC:CURR:CPHase?\n")
return self.receiveFloat(value)
#Fetch the average power of all channels
def getPower(self):
value = self.__s.send("FETC:POW?\n")
......
......@@ -15,12 +15,15 @@ class NHR9410(NHR9400):
recv = super().receiveString()
if recv.find("NH Research,9410-") != -1: #if find this subtring
self.__ip = client
clients.remove(client)
print("Connection successfully")
break
else:
print("Connection failed 1")
self.__s.close()
except:
print("Connection failed 2")
pass
from NHR9400series.NHR9400 import NHR9400
from Utility.RefineOutput import RefineOutput
class NHR9430(NHR9400):
......@@ -17,6 +16,21 @@ class NHR9430(NHR9400):
def setCurrentC(self, current):
self.__s.send("SOUR:CURR:CPHase " + current + "\n")
#Fetch the average current of all channels
def getCurrent(self):
value = self.__s.send("FETC:CURR?\n")
return self.receiveFloat(value)
#fetch individual value of current of one channel
def getCurrentA(self):
value = self.__s.send("FETC:CURR:APHase?\n")
return self.receiveFloat(value)
def getCurrentB(self):
value = self.__s.send("FETC:CURR:BPHase?\n")
return self.receiveFloat(value)
def getCurrentC(self):
value = self.__s.send("FETC:CURR:CPHase?\n")
return self.receiveFloat(value)
def locateIp(self,clients = []):
for client in clients:
try:
......@@ -26,11 +40,13 @@ class NHR9430(NHR9400):
recv = super().receiveString()
if recv.find("NH Research,9430-") != -1: #if find this subtring
self.__ip = client
clients.remove(client)
print("Connection successfully")
break
else:
print("Connection failed 1")
self.__s.close()
except:
print("Connection failed 2")
pass
......
......@@ -5,10 +5,6 @@ from scapy.all import ARP, Ether, srp
class IPFinder:
def __init__(self):
self.__clients = self.getAllIp()
#uses socket and scapy to scan the entire local network and returns all the IPs adresses of the devices connects in this networok
def __getAllIp(self):
s = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
......@@ -25,7 +21,7 @@ class IPFinder:
ether = Ether(dst="ff:ff:ff:ff:ff:ff")
packet = ether/arp
result = srp(packet, timeout=1, verbose=0)[0]
result = srp(packet, timeout=3,retry = 1, verbose = 0)[0]
clients = []
for sent, received in result:
clients.append({"ip": received.psrc})
......@@ -35,4 +31,5 @@ class IPFinder:
self.__clients.remove(ip)
def getList(self):
self.__getAllIp()
return self.__clients
\ No newline at end of file
from Control_Interface.controlInterface import controlInterface
controlInterface()
\ No newline at end of file
interface = controlInterface
interface.newNhr9410()
interface.newNhr9430()
#interface.newNhr9430()
nhr10 = []
nhr30 = []
nhr10 = interface.getNhr9410()
nhr30 = interface.getNhr9430()
print(nhr10)
print(nhr30)
nhr10[0].getIp
nhr30[0].getIp
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