Пример #1
0
def setup():  #initialization
    motor.setup()
    turn.ahead()
    findline.setup()
Пример #2
0
def run():
    global direction_command, turn_command, pos_input, catch_input, cir_input, ultrasonicMode, FindLineMode, FindColorMode
    move.setup()
    findline.setup()

    info_threading=threading.Thread(target=info_send_client)    #Define a thread for FPV and OpenCV
    info_threading.setDaemon(True)                             #'True' means it is a front thread,it would close when the mainloop() closes
    info_threading.start()                                     #Thread starts

    ultra_threading=threading.Thread(target=ultra_send_client)    #Define a thread for FPV and OpenCV
    ultra_threading.setDaemon(True)                             #'True' means it is a front thread,it would close when the mainloop() closes
    ultra_threading.start()                                     #Thread starts

    findline_threading=threading.Thread(target=findline_thread)    #Define a thread for FPV and OpenCV
    findline_threading.setDaemon(True)                             #'True' means it is a front thread,it would close when the mainloop() closes
    findline_threading.start()                                     #Thread starts
    #move.stand()

    ws_R = 0
    ws_G = 0
    ws_B = 0

    Y_pitch = 0
    Y_pitch_MAX = 200
    Y_pitch_MIN = -200

    while True: 
        data = ''
        data = str(tcpCliSock.recv(BUFSIZ).decode())
        if not data:
            continue
        elif 'forward' == data:
            direction_command = 'forward'
            move.move(speed_set, direction_command, turn_command, rad)
        elif 'backward' == data:
            direction_command = 'backward'
            move.move(speed_set, direction_command, turn_command, rad)
        elif 'DS' in data:
            direction_command = 'no'
            move.move(speed_set, direction_command, turn_command, rad)

        elif 'left' == data:
            turn_command = 'left'
            move.move(speed_set, direction_command, turn_command, rad)
        elif 'right' == data:
            turn_command = 'right'
            move.move(speed_set, direction_command, turn_command, rad)
        elif 'TS' in data:
            turn_command = 'no'
            move.move(speed_set, direction_command, turn_command, rad)

        elif 'out' == data:
            if pos_input < 17:
                pos_input+=1
            servo.hand_pos(pos_input)
        elif 'in' == data:
            if pos_input > 1:
                pos_input-=1
            servo.hand_pos(pos_input)

        elif 'headup' == data:
            servo.camera_ang('lookup',0)
        elif 'headdown' == data:
            servo.camera_ang('lookdown',0)
        elif 'headhome' == data:
            servo.initPosAll()

        elif 'c_left' == data:
            if cir_input < 12:
                cir_input+=1
            servo.cir_pos(cir_input)
        elif 'c_right' == data:
            if cir_input > 1:
                cir_input-=1
            servo.cir_pos(cir_input)

        elif 'catch' == data:
            if catch_input < 13:
                catch_input+=1
            servo.catch(catch_input)
        elif 'loose' == data:
            if catch_input > 1:
                catch_input-=1
            servo.catch(catch_input)

        elif 'wsR' in data:
            try:
                set_R=data.split()
                ws_R = int(set_R[1])
                LED.colorWipe(ws_R,ws_G,ws_B)
            except:
                pass
        elif 'wsG' in data:
            try:
                set_G=data.split()
                ws_G = int(set_G[1])
                LED.colorWipe(ws_R,ws_G,ws_B)
            except:
                pass
        elif 'wsB' in data:
            try:
                set_B=data.split()
                ws_B = int(set_B[1])
                LED.colorWipe(ws_R,ws_G,ws_B)
            except:
                pass

        elif 'FindColor' in data:
            fpv.FindColor(1)
            FindColorMode = 1
            ultrasonicMode = 1
            tcpCliSock.send(('FindColor').encode())

        elif 'WatchDog' in data:
            fpv.WatchDog(1)
            tcpCliSock.send(('WatchDog').encode())

        elif 'steady' in data:
            ultrasonicMode = 1
            tcpCliSock.send(('steady').encode())

        elif 'FindLine' in data:
            FindLineMode = 1
            tcpCliSock.send(('FindLine').encode())

        elif 'funEnd' in data:
            fpv.FindColor(0)
            fpv.WatchDog(0)
            ultrasonicMode = 0
            FindLineMode   = 0
            FindColorMode  = 0
            tcpCliSock.send(('FunEnd').encode())
            move.motorStop()
            time.sleep(0.3)
            move.motorStop()

        else:
            pass
Пример #3
0
def run():
    global direction_command, turn_command, pos_input, catch_input, cir_input, ultrasonicMode, FindLineMode, FindColorMode
    move.setup()
    findline.setup()

    info_threading = threading.Thread(
        target=info_send_client)  # Define a thread for FPV and OpenCV
    info_threading.setDaemon(
        True
    )  #'True' means it is a front thread,it would close when the mainloop() closes
    info_threading.start()  # Thread starts

    ultra_threading = threading.Thread(
        target=ultra_send_client)  # Define a thread for FPV and OpenCV
    ultra_threading.setDaemon(
        True
    )  #'True' means it is a front thread,it would close when the mainloop() closes
    ultra_threading.start()  # Thread starts

    findline_threading = threading.Thread(
        target=findline_thread)  # Define a thread for FPV and OpenCV
    findline_threading.setDaemon(
        True
    )  #'True' means it is a front thread,it would close when the mainloop() closes
    findline_threading.start()  # Thread starts
    # move.stand()

    ws_R = 0
    ws_G = 0
    ws_B = 0

    Y_pitch = 0
    Y_pitch_MAX = 200
    Y_pitch_MIN = -200

    while True:
        data = ""
        data = str(tcpCliSock.recv(BUFSIZ).decode())
        if not data:
            continue
        elif "forward" == data:
            direction_command = "forward"
            move.move(speed_set, direction_command, turn_command, rad)
        elif "backward" == data:
            direction_command = "backward"
            move.move(speed_set, direction_command, turn_command, rad)
        elif "DS" in data:
            direction_command = "no"
            move.move(speed_set, direction_command, turn_command, rad)

        elif "left" == data:
            turn_command = "left"
            move.move(speed_set, direction_command, turn_command, rad)
        elif "right" == data:
            turn_command = "right"
            move.move(speed_set, direction_command, turn_command, rad)
        elif "TS" in data:
            turn_command = "no"
            move.move(speed_set, direction_command, turn_command, rad)

        elif "out" == data:
            if pos_input < 17:
                pos_input += 1
            servo.hand_pos(pos_input)
        elif "in" == data:
            if pos_input > 1:
                pos_input -= 1
            servo.hand_pos(pos_input)

        elif "headup" == data:
            servo.camera_ang("lookup", 0)
        elif "headdown" == data:
            servo.camera_ang("lookdown", 0)
        elif "headhome" == data:
            servo.camera_ang("home", 0)
            servo.hand("in")
            servo.cir_pos(6)
            pos_input = 1
            catch_input = 1
            cir_input = 6
            servo.catch(catch_input)
            time.sleep(0.5)
            servo.clean_all()

        elif "c_left" == data:
            if cir_input < 12:
                cir_input += 1
            servo.cir_pos(cir_input)
        elif "c_right" == data:
            if cir_input > 1:
                cir_input -= 1
            servo.cir_pos(cir_input)

        elif "catch" == data:
            if catch_input < 13:
                catch_input += 1
            servo.catch(catch_input)
        elif "loose" == data:
            if catch_input > 1:
                catch_input -= 1
            servo.catch(catch_input)

        elif "wsR" in data:
            try:
                set_R = data.split()
                ws_R = int(set_R[1])
                LED.colorWipe(Color(ws_R, ws_G, ws_B))
            except:
                pass
        elif "wsG" in data:
            try:
                set_G = data.split()
                ws_G = int(set_G[1])
                LED.colorWipe(Color(ws_R, ws_G, ws_B))
            except:
                pass
        elif "wsB" in data:
            try:
                set_B = data.split()
                ws_B = int(set_B[1])
                LED.colorWipe(Color(ws_R, ws_G, ws_B))
            except:
                pass

        elif "FindColor" in data:
            FindColorMode = 0
            tcpCliSock.send(("FunEnd").encode())

        elif "WatchDog" in data:
            tcpCliSock.send(("FunEnd").encode())

        elif "steady" in data:
            ultrasonicMode = 1
            tcpCliSock.send(("steady").encode())

        elif "FindLine" in data:
            FindLineMode = 1
            tcpCliSock.send(("FindLine").encode())

        elif "funEnd" in data:
            ultrasonicMode = 0
            FindLineMode = 0
            FindColorMode = 0
            tcpCliSock.send(("FunEnd").encode())
            move.motorStop()

        else:
            pass
Пример #4
0
def setup():
    '''initialization'''
    #??? seperate function seems unecessary
    motor.setup()
    turn.ahead()
    findline.setup()
Пример #5
0
def run():
    global servo_move, speed_set, servo_command, functionMode, init_get, R_set, G_set, B_set, SR_mode
    servo.servo_init()
    move.setup()
    findline.setup()
    direction_command = 'no'
    turn_command = 'no'
    servo_command = 'no'
    speed_set = 100
    rad = 0.5

    info_threading = threading.Thread(
        target=info_send_client)  #Define a thread for FPV and OpenCV
    info_threading.setDaemon(
        True
    )  #'True' means it is a front thread,it would close when the mainloop() closes
    info_threading.start()  #Thread starts

    servo_move = Servo_ctrl()
    servo_move.start()
    servo_move.pause()
    findline.setup()
    while True:
        data = ''
        data = str(tcpCliSock.recv(BUFSIZ).decode())
        if not data:
            continue

        elif 'forward' == data:
            direction_command = 'forward'
            move.move(speed_set, direction_command)

        elif 'backward' == data:
            direction_command = 'backward'
            move.move(speed_set, direction_command)

        elif 'DS' in data:
            direction_command = 'no'
            move.move(speed_set, direction_command)

        elif 'left' == data:
            # turn_command = 'left'
            servo.turnLeft()

        elif 'right' == data:
            # turn_command = 'right'
            servo.turnRight()

        elif 'TS' in data:
            # turn_command = 'no'
            servo.turnMiddle()

        elif 'Switch_1_on' in data:
            fpv.Sounds(1)
            tcpCliSock.send(('Switch_1_on').encode())

        elif 'Switch_1_off' in data:
            fpv.Sounds(0)
            tcpCliSock.send(('Switch_1_off').encode())

        elif 'Switch_2_on' in data:
            #switch.switch(2,1)
            fpv.Radar(1)
            tcpCliSock.send(('Switch_2_on').encode())

        elif 'Switch_2_off' in data:
            #switch.switch(2,0)
            fpv.Radar(0)
            tcpCliSock.send(('Switch_2_off').encode())

        elif 'Switch_3_on' in data:
            switch.switch(3, 1)
            tcpCliSock.send(('Switch_3_on').encode())

        elif 'Switch_3_off' in data:
            switch.switch(3, 0)
            tcpCliSock.send(('Switch_3_off').encode())

        elif 'Switch_A_on' in data:
            tcpCliSock.send(('Switch_A_on').encode())
        elif 'Switch_A_off' in data:
            tcpCliSock.send(('Switch_A_off').encode())

        elif 'Switch_B_on' in data:
            tcpCliSock.send(('Switch_B_on').encode())
        elif 'Switch_B_off' in data:
            tcpCliSock.send(('Switch_B_off').encode())

        elif 'Switch_C_on' in data:
            fpv.HaarJJ(1)
            tcpCliSock.send(('Switch_C_on').encode())
        elif 'Switch_C_off' in data:
            fpv.HaarJJ(0)
            tcpCliSock.send(('Switch_C_off').encode())

        elif 'Face_Track_on' in data:
            # functionMode = 3
            fpv.FaceTrack(1)
            tcpCliSock.send(('Face_Track_on').encode())

        elif 'Face_Track_off' in data:
            # functionMode = 0
            fpv.FaceTrack(0)
            tcpCliSock.send(('Face_Track_off').encode())

        elif 'function_1_on' in data:
            servo.ahead()
            time.sleep(0.2)
            tcpCliSock.send(('function_1_on').encode())
            radar_send = servo.radar_scan()
            tcpCliSock.sendall(radar_send.encode())
            print(radar_send)
            time.sleep(0.3)
            tcpCliSock.send(('function_1_off').encode())

        elif 'function_2_on' in data:
            functionMode = 2
            fpv.FindColor(1)
            tcpCliSock.send(('function_2_on').encode())

        elif 'function_2_off' in data:
            functionMode = 0
            fpv.FindColor(0)
            switch.switch(1, 0)
            switch.switch(2, 0)
            switch.switch(3, 0)
            tcpCliSock.send(('function_2_off').encode())

        elif 'function_3_on' in data:
            functionMode = 3
            fpv.WatchDog(1)
            tcpCliSock.send(('function_3_on').encode())

        elif 'function_3_off' in data:
            functionMode = 0
            fpv.WatchDog(0)
            tcpCliSock.send(('function_3_off').encode())

        elif 'function_4_on' in data:
            functionMode = 4
            servo_move.resume()
            tcpCliSock.send(('function_4_on').encode())

        elif 'function_4_off' in data:
            functionMode = 0
            servo_move.pause()
            move.motorStop()
            tcpCliSock.send(('function_4_off').encode())

        elif 'function_5_on' in data:
            functionMode = 5
            servo_move.resume()
            tcpCliSock.send(('function_5_on').encode())

        elif 'function_5_off' in data:
            functionMode = 0
            servo_move.pause()
            move.motorStop()
            tcpCliSock.send(('function_5_off').encode())

        elif 'function_6_on' in data:
            if MPU_connection:
                functionMode = 6
                servo_move.resume()
                tcpCliSock.send(('function_6_on').encode())

        elif 'function_6_off' in data:
            functionMode = 0
            servo_move.pause()
            move.motorStop()
            init_get = 0
            tcpCliSock.send(('function_6_off').encode())

            #elif 'function_1_off' in data:
        #   tcpCliSock.send(('function_1_off').encode())

        elif 'lookleft' == data:
            servo_command = 'lookleft'
            servo_move.resume()

        elif 'lookright' == data:
            servo_command = 'lookright'
            servo_move.resume()

        elif 'up' == data:
            servo_command = 'up'
            servo_move.resume()

        elif 'down' == data:
            servo_command = 'down'
            servo_move.resume()

        elif 'stop' == data:
            if not functionMode:
                servo_move.pause()
            servo_command = 'no'
            pass

        elif 'home' == data:
            servo.ahead()

        elif 'CVrun' == data:
            if not FPV.CVrun:
                FPV.CVrun = 1
                tcpCliSock.send(('CVrun_on').encode())
            else:
                FPV.CVrun = 0
                tcpCliSock.send(('CVrun_off').encode())

        elif 'wsR' in data:
            try:
                set_R = data.split()
                R_set = int(set_R[1])
                led.colorWipe(R_set, G_set, B_set)
            except:
                pass

        elif 'wsG' in data:
            try:
                set_G = data.split()
                G_set = int(set_G[1])
                led.colorWipe(R_set, G_set, B_set)
            except:
                pass

        elif 'wsB' in data:
            try:
                set_B = data.split()
                B_set = int(set_B[1])
                led.colorWipe(R_set, G_set, B_set)
            except:
                pass

        elif 'pwm0' in data:
            try:
                set_pwm0 = data.split()
                pwm0_set = int(set_pwm0[1])
                servo.setPWM(0, pwm0_set)
            except:
                pass

        elif 'pwm1' in data:
            try:
                set_pwm1 = data.split()
                pwm1_set = int(set_pwm1[1])
                servo.setPWM(1, pwm1_set)
            except:
                pass

        elif 'pwm2' in data:
            try:
                set_pwm2 = data.split()
                pwm2_set = int(set_pwm2[1])
                servo.setPWM(2, pwm2_set)
            except:
                pass

        elif 'Speed' in data:
            try:
                set_speed = data.split()
                speed_set = int(set_speed[1])
            except:
                pass

        elif 'Save' in data:
            try:
                servo.saveConfig()
            except:
                pass

        elif 'CVFL' in data:
            if not FPV.FindLineMode:
                FPV.FindLineMode = 1
                tcpCliSock.send(('CVFL_on').encode())
            else:
                move.motorStop()
                FPV.FindLineMode = 0
                tcpCliSock.send(('CVFL_off').encode())

        elif 'Render' in data:
            if FPV.frameRender:
                FPV.frameRender = 0
            else:
                FPV.frameRender = 1

        elif 'WBswitch' in data:
            if FPV.lineColorSet == 255:
                FPV.lineColorSet = 0
            else:
                FPV.lineColorSet = 255

        elif 'lip1' in data:
            try:
                set_lip1 = data.split()
                lip1_set = int(set_lip1[1])
                FPV.linePos_1 = lip1_set
            except:
                pass

        elif 'lip2' in data:
            try:
                set_lip2 = data.split()
                lip2_set = int(set_lip2[1])
                FPV.linePos_2 = lip2_set
            except:
                pass

        elif 'err' in data:
            try:
                set_err = data.split()
                err_set = int(set_err[1])
                FPV.findLineError = err_set
            except:
                pass

        elif 'FCSET' in data:
            FCSET = data.split()
            fpv.colorFindSet(int(FCSET[1]), int(FCSET[2]), int(FCSET[3]))

        elif 'setEC' in data:  #Z
            ECset = data.split()
            try:
                fpv.setExpCom(int(ECset[1]))
            except:
                pass

        elif 'defEC' in data:  #Z
            fpv.defaultExpCom()

        elif 'police' in data:
            if LED.ledfunc != 'police':
                tcpCliSock.send(('rainbow_off').encode())
                LED.ledfunc = 'police'
                ledthread.resume()
                tcpCliSock.send(('police_on').encode())
            elif LED.ledfunc == 'police':
                LED.ledfunc = ''
                ledthread.pause()
                tcpCliSock.send(('police_off').encode())

        elif 'rainbow' in data:
            if LED.ledfunc != 'rainbow':
                tcpCliSock.send(('police_off').encode())
                LED.ledfunc = 'rainbow'
                ledthread.resume()
                tcpCliSock.send(('rainbow_on').encode())
            elif LED.ledfunc == 'rainbow':
                LED.ledfunc = ''
                ledthread.pause()
                tcpCliSock.send(('rainbow_off').encode())

        elif 'sr' in data:
            if not SR_mode:
                if SR_dect:
                    SR_mode = 1
                    tcpCliSock.send(('sr_on').encode())
                    sr.resume()

            elif SR_mode:
                SR_mode = 0
                sr.pause()
                move.motorStop()
                tcpCliSock.send(('sr_off').encode())

        else:
            pass

        print(data)
Пример #6
0
def run():
    global direction_command, turn_command, pos_input, catch_input, cir_input, ultrasonicMode, FindLineMode, FindColorMode, SportModeOn
    move.setup()
    findline.setup()

    info_threading = threading.Thread(
        target=info_send_client)  #Define a thread for FPV and OpenCV
    info_threading.setDaemon(
        True
    )  #'True' means it is a front thread,it would close when the mainloop() closes
    info_threading.start()  #Thread starts

    ultra_threading = threading.Thread(
        target=ultra_send_client)  #Define a thread for FPV and OpenCV
    ultra_threading.setDaemon(
        True
    )  #'True' means it is a front thread,it would close when the mainloop() closes
    ultra_threading.start()  #Thread starts

    findline_threading = threading.Thread(
        target=findline_thread)  #Define a thread for FPV and OpenCV
    findline_threading.setDaemon(
        True
    )  #'True' means it is a front thread,it would close when the mainloop() closes
    findline_threading.start()  #Thread starts
    #move.stand()

    ws_R = 0
    ws_G = 0
    ws_B = 0

    Y_pitch = 0
    Y_pitch_MAX = 200
    Y_pitch_MIN = -200

    while True:
        data = ''
        data = str(tcpCliSock.recv(BUFSIZ).decode())
        if not data:
            continue

        elif 'SportModeOn' == data:
            SportModeOn = 1
            tcpCliSock.send(('SportModeOn').encode())

        elif 'SportModeOff' == data:
            SportModeOn = 0
            tcpCliSock.send(('SportModeOff').encode())

        elif 'forward' == data:
            direction_command = 'forward'
            if SportModeOn:
                move.move(speed_set, direction_command, turn_command, rad)
            else:
                move.move(SpeedBase, direction_command, turn_command, rad)
        elif 'backward' == data:
            direction_command = 'backward'
            if SportModeOn:
                move.move(speed_set, direction_command, turn_command, rad)
            else:
                move.move(SpeedBase, direction_command, turn_command, rad)
        elif 'DS' in data:
            direction_command = 'no'
            if SportModeOn:
                move.move(speed_set, direction_command, turn_command, rad)
            else:
                move.move(SpeedBase, direction_command, turn_command, rad)

        elif 'left' == data:
            turn_command = 'left'
            if SportModeOn:
                move.move(speed_set, direction_command, turn_command, rad)
            else:
                move.move(SpeedBase, direction_command, turn_command, rad)
        elif 'right' == data:
            turn_command = 'right'
            if SportModeOn:
                move.move(speed_set, direction_command, turn_command, rad)
            else:
                move.move(SpeedBase, direction_command, turn_command, rad)
        elif 'TS' in data:
            turn_command = 'no'
            move.move(speed_set, direction_command, turn_command, rad)

        elif 'headup' == data:
            servo.camera_ang('lookup', 'no')
        elif 'headdown' == data:
            servo.camera_ang('lookdown', 'no')
        elif 'headhome' == data:
            servo.camera_ang('home', 'no')
            time.sleep(0.2)
            servo.clean_all()

        elif 'wsR' in data:
            try:
                set_R = data.split()
                ws_R = int(set_R[1])
                LED.colorWipe(Color(ws_R, ws_G, ws_B))
            except:
                pass
        elif 'wsG' in data:
            try:
                set_G = data.split()
                ws_G = int(set_G[1])
                LED.colorWipe(Color(ws_R, ws_G, ws_B))
            except:
                pass
        elif 'wsB' in data:
            try:
                set_B = data.split()
                ws_B = int(set_B[1])
                LED.colorWipe(Color(ws_R, ws_G, ws_B))
            except:
                pass

        elif 'FindColor' in data:
            FindColorMode = 0
            tcpCliSock.send(('FunEnd').encode())

        elif 'WatchDog' in data:
            tcpCliSock.send(('FunEnd').encode())

        elif 'steady' in data:
            ultrasonicMode = 1
            tcpCliSock.send(('steady').encode())

        elif 'FindLine' in data:
            FindLineMode = 1
            tcpCliSock.send(('FindLine').encode())

        elif 'funEnd' in data:
            ultrasonicMode = 0
            FindLineMode = 0
            FindColorMode = 0
            tcpCliSock.send(('FunEnd').encode())
            move.motorStop()

        else:
            pass
Пример #7
0
def run():
    global servo_move, speed_set, servo_command, functionMode, init_get
    servo.servo_init()
    move.setup()
    findline.setup()
    direction_command = 'no'
    turn_command = 'no'
    servo_command = 'no'
    speed_set = 100
    rad = 0.5

    info_threading = threading.Thread(
        target=info_send_client)  #Define a thread for FPV and OpenCV
    info_threading.setDaemon(
        True
    )  #'True' means it is a front thread,it would close when the mainloop() closes
    info_threading.start()  #Thread starts

    servo_move = Servo_ctrl()
    servo_move.start()
    servo_move.pause()
    findline.setup()
    while True:
        data = ''
        data = str(tcpCliSock.recv(BUFSIZ).decode())
        if not data:
            continue

        elif 'forward' == data:
            direction_command = 'forward'
            move.move(speed_set, direction_command, turn_command, rad)

        elif 'backward' == data:
            direction_command = 'backward'
            move.move(speed_set, direction_command, turn_command, rad)

        elif 'DS' in data:
            direction_command = 'no'
            move.move(speed_set, direction_command, turn_command, rad)

        elif 'left' == data:
            turn_command = 'left'
            move.move(speed_set, direction_command, turn_command, rad)

        elif 'right' == data:
            turn_command = 'right'
            move.move(speed_set, direction_command, turn_command, rad)

        elif 'TS' in data:
            turn_command = 'no'
            move.move(speed_set, direction_command, turn_command, rad)

        elif 'Switch_1_on' in data:
            switch.switch(1, 1)
            tcpCliSock.send(('Switch_1_on').encode())

        elif 'Switch_1_off' in data:
            switch.switch(1, 0)
            tcpCliSock.send(('Switch_1_off').encode())

        elif 'Switch_2_on' in data:
            switch.switch(2, 1)
            tcpCliSock.send(('Switch_2_on').encode())

        elif 'Switch_2_off' in data:
            switch.switch(2, 0)
            tcpCliSock.send(('Switch_2_off').encode())

        elif 'Switch_3_on' in data:
            switch.switch(3, 1)
            tcpCliSock.send(('Switch_3_on').encode())

        elif 'Switch_3_off' in data:
            switch.switch(3, 0)
            tcpCliSock.send(('Switch_3_off').encode())

        elif 'function_1_on' in data:
            servo.ahead()
            time.sleep(0.2)
            tcpCliSock.send(('function_1_on').encode())
            radar_send = servo.radar_scan()
            tcpCliSock.sendall(radar_send.encode())
            print(radar_send)
            time.sleep(0.3)
            tcpCliSock.send(('function_1_off').encode())

        elif 'function_2_on' in data:
            functionMode = 2
            fpv.FindColor(1)
            tcpCliSock.send(('function_2_on').encode())

        elif 'function_3_on' in data:
            functionMode = 3
            fpv.WatchDog(1)
            tcpCliSock.send(('function_3_on').encode())

        elif 'function_4_on' in data:
            functionMode = 4
            servo_move.resume()
            tcpCliSock.send(('function_4_on').encode())

        elif 'function_5_on' in data:
            functionMode = 5
            servo_move.resume()
            tcpCliSock.send(('function_5_on').encode())

        elif 'function_6_on' in data:
            if MPU_connection:
                functionMode = 6
                servo_move.resume()
                tcpCliSock.send(('function_6_on').encode())

        #elif 'function_1_off' in data:
        #    tcpCliSock.send(('function_1_off').encode())

        elif 'function_2_off' in data:
            functionMode = 0
            fpv.FindColor(0)
            switch.switch(1, 0)
            switch.switch(2, 0)
            switch.switch(3, 0)
            tcpCliSock.send(('function_2_off').encode())

        elif 'function_3_off' in data:
            functionMode = 0
            fpv.WatchDog(0)
            tcpCliSock.send(('function_3_off').encode())

        elif 'function_4_off' in data:
            functionMode = 0
            servo_move.pause()
            move.motorStop()
            tcpCliSock.send(('function_4_off').encode())

        elif 'function_5_off' in data:
            functionMode = 0
            servo_move.pause()
            move.motorStop()
            tcpCliSock.send(('function_5_off').encode())

        elif 'function_6_off' in data:
            functionMode = 0
            servo_move.pause()
            move.motorStop()
            init_get = 0
            tcpCliSock.send(('function_6_off').encode())

        elif 'lookleft' == data:
            servo_command = 'lookleft'
            servo_move.resume()

        elif 'lookright' == data:
            servo_command = 'lookright'
            servo_move.resume()

        elif 'up' == data:
            servo_command = 'up'
            servo_move.resume()

        elif 'down' == data:
            servo_command = 'down'
            servo_move.resume()

        elif 'lookup' == data:
            servo_command = 'lookup'
            servo_move.resume()

        elif 'lookdown' == data:
            servo_command = 'lookdown'
            servo_move.resume()

        elif 'grab' == data:
            servo_command = 'grab'
            servo_move.resume()

        elif 'loose' == data:
            servo_command = 'loose'
            servo_move.resume()

        elif 'stop' == data:
            if not functionMode:
                servo_move.pause()
            servo_command = 'no'
            pass

        elif 'home' == data:
            servo.ahead()

        elif 'wsB' in data:
            try:
                set_B = data.split()
                speed_set = int(set_B[1])
            except:
                pass

        elif 'CVFL' in data:
            if not FPV.FindLineMode:
                FPV.FindLineMode = 1
                tcpCliSock.send(('CVFL_on').encode())
            else:
                move.motorStop()
                FPV.FindLineMode = 0
                tcpCliSock.send(('CVFL_off').encode())

        elif 'Render' in data:
            if FPV.frameRender:
                FPV.frameRender = 0
            else:
                FPV.frameRender = 1

        elif 'WBswitch' in data:
            if FPV.lineColorSet == 255:
                FPV.lineColorSet = 0
            else:
                FPV.lineColorSet = 255

        elif 'lip1' in data:
            try:
                set_lip1 = data.split()
                lip1_set = int(set_lip1[1])
                FPV.linePos_1 = lip1_set
            except:
                pass

        elif 'lip2' in data:
            try:
                set_lip2 = data.split()
                lip2_set = int(set_lip2[1])
                FPV.linePos_2 = lip2_set
            except:
                pass

        elif 'err' in data:
            try:
                set_err = data.split()
                err_set = int(set_err[1])
                FPV.findLineError = err_set
            except:
                pass

        elif 'FCSET' in data:
            FCSET = data.split()
            fpv.colorFindSet(int(FCSET[1]), int(FCSET[2]), int(FCSET[3]))

        elif 'setEC' in data:  #Z
            ECset = data.split()
            try:
                fpv.setExpCom(int(ECset[1]))
            except:
                pass

        elif 'defEC' in data:  #Z
            fpv.defaultExpCom()

        else:
            pass

        print(data)