複数の列車を制御 [python]
昨日ご紹介した列車制御を各列車に適応させるには昨日のループを
各列車に対してループjを回せば良いことになります。
for j in range(len(trainList)):
___for i in range(24):
______self.ichi = memories.getMemory(memoriList[i]).getValue()
______if self.ichi == trainList[j]:
_________if (i == 0) and (memories.getMemory(memoriList[23]).getValue() == trainList[j]):
____________i = 23
_________self.singo = singoList[i]
_________self.iro = signals.getSignalHead(self.singo).getAppearanceName()
_________break
___if self.singo == '':
______self.iro = 'Red'
___if self.iro == 'Green':
______self.sp = 1
___elif self.iro == 'Yellow':
______self.sp = 0.5
___elif self.iro == 'Red':
______self.sp = 0
___print trainList[j], i, self.singo, self.iro, sensors.getSensor(sensList[i]).state, self.sp
___self.throttle = self.getThrottle(int(trainList[j]), False)
___self.throttle.speedSetting = self.sp
___self.singo = ''
trainList = ['7', '11', '31', '21', '22']
新しい車両が入線したら、trainListにDCCアドレスを追加すればOKです。
このルーチンが一周すれば、全列車に対して1回、前方の信号現示を確認して、スピードを調整することになります。
ですので、クラスの定義のところにあった
def handle(self):
___……
___return 1
の___……にさっきのループを書けば、クラスを実行したときに無限に回り続けます。
ただ、これでやるとThread monitorで見るとものすごい速さで回り続けていることが分かります。
全列車止まっていても、意味も無く回っています。マシンパワーが。。。。
ですので、このループを回すのは信号が変わったときだけで良いのです。
さて、どうしましょうか。
各列車に対してループjを回せば良いことになります。
for j in range(len(trainList)):
___for i in range(24):
______self.ichi = memories.getMemory(memoriList[i]).getValue()
______if self.ichi == trainList[j]:
_________if (i == 0) and (memories.getMemory(memoriList[23]).getValue() == trainList[j]):
____________i = 23
_________self.singo = singoList[i]
_________self.iro = signals.getSignalHead(self.singo).getAppearanceName()
_________break
___if self.singo == '':
______self.iro = 'Red'
___if self.iro == 'Green':
______self.sp = 1
___elif self.iro == 'Yellow':
______self.sp = 0.5
___elif self.iro == 'Red':
______self.sp = 0
___print trainList[j], i, self.singo, self.iro, sensors.getSensor(sensList[i]).state, self.sp
___self.throttle = self.getThrottle(int(trainList[j]), False)
___self.throttle.speedSetting = self.sp
___self.singo = ''
trainList = ['7', '11', '31', '21', '22']
新しい車両が入線したら、trainListにDCCアドレスを追加すればOKです。
このルーチンが一周すれば、全列車に対して1回、前方の信号現示を確認して、スピードを調整することになります。
ですので、クラスの定義のところにあった
def handle(self):
___……
___return 1
の___……にさっきのループを書けば、クラスを実行したときに無限に回り続けます。
ただ、これでやるとThread monitorで見るとものすごい速さで回り続けていることが分かります。
全列車止まっていても、意味も無く回っています。マシンパワーが。。。。
ですので、このループを回すのは信号が変わったときだけで良いのです。
さて、どうしましょうか。
2013-05-04 00:00
nice!(1)
コメント(1)
トラックバック(0)
沒有醫生的處方
cialis generika in deutschland kaufen http://cialisyoues.com/ Generic for cialis
by Cialis 20 mg (2018-04-14 19:34)