Nein, Staticmethod sorgt dafür, dass eine Methode statisch wird, also unabhängig von der jeweiligen Instanz der Klasse (daher auch kein self).
Du willst ja gerade, dass read auf die Instanzvariable self.gpib zugreift, mein erster Code macht also das, was du willst.
Verknüpfungsprobleme
hi,
ich bin jetzt soweit, dass ich auf read zugreifen kann. mein problem ist, dass der ausgelesene string der hauptfunktion test.py übergeben wird:
danke
ich bin jetzt soweit, dass ich auf read zugreifen kann. mein problem ist, dass der ausgelesene string der hauptfunktion test.py übergeben wird:
Code: Alles auswählen
#test.py
def Sweep():
commands=[]
commands.append("*rst")
commands.append(":OUTPUT ON")
commands.append(":SYST:BEEP:STAT 0")
commands.append(":SOURCE:DELAY 0.1")
commands.append(":SENS:FUNC \"VOLT:DC\"")
commands.append(":SENS:VOLT:PROT 1.8")
commands.append(":SOUR:CURR:MODE FIX")
commands.append(":SOUR:CURR:Range 1")
commands.append(":SOUR:CURR:LEV 0.1")#+str(i_vdda))
commands.append(":OUTPUT ON")
commands.append(":FORM:ELEM CURR")
Keithley2400.send(commands, read=True)
if __name__=="__main__":
Sweep()
Code: Alles auswählen
#Kethley2400.py
class Keithley_2400(object):
def __init__(self, addr):
self.gpib=[gpibAccessUsb(addr,0)]
def read_2400(self):#Keithley 2400
s=""
arr=cArray(100)
arr[0]='\0'
i=0
for g in self.gpib:
while(i<10000 and ord(arr[0])!=10):
g.read(arr,1)
s+=arr[0]
i+=1
print s
return s
def send(self,commands=False, read=False):
print commands
for g in self.gpib:
for i in range(0,len(commands)):
g.write(commands[i],len(commands[i]))
if read:
value=self.read_2400()
#der wert, der durch den befehl self.read_2400() am interaktiven fenster ausgegeben wird, soll an test.py übergeben werden
def send(commands=False, read=False):
send_commands = Keithley_2400(26).send(commands, read)