2012-07-25 5 views
0

저는 여러 Ar Drones (간단한 쿼드 로터 UAV)의 자율 비전 기반 탐색에 대한 프로젝트를 수행하는 공학 학생입니다.프로그래밍 방식으로 여러 NIC 구성

나는 내 PC에 WiFi 카드 2 개를 인터페이스했다. Ar Drones는 모두 자체 WiFi 서버를 만듭니다. 두 NIC (AR Drones)를 각각 동시에 연결합니다. 두 드론 모두 UDP 포트를 사용하여 비디오 스트림을 전송하고 있습니다.

  1. 내가 모두 비디오 스트림을 동시에받을 수 :

    내 질문은 이것이다?

  2. 그렇다면이 두 비디오 스트림을 모두 받고 표시하도록 C# 응용 프로그램을 구성하는 방법은 무엇입니까?

이미 하나의 무인 항공기에서 비디오 스트림을 수신 할 수 있습니다. 두 비디오 스트림을 모두 수신하도록 코드를 다시 구성하는 방법은 무엇입니까?

+2

이미 가지고있는 코드를 제공 할 수 있습니까? 한계가있는 곳을 이해하는 데 도움이 될 수 있습니다. – mellamokb

+1

자세한 내용이 필요합니다. 어떤 라이브러리를 사용하고 있습니까? –

+0

C# SDK를 사용하고 있습니다 ... 링크는 https://github.com/shtejv/ARDrone-Control-.NET ... –

답변

0

두 개의 소켓이 필요하며 각각 해당 네트워크 인터페이스의 주소로 bind()이 필요합니다.

0

두 개의 WiFi 카드가 필요하지 않습니다.

기본적으로 클라이언트 응용 프로그램은 2 개의 소켓을 만들어야합니다. 각각 다른 포트 (예 : 5000 및 5001)를들을 수 있습니다. 그런 다음이 정보를 무인 항공기에 알려야합니다. 클라이언트 응용 프로그램을 TCP의 무인 장치에 연결하고 각 무인 장치에 대한 구성을 보내면됩니다. 첫 번째 무인 항공기는 포트 5000을 수신하고 두 번째 무인 항공기는 포트 5001을 수신합니다.

무인 항공기는 클라이언트 시스템의 IP 주소와 구성의 지정된 포트로 UDP의 데이터를 전송해야합니다.

편집 : 나는 라이브러리를 검사했고 UDP 데이터를 보내는 데 사용되는 UdpWorker 클래스를 보았습니다. 이 클래스의 생성자를 호출 할 때는 원격 IP 주소 (클라이언트 응용 프로그램의 주소)와 포트 번호를 제공해야합니다.

클라이언트에 IP 192.168.1.1이 있다고 가정하면 Drone # 1은 remoteIpAddress = 192.168.1.1 및 port = 5000으로 UdpWorker 개체를 초기화합니다. Drone # 2의 경우, remoteIpAddress = 192.168.1.1 및 port = 5001로 UdpWorker 객체가 초기화됩니다.

두 개의 소켓이 서로 다른 포트에 연결되어 있기 때문에 클라이언트 응용 프로그램은 다른 소켓의 스트림을 모두 받게되므로 어떤 포트가 다른 포트인지 쉽게 구별 할 수 있습니다. C# 응용 프로그램에서는 System.Net.Sockets.UdpClient 유형의 개체 2 개를 인스턴스화 할 수 있습니다. 첫 번째 포트는 포트 번호 5000으로 초기화되고 두 번째 포트는 포트 번호 5001로 초기화됩니다.

+0

잘 일단 문제가 하나의 무인 항공기를 통해 링크를 다른 무인 비행기를 연결하는 데 사용할 수 없습니다 연결되어 있다는 것입니다. 무인 항공기가 만든 무선 서버는 한 대의 클라이언트에만 연결할 수 있습니다. –

+0

각 무인 항공기는 C# 클라이언트와 통신합니다. 무인 항공기 당 하나의 통신 만 있습니다. C# 클라이언트 응용 프로그램이 동일한 주소에서 2 개의 다른 포트를 수신하는 것입니다.Drone # 1은 포트 X에서 클라이언트로 데이터를 보내고 Drone # 2는 포트 Y에서 클라이언트로 데이터를 보냅니다. – Absolom

+0

드론에 사용하는 라이브러리와 관련된 정보로 내 대답을 업데이트했습니다. – Absolom

관련 문제