Я купил дрон V186. Технической информации об этом нет. В комплект поставки входит контроллер и QR-код, указывающий на приложение для смартфона «Wi-Fi UAV». Приложение не работает с этим дроном. Я хочу разработать Java-приложение для получения видео с дрона.
Я получил IP-адрес дрона (192.160.80.1) после подключения моего компьютера (192.168.80.2) к Wi-Fi дрона и просканировал все порты. Я получил ответ на порты 3333 и 8080. Telnet подключается к обоим портам.
Я пробовал использовать Tello SDK, но безуспешно (я этого уже ожидал). Я попробовал несколько простых программ TCP и UDP для подключения к обоим портам с помощью AT-команды, но безуспешно (они подключаются, но не более того). Обе программы завершают работу по тайм-ауту: java.net.SocketTimeoutException: время ожидания получения истекло
Может кто-нибудь подсказать мне, как управлять дроном? Как узнать команды, не открывая его, и узнать марку и модель мозга дрона?
Спасибо!
Это простые программы, которые я пробовал
Socket socket;
InputStream input;
OutputStream output;
byte[] data;
String line;
final String cmd = "AT*LED=1,0,1056964608,4";
try {
System.out.println("Program starts");
socket = new Socket("192.168.80.1", 8080); // 3333
socket.setSoTimeout(1000);
input = socket.getInputStream();
/* BufferedReader reader = new BufferedReader(new InputStreamReader(input));
line = reader.readLine();
System.out.println("--- ANSWER ----------------------------");
System.out.println(line);
input.close();
*/
output = socket.getOutputStream();
data = cmd.getBytes();
output.write(data);
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("Program ends");
Программа UDP
int port = 3333; // 8080; // 3333;
String answer;
final String cmd = "AT*LED=1,0,1056964608,4";
try {
InetAddress address = InetAddress.getByName("192.168.80.1");
DatagramSocket socket = new DatagramSocket();
socket.setSoTimeout(1000);
byte[] buffer = cmd.getBytes(); // new byte[512];
DatagramPacket request = new DatagramPacket(buffer, buffer.length, address, port);
socket.send(request);
DatagramPacket response = new DatagramPacket(buffer, buffer.length);
socket.receive(response);
answer = new String(buffer, 0, response.getLength());
System.out.println("Answer length: " + response.getLength());
System.out.println("-- ANSWER --------------------------------------");
System.out.println(answer);
System.out.println("\nProgram ends");
} catch (IOException e) {
e.printStackTrace();
}
Подробнее здесь: https://stackoverflow.com/questions/786 ... rogramming
Китайский дрон V186 pro Java-программирование ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Как начать программирование .NET CORE в качестве новичка для Pro? [закрыто]
Anonymous » » в форуме C# - 0 Ответы
- 5 Просмотры
-
Последнее сообщение Anonymous
-