Esempio n. 1
0
class VehicleServer(UdpServer):

	vehicle = None

	def __init__(self, bindTo = "", port = SERVER_PORT):
		UdpServer.__init__(self, bindTo, port)

		io = DigitalIO()

		mch1 = MCtlChannel(io.getOutput(7), io.getOutput(8))
		mch2 = MCtlChannel(io.getOutput(9), io.getOutput(10))
		mctl = DualChannelMCtl(mch1, mch2)
		self.vehicle  = Vehicle(mctl)

	def dispatch(self, seq, data, clientIp, clientPort):
		print "[%s %s]: %i %s" % (clientIp,clientPort, seq, data)

		try:
			c   = data["msgId"]
			res = { "msgId" : "ok" }

			if c == "fw": 
				print " -> set vehicle to: FORWARD"	
				self.vehicle.fw()
			elif c == "bw": 
				print " -> set vehicle to: BACKWARD"	
				self.vehicle.bw()
			elif c == "le": 
				print " -> set vehicle to: LEFT"	
				self.vehicle.le()
			elif c == "ri": 
				print " -> set vehicle to: RIGHT"	
				self.vehicle.ri()
			elif c == "br": 
				print " -> set vehicle to BREAK"	
				self.vehicle.br()
			else:
				res = { "msgId" : "err", "msg" : "Unknown command" }

			self.respond(clientIp,clientPort, seq, res)

		except Exception as e:
			print e
			res = { "msgId" : "err", "msg" : "Data format mismatch" }
			self.respond(clientIp,clientPort, seq, res)
Esempio n. 2
0
	def __init__(self, bindTo = "", port = SERVER_PORT):
		UdpServer.__init__(self, bindTo, port)

		io = DigitalIO()

		mch1 = MCtlChannel(io.getOutput(7), io.getOutput(8))
		mch2 = MCtlChannel(io.getOutput(9), io.getOutput(10))
		mctl = DualChannelMCtl(mch1, mch2)
		self.vehicle  = Vehicle(mctl)
Esempio n. 3
0
	cs.getScreen().addstr("* - UP \t\tforward\n", RED)
	cs.getScreen().addstr("* - DOWN\tbackward\n", RED)
	cs.getScreen().addstr("* - LEFT\tleft\n", RED)
	cs.getScreen().addstr("* - RIGHT\tright\n", RED)
	cs.getScreen().addstr("* - SPACE\tbreak\n", RED)
	cs.getScreen().addstr("* - q\t\tquit\n", RED)
	cs.getScreen().addstr("**\n\n", RED)

	cur_y = 11;

	io = DigitalIO()

	mch1 = MCtlChannel(io.getOutput(7), io.getOutput(8))
	mch2 = MCtlChannel(io.getOutput(9), io.getOutput(10))
	mctl = DualChannelMCtl(mch1, mch2)
	veh  = Vehicle(mctl)

	while True:

 		max_y, max_x = cs.getScreen().getmaxyx()

		if cur_y >= max_y:
			cs.getScreen().clear()
			cs.getScreen().addstr("** screenwrap **\n", RED)
			cur_y = 2

		c = cs.getScreen().getch()

		cs.getScreen().addstr("-> ", BLUE)

		if c == curses.KEY_UP: