示例#1
0
def main():
    # Make socket
    transport = TSocket.TSocket('localhost', port)

    # Buffering is critical. Raw sockets are very slow
    transport = TTransport.TBufferedTransport(transport)

    # Wrap in a protocol
    protocol = TBinaryProtocol.TBinaryProtocol(transport)

    # Create a client to use the protocol encoder
    client = Drone.Client(protocol)

    status_client = Drone.Client(protocol)

    # Connect!
    transport.open()

    print("Disarming...")
    client.disarm()

    # Close!
    transport.close()
示例#2
0
def main():
    # Make socket
    transport = TSocket.TSocket('localhost', port)

    # Buffering is critical. Raw sockets are very slow
    transport = TTransport.TBufferedTransport(transport)

    # Wrap in a protocol
    protocol = TBinaryProtocol.TBinaryProtocol(transport)

    # Create a client to use the protocol encoder
    client = Drone.Client(protocol)

    # Connect!
    transport.open()

    print('Locking servo...')
    client.set_servo(1900)

    # Close!
    transport.close()
示例#3
0
def main():
    # Make socket
    transport = TSocket.TSocket('localhost', 9090)

    # Buffering is critical. Raw sockets are very slow
    transport = TTransport.TBufferedTransport(transport)

    # Wrap in a protocol
    protocol = TBinaryProtocol.TBinaryProtocol(transport)

    # Create a client to use the protocol encoder
    client = Drone.Client(protocol)

    # Connect!
    transport.open()

    client.fly_to(14.076550, 100.614012, 50)
    print('FLYING AWAY')

    # Close!
    transport.close()
示例#4
0
def main():
    # Make socket
    transport = TSocket.TSocket('localhost', port)

    # Buffering is critical. Raw sockets are very slow
    transport = TTransport.TBufferedTransport(transport)

    # Wrap in a protocol
    protocol = TBinaryProtocol.TBinaryProtocol(transport)

    # Create a client to use the protocol encoder
    client = Drone.Client(protocol)

    # Connect!
    transport.open()
    
    print("Executing {0}...".format(args.command))
    client.arm()

    # Close!
    transport.close()
示例#5
0
def main():
    # Make socket
    transport = TSocket.TSocket('localhost', 9090)

    # Buffering is critical. Raw sockets are very slow
    transport = TTransport.TBufferedTransport(transport)

    # Wrap in a protocol
    protocol = TBinaryProtocol.TBinaryProtocol(transport)

    # Create a client to use the protocol encoder
    client = Drone.Client(protocol)

    # Connect!
    transport.open()

    client.takeoff(50)
    print('Taking off')

    # Close!
    transport.close()
示例#6
0
def main():
    # Make sockets
    transport = TSocket.TSocket('localhost', port)
    base_transport = TSocket.TSocket('localhost', base_port)

    # Buffering is critical. Raw sockets are very slow
    transport = TTransport.TBufferedTransport(transport)
    base_transport = TTransport.TBufferedTransport(base_transport)

    # Wrap in a protocol
    protocol = TBinaryProtocol.TBinaryProtocol(transport)
    base_protocol = TBinaryProtocol.TBinaryProtocol(base_transport)

    # Create a client to use the protocol encoder
    client = Drone.Client(protocol)
    base_client = BaseDoor.Client(base_protocol)

    # Connect!
    transport.open()
    base_transport.open()

    dest_latitude = float(args.latitude)
    dest_longitude = float(args.longitude)
    altitude = float(args.altitude)

    # Prepare doors!
    print("Opening doors...")
    base_client.openDoor()

    time.sleep(15)

    print("Clearing existing missions...")
    client.clear_missions()

    print("Downloading missions...")
    client.download_missions()

    send_time = datetime.datetime.now()
    print("Add mission to {0}, {1} at {2} metres".format(
        args.latitude, args.longitude, args.altitude))
    client.add_delivery_mission(dest_latitude, dest_longitude, altitude)

    # client.fly_to(14.076550, 100.614012, 50)

    transport.close()
    base_transport.close()

    print("Starting in flight status reports...")
    while (True):
        transport.open()

        print("Reporting flight status...")
        status_obj = client.report_status(int(args.drone_id))

        if not status_obj.armed:
            end_mission_status_data = {"status": "Done"}

            end_drone_status_data = {"status": "Available"}

            end_mission_patch = requests.patch(mission_endpoint,
                                               data=end_mission_status_data)

            end_drone_patch = requests.patch(drone_endpoint,
                                             data=end_drone_status_data)

            client.change_mode("RTL")
            break
        transport.close()
        time.sleep(3)

    # Close!
    transport.close()
示例#7
0
def main():
    # Make socket
    transport = TSocket.TSocket('localhost', port)
    base_transport = TSocket.TSocket('localhost', base_port)

    # Buffering is critical. Raw sockets are very slow
    transport = TTransport.TBufferedTransport(transport)
    base_transport = TTransport.TBufferedTransport(base_transport)

    # Wrap in a protocol
    protocol = TBinaryProtocol.TBinaryProtocol(transport)
    base_protocol = TBinaryProtocol.TBinaryProtocol(base_transport)

    # Create a client to use the protocol encoder
    client = Drone.Client(protocol)
    base_client = BaseDoor.Client(base_protocol)

    # Connect!
    transport.open()
    base_transport.open()

    time.sleep(15)

    # Prepare doors!
    print("Opening doors...")
    base_client.openDoor()

    print("Clearing existing missions...")
    client.clear_missions()

    print("Downloading missions...")
    client.download_missions()

    print("Creating coordinate objects...")
    thrift_coordinate_list = []
    altitude = float(args.altitude)
    for count, coordinate in enumerate(coordinate_list):
        latlng = coordinate.split(",")
        lat = latlng[0]
        lng = latlng[1]

        if count == 0:
            first_coordinate = {
                "latitude": float(lat),
                "longitude": float(lng),
            }

            print("First waypoint is {0},{1}".format(
                first_coordinate["latitude"], first_coordinate["longitude"]))

        coordinate_obj = Coordinate(latitude=float(lat),
                                    longitude=float(lng),
                                    altitude=altitude)
        thrift_coordinate_list.append(coordinate_obj)

    print("Sending coordinates to server...")
    client.add_farm_mission(thrift_coordinate_list)

    transport.close()
    base_transport.close()

    print("Starting in flight status reports...")
    while (True):
        transport.open()

        print("Reporting flight status...")
        status_obj = client.report_status(int(args.drone_id))
        print("Armed: {0}".format(status_obj.armed))

        if first_coordinate[
                "latitude"] - 0.0001 <= status_obj.latitude <= first_coordinate[
                    "latitude"] + 0.0001 and first_coordinate[
                        "longitude"] - 0.0001 <= status_obj.latitude <= first_coordinate[
                            "longitude"] + 0.0001:
            print("Requesting camera start...")
            client.start_camera()

        if not status_obj.armed:
            end_mission_status_data = {"status": "Done"}

            end_drone_status_data = {"status": "Available"}

            end_mission_post = requests.patch(mission_endpoint,
                                              data=end_mission_status_data)

            end_drone_post = requests.patch(drone_endpoint,
                                            data=end_drone_status_data)

            client.change_mode("RTL")
            break
        transport.close()
        time.sleep(3)

    # Close!
    transport.close()