2016-09-28 6 views
-1

Ich habe ein Problem mit meinem Python-Code beim Ausführen meiner C++ Code-Bibliothek. Ich kann nicht herausfinden, ob es der Python-Code tut oder mein C++. Jede Hilfe würde sehr geschätzt werden.C++ Code nicht beendet, wenn in Python verpackt

Hier ist meine cpp

class Led { 
    public: 
    void snowled() 
    { 
     LinuxGPIO gpio23(23); 
     gpio23.SetDirection(true); 
     bool on = true; 
     for (;;) 
     { 
      printf("Switching %s the LED...\n", on ? "on" : "off"); 
      gpio23.SetValue(on); 
      on = !on; 
      sleep(1); 
     } 
    } 
}; 



extern "C" { 
    Led* Led_new(){ return new Led(); } 
    void Led_snowled(Led* led){ led->snowled(); } 
} 

hier meine Python ist #Ich versucht sys.exit() aufrufen, aber es wird nicht verlassen.

import sys 
import time 
from ctypes import cdll 
lib = cdll.LoadLibrary('./snowled.so') 

class Led(object): 

    def __init__(self): 
     self.obj = lib.Led_new() 

    def snowled(self): 
     lib.Led_snowled(self.obj) 

    def sleeper(self): 
     num = float(1) 
     time.sleep(num) 

    def main(self): 
     light = Led() 
     light.snowled() 

    def stop_running(self): 
     try: 
     sys.exit() 
     except: 
     print(sys.exc_info()[0]) 

if __name__=='__main__': 
    Led().main() 
    Led().stop_running() 
+3

Wenn Sie eine kleine Schleife haben, bin ich mir nicht sicher, was Ihre eigentliche Frage ist. –

+0

Bitte fügen Sie Ihrem Code dokumentierende Kommentare hinzu. Dein Python-Skript scheint nicht das zu tun, was du sagst. –

Antwort

0

Der Aufruf sys.exit() tatsächlich eine SystemExit Ausnahme ausgelöst. Ohne Parameter ist der Exit-Status Null.

Warum fangen Sie es?

Verwandte Themen