def On_Instrumentation_StartAnimation():
"""
Syntax : On_Instrumentation_StartAnimation()
Purpose : Fired if the animation is started
Parameters : None
"""
print "----------------------------------------------------------------------------------------"
localtime = time.asctime(time.localtime(time.time()))
global start
start = time.clock()
print "The user entered Animation Mode at local time: ", localtime
print("This data has also been written to 'c:\dSPACE71\cdlog\cdlog.txt'")
threading.Timer(2, ExecuteDemo).start()
ExecuteDemo()
# Printing to the text file
file1 = open('c:\dSPACE71\cdlog\cdlog.txt', 'a')
file1.write("\n----------------------------------------------------------------------------------------")
file1.write("\nThe user entered Animation Mode at local time: ")
file1.write(localtime)
file1.close()
def ExecuteDemo()
.
.
.
Current_value = Current.Read()
localtime = time.asctime(time.localtime(time.time()))
print "The current reading at localtime:", localtime, "is", str(Current_value) + "."
# Printing to the text file
file1 = open('c:\dSPACE71\cdlog\cdlog.txt', 'a')
file1.write("\n----------------------------------------------------------------------------------------")
file1.write("\nThe current reading at localtime: ")
file1.write(localtime)
file1.write(" is: ")
file1.write(str(Current_value))
file1.close()
.
.
.
Как вы можете надеяться, я пытаюсь повторить функцию ExecuteDemo() каждые 2 секунды после вызова функции StartAnimation. Но моя проблема здесь в том, что мой ExecuteDemo() работает только дважды. Как я могу заставить его продолжать повторять? Я что-то упускаю?Python threading.Timer повторяется только один раз
+1 для 'в то время как True:' подхода. На мой взгляд, это намного больше, чем Pythonic, и гораздо более выразительное намерение, которое должно циклироваться бесконечно. 'while breakCondition:' также будет иметь смысл, предполагая, что 'ExecuteDemo' может изменить значение, хранящееся там. –
@ g.d.d.c Причина, по которой у меня есть # или что-то там :) – SuperSaiyan
+1 по тем же причинам. Тем не менее, стоит отметить, что все предлагаемые решения имеют одну и ту же проблему: она не будет составлять 30 итераций в минуту, она будет всегда медленнее. Единственный способ - использовать функцию спящего режима, с временной меткой, которую вы всегда увеличиваете на 2 секунды. – abarnert