mirror of
https://bitbucket.org/librepilot/librepilot.git
synced 2024-12-02 10:24:11 +01:00
7d13f4869d
(essentialy implements a mutex locker for that object). Also added callbacks to UAVObjects for unpacked and updated. More to come. Finally test case that checks that we get FlightStatus through UAVTalk (i.e. that the aircraft is talking).
100 lines
2.2 KiB
Java
100 lines
2.2 KiB
Java
package org.openpilot.uavtalk;
|
|
import static org.junit.Assert.*;
|
|
|
|
import java.io.IOException;
|
|
import java.io.InputStream;
|
|
import java.io.InputStreamReader;
|
|
import java.io.OutputStream;
|
|
import java.net.DatagramSocket;
|
|
import java.net.InetAddress;
|
|
import java.net.Socket;
|
|
import java.nio.ByteBuffer;
|
|
import java.util.Observable;
|
|
import java.util.Observer;
|
|
|
|
import org.junit.BeforeClass;
|
|
import org.junit.Test;
|
|
import org.openpilot.uavtalk.uavobjects.UAVObjectsInitialize;
|
|
import org.openpilot.uavtalk.UAVTalk;
|
|
|
|
|
|
public class TalkTest {
|
|
|
|
static UAVObjectManager objMngr;
|
|
static final String IP_ADDRDESS = new String("127.0.0.1");
|
|
static final int PORT_NUM = 7777;
|
|
boolean succeed = false;
|
|
|
|
@BeforeClass
|
|
public static void setUpBeforeClass() throws Exception {
|
|
objMngr = new UAVObjectManager();
|
|
UAVObjectsInitialize.register(objMngr);
|
|
}
|
|
|
|
@Test
|
|
public void testGetFlightStatus() {
|
|
Socket connection = null;
|
|
UAVTalk talk = null;
|
|
try{
|
|
InetAddress ip = InetAddress.getByName(IP_ADDRDESS);
|
|
connection = new Socket(ip, PORT_NUM);
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
fail("Couldn't connect to test platform");
|
|
}
|
|
|
|
try {
|
|
talk = new UAVTalk(connection.getInputStream(), connection.getOutputStream(), objMngr);
|
|
} catch (IOException e) {
|
|
// TODO Auto-generated catch block
|
|
e.printStackTrace();
|
|
fail("Couldn't construct UAVTalk object");
|
|
}
|
|
|
|
Thread inputStream = talk.getInputProcessThread();
|
|
inputStream.start();
|
|
|
|
succeed = false;
|
|
|
|
UAVObject obj = objMngr.getObject("FlightTelemetryStats");
|
|
|
|
obj.addUpdatedObserver( new Observer() {
|
|
public void update(Observable observable, Object data) {
|
|
// TODO Auto-generated method stub
|
|
System.out.println("Updated: " + data.toString());
|
|
succeed = true;
|
|
}
|
|
});
|
|
|
|
try {
|
|
Thread.sleep(1000);
|
|
} catch (InterruptedException e1) {
|
|
}
|
|
|
|
if(!succeed)
|
|
fail("Never received a FlightTelemetryStats update");
|
|
|
|
}
|
|
|
|
@Test
|
|
public void testSendObjectRequest() {
|
|
fail("Not yet implemented");
|
|
}
|
|
|
|
@Test
|
|
public void testSendObject() {
|
|
fail("Not yet implemented");
|
|
}
|
|
|
|
@Test
|
|
public void testReceiveObject() {
|
|
fail("Not yet implemented");
|
|
}
|
|
|
|
@Test
|
|
public void testUpdateObject() {
|
|
fail("Not yet implemented");
|
|
}
|
|
|
|
}
|