Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
I
IC-Interface Control
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Mateus Goto
IC-Interface Control
Commits
69278f17
Commit
69278f17
authored
Jul 19, 2022
by
Mateus Goto
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Updated
parent
4876103a
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
95 additions
and
30 deletions
+95
-30
Control_Interface/controlInterface.py
Control_Interface/controlInterface.py
+42
-2
NHR9400series/NHR9400.py
NHR9400series/NHR9400.py
+14
-19
NHR9400series/NHR9410.py
NHR9400series/NHR9410.py
+4
-1
NHR9400series/NHR9430.py
NHR9400series/NHR9430.py
+18
-2
Utility/IPFinder.py
Utility/IPFinder.py
+2
-5
main.py
main.py
+15
-1
No files found.
Control_Interface/controlInterface.py
View file @
69278f17
from
Utility.IPFinder
import
IPFinder
from
NHR9400series.NHR9410
import
NHR9410
from
NHR9400series.NHR9430
import
NHR9430
class
controlInterface
:
\ No newline at end of file
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
NHR9400series/NHR9400.py
View file @
69278f17
...
...
@@ -11,19 +11,20 @@ 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
)
msg
=
self
.
__out
.
byteToString
(
msg
)
return
msg
#Function that receives messages back and transform it in a float
def
receiveFloat
(
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
"
)
...
...
NHR9400series/NHR9410.py
View file @
69278f17
...
...
@@ -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
NHR9400series/NHR9430.py
View file @
69278f17
from
NHR9400series.NHR9400
import
NHR9400
from
Utility.RefineOutput
import
RefineOutput
class
NHR9430
(
NHR9400
):
...
...
@@ -16,6 +15,21 @@ class NHR9430(NHR9400):
self
.
__s
.
send
(
"SOUR:CURR:BPHase "
+
current
+
"
\n
"
)
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
:
...
...
@@ -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
...
...
Utility/IPFinder.py
View file @
69278f17
...
...
@@ -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
main.py
View file @
69278f17
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
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment