def init () :
	print "ok"
	Dialoguemoteur.init()
	#initialisation des thread
	#thread
	global thdb0
	thdb0 = thdpositionner (0,0)
	thdb0.start()
Пример #2
0
def init():
    print "ok"
    Dialoguemoteur.init()
    #initialisation des thread
    #thread
    global thdb0
    thdb0 = thdpositionner(0, 0)
    thdb0.start()
def lirepositionballast (ballast) :
	valeuractuelle = ''
	if (ballast == 0):
		while (len(valeuractuelle)==0):
			Dialoguemoteur.envoyer(1,'G')
			time.sleep(0.1)
			valeuractuelle =  Dialoguemoteur.recevoir(1)
			if (len(valeuractuelle)==3):
				#on doit avoir recut 3byte commencant par 'G'
				if valeuractuelle[0] == 'G':
					valeuractuelle = valeuractuelle[1:3]
				else :
					valeuractuelle = ''
			else : 
				valeuractuelle = ''
		valeuractuelle = ord(valeuractuelle[0])*256+ord(valeuractuelle[1])
		print ("trame recue = G +"+str(valeuractuelle))
		return valeuractuelle
	elif (ballast == 1):
		while (len(valeuractuelle)==0):
			Dialoguemoteur.envoyer(1,'J')
			time.sleep(0.1)
			valeuractuelle =  Dialoguemoteur.recevoir(1)
			if (len(valeuractuelle)==3):
				#on doit avoir recut 3byte commencant par 'J'
				if valeuractuelle[0] == 'J':
					valeuractuelle = valeuractuelle[1:3]
				else :
					valeuractuelle = ''
			else : 
				valeuractuelle = ''
		valeuractuelle = ord(valeuractuelle[0])*256+ord(valeuractuelle[1])
		print ("trame recue = J +"+str(valeuractuelle))
		return valeuractuelle
	else :
		print "erreur lecture position ballast"
		return 0
Пример #4
0
def lirepositionballast(ballast):
    valeuractuelle = ''
    if (ballast == 0):
        while (len(valeuractuelle) == 0):
            Dialoguemoteur.envoyer(1, 'G')
            time.sleep(0.1)
            valeuractuelle = Dialoguemoteur.recevoir(1)
            if (len(valeuractuelle) == 3):
                #on doit avoir recut 3byte commencant par 'G'
                if valeuractuelle[0] == 'G':
                    valeuractuelle = valeuractuelle[1:3]
                else:
                    valeuractuelle = ''
            else:
                valeuractuelle = ''
        valeuractuelle = ord(valeuractuelle[0]) * 256 + ord(valeuractuelle[1])
        print("trame recue = G +" + str(valeuractuelle))
        return valeuractuelle
    elif (ballast == 1):
        while (len(valeuractuelle) == 0):
            Dialoguemoteur.envoyer(1, 'J')
            time.sleep(0.1)
            valeuractuelle = Dialoguemoteur.recevoir(1)
            if (len(valeuractuelle) == 3):
                #on doit avoir recut 3byte commencant par 'J'
                if valeuractuelle[0] == 'J':
                    valeuractuelle = valeuractuelle[1:3]
                else:
                    valeuractuelle = ''
            else:
                valeuractuelle = ''
        valeuractuelle = ord(valeuractuelle[0]) * 256 + ord(valeuractuelle[1])
        print("trame recue = J +" + str(valeuractuelle))
        return valeuractuelle
    else:
        print "erreur lecture position ballast"
        return 0
	def run(self):
		tmp_time0 = time.time()
		tmp_time1 = time.time()
		while not self.Terminated:
			#
			self.valeuractuelle0 = lirepositionballast(0)
			time.sleep(1)
			self.valeuractuelle1 = lirepositionballast(1)
			if (self.valeuractuelle0 < self.parametre0) :
				#avance du piston ballast0
				if (((time.time()-tmp_time0) > 0.1)and (abs(self.parametre0-self.valeuractuelle0)>60)):
					print '#le moteur tourne depuis plus de 0.1Sec et est eloigner'
					if (self.vitesse0 < 245) :
						self.vitesse0 += 10
					tramevitesse = 'K'+chr(0x00)+chr(self.vitesse0)
					print "#la vitesse demandee est de"+str(self.vitesse0)
					Dialoguemoteur.envoyer(1,tramevitesse)
					tmp_time0 = time.time()
				elif (((time.time()-tmp_time0) > 0.1) and (abs(self.parametre0-self.valeuractuelle0)<60) and (abs(self.parametre0-self.valeuractuelle0)>5)) :
					print'#le moteur tourne depuis plus de 0.1S et est proche'
					if (self.vitesse0 > 15) :
						self.vitesse0 -= 10
					elif (self.vitesse0 == 0 ) :
						self.vitesse0 = 5
					tramevitesse = 'K'+chr(0x00)+chr(self.vitesse0)
					Dialoguemoteur.envoyer(1,tramevitesse)
					tmp_time0 = time.time()
				elif (abs(self.parametre0-self.valeuractuelle0) < 5):
					print"#on considere qu'on a atteint la position demandee Ballast0 est corectement positionner"
					tramevitesse = 'K'+chr(0x00)+chr(0x00)
					Dialoguemoteur.envoyer(1,tramevitesse)	
			elif (self.valeuractuelle0 > self.parametre0) :
				#recul du piston ballast0
				if (((time.time()-tmp_time0) > 0.1)and (abs(self.parametre0-self.valeuractuelle0)>60)):
					if (self.vitesse0 < 245) :
						self.vitesse0 += 10
					tramevitesse = 'K'+chr(0x01)+chr(self.vitesse0)
					Dialoguemoteur.envoyer(1,tramevitesse)
					tmp_time0 = time.time()
				elif (((time.time()-tmp_time0) > 0.10) and (abs(self.parametre0-self.valeuractuelle0)<60)and (abs(self.parametre0-self.valeuractuelle0)>5)) :			
					# on se rapproche du point B
					# on diminue la vitesse progressivement
					if (self.vitesse0 > 15) :
						self.vitesse0 -= 10
					elif (self.vitesse0 == 0 ) :
						self.vitesse0 = 5
					tramevitesse = 'K'+chr(0x01)+chr(self.vitesse0)
					Dialoguemoteur.envoyer(1,tramevitesse)
					#on reset le compteur de temps
					tmp_time0 = time.time()
				elif (abs(self.parametre0-self.valeuractuelle0) <5):
					#on considere qu'on a atteint la position demandee ballast0 = ok
					tramevitesse = 'K'+chr(0x01)+chr(0x00)
					Dialoguemoteur.envoyer(1,tramevitesse)	
			elif (self.valeuractuelle0 == self.parametre0) :
				#le ballast 0 est corectement positionner
				tramevitesse = 'K'+chr(0x00)+chr(0x00)
				Dialoguemoteur.envoyer(1,tramevitesse)
			time.sleep(2)
			if (self.valeuractuelle1 < self.parametre1) :
				print"#avance du piston ballast1"
				if (((time.time()-tmp_time1) > 0.1)and (abs(self.parametre1-self.valeuractuelle1)>60)):
					print "#le piston B1 est loin"
					if (self.vitesse1 < 245) :
						self.vitesse1 += 10
					tramevitesse = 'M'+chr(0x00)+chr(self.vitesse1)
					print "#la vitesse demandee est de"+str(self.vitesse1)
					Dialoguemoteur.envoyer(1,tramevitesse)
					tmp_time1 = time.time()
				elif (((time.time()-tmp_time1) > 0.1) and (abs(self.parametre1-self.valeuractuelle1)<60) and (abs(self.parametre1-self.valeuractuelle1)>5)) :
					print "#le piston B1 est proche"
					if (self.vitesse1 > 15) :
						self.vitesse1 -= 10
					elif (self.vitesse1 == 0 ) :
						self.vitesse1 = 5
					tramevitesse = 'M'+chr(0x00)+chr(self.vitesse1)
					Dialoguemoteur.envoyer(1,tramevitesse)
					tmp_time1 = time.time()
				elif (abs(self.parametre1-self.valeuractuelle1) < 5):
					print"#on considere qu'on a atteint la position demandee Ballast1 est corectement positionner"
					tramevitesse = 'M'+chr(0x00)+chr(0x00)
					Dialoguemoteur.envoyer(1,tramevitesse)	
			elif (self.valeuractuelle1 > self.parametre1) :
				print"#recul du piston ballast1"
				if (((time.time()-tmp_time1) > 0.1)and (abs(self.parametre1-self.valeuractuelle1)>60)):
					if (self.vitesse1 < 255) :
						self.vitesse1 += 10
					tramevitesse = 'M'+chr(0x01)+chr(self.vitesse1)
					Dialoguemoteur.envoyer(1,tramevitesse)
					tmp_time1 = time.time()
				elif (((time.time()-tmp_time1) > 0.10) and (abs(self.parametre1-self.valeuractuelle1)<60)and (abs(self.parametre1-self.valeuractuelle1)>5)) :			
					# on se rapproche du point B
					# on diminue la vitesse progressivement
					if (self.vitesse1 > 15) :
						self.vitesse1 -= 10
					elif (self.vitesse1 == 0 ) :
						self.vitesse1 = 5
					tramevitesse = 'M'+chr(0x01)+chr(self.vitesse1)
					Dialoguemoteur.envoyer(1,tramevitesse)
					#on reset le compteur de temps
					tmp_time1 = time.time()
				elif (abs(self.parametre1-self.valeuractuelle1) <5):
					#on considere qu'on a atteint la position demandee ballast1 = ok
					tramevitesse = 'M'+chr(0x01)+chr(0x00)
					Dialoguemoteur.envoyer(1,tramevitesse)	
			elif (self.valeuractuelle1 == self.parametre1) :
				#
				tramevitesse = 'M'+chr(0x00)+chr(0x00)
				Dialoguemoteur.envoyer(1,tramevitesse)

		print "le thread est terminer correctement"
Пример #6
0
    def run(self):
        tmp_time0 = time.time()
        tmp_time1 = time.time()
        while not self.Terminated:
            #
            self.valeuractuelle0 = lirepositionballast(0)
            time.sleep(1)
            self.valeuractuelle1 = lirepositionballast(1)
            if (self.valeuractuelle0 < self.parametre0):
                #avance du piston ballast0
                if (((time.time() - tmp_time0) > 0.1) and
                    (abs(self.parametre0 - self.valeuractuelle0) > 60)):
                    print '#le moteur tourne depuis plus de 0.1Sec et est eloigner'
                    if (self.vitesse0 < 245):
                        self.vitesse0 += 10
                    tramevitesse = 'K' + chr(0x00) + chr(self.vitesse0)
                    print "#la vitesse demandee est de" + str(self.vitesse0)
                    Dialoguemoteur.envoyer(1, tramevitesse)
                    tmp_time0 = time.time()
                elif (((time.time() - tmp_time0) > 0.1)
                      and (abs(self.parametre0 - self.valeuractuelle0) < 60)
                      and (abs(self.parametre0 - self.valeuractuelle0) > 5)):
                    print '#le moteur tourne depuis plus de 0.1S et est proche'
                    if (self.vitesse0 > 15):
                        self.vitesse0 -= 10
                    elif (self.vitesse0 == 0):
                        self.vitesse0 = 5
                    tramevitesse = 'K' + chr(0x00) + chr(self.vitesse0)
                    Dialoguemoteur.envoyer(1, tramevitesse)
                    tmp_time0 = time.time()
                elif (abs(self.parametre0 - self.valeuractuelle0) < 5):
                    print "#on considere qu'on a atteint la position demandee Ballast0 est corectement positionner"
                    tramevitesse = 'K' + chr(0x00) + chr(0x00)
                    Dialoguemoteur.envoyer(1, tramevitesse)
            elif (self.valeuractuelle0 > self.parametre0):
                #recul du piston ballast0
                if (((time.time() - tmp_time0) > 0.1) and
                    (abs(self.parametre0 - self.valeuractuelle0) > 60)):
                    if (self.vitesse0 < 245):
                        self.vitesse0 += 10
                    tramevitesse = 'K' + chr(0x01) + chr(self.vitesse0)
                    Dialoguemoteur.envoyer(1, tramevitesse)
                    tmp_time0 = time.time()
                elif (((time.time() - tmp_time0) > 0.10)
                      and (abs(self.parametre0 - self.valeuractuelle0) < 60)
                      and (abs(self.parametre0 - self.valeuractuelle0) > 5)):
                    # on se rapproche du point B
                    # on diminue la vitesse progressivement
                    if (self.vitesse0 > 15):
                        self.vitesse0 -= 10
                    elif (self.vitesse0 == 0):
                        self.vitesse0 = 5
                    tramevitesse = 'K' + chr(0x01) + chr(self.vitesse0)
                    Dialoguemoteur.envoyer(1, tramevitesse)
                    #on reset le compteur de temps
                    tmp_time0 = time.time()
                elif (abs(self.parametre0 - self.valeuractuelle0) < 5):
                    #on considere qu'on a atteint la position demandee ballast0 = ok
                    tramevitesse = 'K' + chr(0x01) + chr(0x00)
                    Dialoguemoteur.envoyer(1, tramevitesse)
            elif (self.valeuractuelle0 == self.parametre0):
                #le ballast 0 est corectement positionner
                tramevitesse = 'K' + chr(0x00) + chr(0x00)
                Dialoguemoteur.envoyer(1, tramevitesse)
            time.sleep(2)
            if (self.valeuractuelle1 < self.parametre1):
                print "#avance du piston ballast1"
                if (((time.time() - tmp_time1) > 0.1) and
                    (abs(self.parametre1 - self.valeuractuelle1) > 60)):
                    print "#le piston B1 est loin"
                    if (self.vitesse1 < 245):
                        self.vitesse1 += 10
                    tramevitesse = 'M' + chr(0x00) + chr(self.vitesse1)
                    print "#la vitesse demandee est de" + str(self.vitesse1)
                    Dialoguemoteur.envoyer(1, tramevitesse)
                    tmp_time1 = time.time()
                elif (((time.time() - tmp_time1) > 0.1)
                      and (abs(self.parametre1 - self.valeuractuelle1) < 60)
                      and (abs(self.parametre1 - self.valeuractuelle1) > 5)):
                    print "#le piston B1 est proche"
                    if (self.vitesse1 > 15):
                        self.vitesse1 -= 10
                    elif (self.vitesse1 == 0):
                        self.vitesse1 = 5
                    tramevitesse = 'M' + chr(0x00) + chr(self.vitesse1)
                    Dialoguemoteur.envoyer(1, tramevitesse)
                    tmp_time1 = time.time()
                elif (abs(self.parametre1 - self.valeuractuelle1) < 5):
                    print "#on considere qu'on a atteint la position demandee Ballast1 est corectement positionner"
                    tramevitesse = 'M' + chr(0x00) + chr(0x00)
                    Dialoguemoteur.envoyer(1, tramevitesse)
            elif (self.valeuractuelle1 > self.parametre1):
                print "#recul du piston ballast1"
                if (((time.time() - tmp_time1) > 0.1) and
                    (abs(self.parametre1 - self.valeuractuelle1) > 60)):
                    if (self.vitesse1 < 255):
                        self.vitesse1 += 10
                    tramevitesse = 'M' + chr(0x01) + chr(self.vitesse1)
                    Dialoguemoteur.envoyer(1, tramevitesse)
                    tmp_time1 = time.time()
                elif (((time.time() - tmp_time1) > 0.10)
                      and (abs(self.parametre1 - self.valeuractuelle1) < 60)
                      and (abs(self.parametre1 - self.valeuractuelle1) > 5)):
                    # on se rapproche du point B
                    # on diminue la vitesse progressivement
                    if (self.vitesse1 > 15):
                        self.vitesse1 -= 10
                    elif (self.vitesse1 == 0):
                        self.vitesse1 = 5
                    tramevitesse = 'M' + chr(0x01) + chr(self.vitesse1)
                    Dialoguemoteur.envoyer(1, tramevitesse)
                    #on reset le compteur de temps
                    tmp_time1 = time.time()
                elif (abs(self.parametre1 - self.valeuractuelle1) < 5):
                    #on considere qu'on a atteint la position demandee ballast1 = ok
                    tramevitesse = 'M' + chr(0x01) + chr(0x00)
                    Dialoguemoteur.envoyer(1, tramevitesse)
            elif (self.valeuractuelle1 == self.parametre1):
                #
                tramevitesse = 'M' + chr(0x00) + chr(0x00)
                Dialoguemoteur.envoyer(1, tramevitesse)

        print "le thread est terminer correctement"