スレッドでのプログラミングとロックの使用は初めてです。2つのスレッドがあります。1つはCOMポートからvlauesを読み取り、もう1つはステッピングモーターを制御します。
1つのスレッドで
if stepperb_value != 0: #if stepperb non-zero if stepperb_value > 0: # if positive value self.step_fine(10,11,12,13,step_delay) #step forward else: self.step_fine(13,12,11,10,step_delay) #step backwards if abs(stepperb_value) != 100: time.sleep(10*step_delay*((100/abs(stepperb_value))-1))
(stepperbを変更すると、最後の行でゼロ除算エラーが発生するのを防ぐ必要があります)
COMポートから値を読み取る他のスレッドで
if 'stepperb' in dataraw: outputall_pos = dataraw.find('stepperb') sensor_value = dataraw[(1+outputall_pos+len('stepperb')):].split() print "stepperb" , sensor_value[0] if isNumeric(sensor_value[0]): stepperb_value = int(max(-100,min(100,int(sensor_value[0]))))
どこで(そしてどのような種類のロックが)必要ですか?最初のスレッドは時間に敏感なので、優先する必要があります
よろしく
サイモン