如何在每个循环迭代中执行不同类的不同任务?

时间:2014-11-30 16:59:07

标签: python class cycle pid

我有一些代码基本上改变了电机控制器的速度并记录了数据,但是我想现在添加另一个类来包含一个pid控制器,我不知道(因为我是python编程的新手) ),如何在记录数据的同时调用每次迭代并为电机设置不同的值,换句话说,如何组合代码的两个部分:有人可以帮我这个吗?感谢

1 个答案:

答案 0 :(得分:0)

不是将TESTER.onTimer传递给PeriodicTimer构造函数,而是传递一个同时调用TESTER.onTimerPID.update()的函数。您必须拥有PID的实例,就像TESTER Tester的实例一样。

另外,我建议像这样if __name__ == "__main__":(注意main函数和小写局部变量):

def main():
    csv_file = open('DataRecorded.csv', 'wb')
    writer = csv.writer(csv_file)    
    writer.writerow(['Time', 'Current[mA]', 'Voltage[V]', 'Position', 
    'Period', 'CurrentAct[mA]', 'VoltageAct[V]' ])     
    tester = Tester(5) #Change number to 
    timer = PeriodicTimer(0.05, tester.onTimer)
    timer.start()
    raw_input('Monitoring Current and Voltage') # Use input() in Python 3
    IPCON.disconnect()
    csv_file.close()

if __name__ == "__main__":
    main()

您可能应该将{Birckd连接部分移到main()内,但这可能会偏离主题。