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)
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)
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: