Verknüpfungsprobleme

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Joghurt
User
Beiträge: 877
Registriert: Dienstag 15. Februar 2005, 15:07

Mittwoch 8. November 2006, 11:32

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.
riven
User
Beiträge: 35
Registriert: Mittwoch 27. September 2006, 23:01

Mittwoch 8. November 2006, 11:43

hi,

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)

danke
Antworten