Ich habe versucht, Python mit der Pyserial-Bibliothek zu einem Arduino zu kommunizieren. Im folgenden Code zeige ich nur einige Funktionen, von denen ich versuche, die LED basierend auf dem von diesen Funktionen zurückgegebenen Wert ein- oder auszuschalten. Was ich tun möchte, ist, wenn Python sagt, die LED einzuschalten, ich möchte, dass LED für 7 Sekunden eingeschaltet wird, aber während dieser Zeit, wenn set_forbidden_list
irgendeinen Wert zurückgibt, möchte ich die LED sofort ausschalten und sie ausgeschaltet lassen bis set_forbidden_list
wird leer. Jede Hilfe wird sehr geschätzt.mit Verzögerung zwischen Aktionen
def openthedoor(set_accepted_list,set_list_ant_id,set_forbidden_list,set_accepted_list_frozen):
if(((len(set_accepted_list)) >0) & (set_forbidden_list == set()) & ((set_accepted_list_frozen == None) or ((set_accepted_list_frozen & set_accepted_list)== set_accepted_list))):
use_door(1)
delay_for_goodant(1)
print "open the gate"
else:
use_door(0)
delay_for_goodant(0)
print "close the gate"
set_for_comparison = set(set_accepted_list & set_list_ant_id)
list_for_comparison = list(set_for_comparison)
return set_for_comparison,list_for_comparison
def establishing_connection():
print ser.read();
ser.write('1')
last_action = -1
def use_door(activate):
global last_action
if(last_action != activate):
send_data(activate)
last_action = activate
def send_data(data):
if (data ==0):
print "manga"
return True
else:
print "muringa"
return False
def delay_for_goodant(data):
print "thenga"
global ser
try:
if (ser == None):
ser = serial.Serial("COM1",9600,timeout = 0)
print "reconnect"
incoming_data = ser.readline()
else: ## for turning off the LED
ser.write('0')
time.sleep(0)
incoming_data2 = ser.readline()
except IOError:
ser = None
funktioniert das auch ähnlich wie time.sleep(). Das System schläft für 7 Sekunden. In der Schlafzeit, wenn 'set_forbidden_list' einen Wert zurückgibt, wird die LED nicht gedimmt. – mudaliyar