Removed the TCP video streaming code.

This commit is contained in:
2014-01-21 12:20:38 -04:30
parent b937b93767
commit 0b790bce8f
3 changed files with 71 additions and 33 deletions

View File

@@ -0,0 +1,37 @@
package ve.ucv.ciens.ccg.networkdata;
import java.io.Serializable;
public class MotorEvent implements Serializable{
private static final long serialVersionUID = 9989L;
public enum motor_t {NONE, MOTOR_A, MOTOR_B, MOTOR_C, MOTOR_AC};
private motor_t motor;
private byte power;
public MotorEvent(){
motor = motor_t.NONE;
power = 0;
}
public void setMotor(motor_t motor){
this.motor = motor;
}
public void setPower(byte power) throws IllegalArgumentException{
if(power > 100 || power < -100){
throw new IllegalArgumentException("Motor power must be a number between -100 and 100");
}else{
this.power = power;
}
}
public motor_t getMotor(){
return this.motor;
}
public byte getPower(){
return this.power;
}
}

View File

@@ -97,7 +97,7 @@ public class NxtARCore implements ApplicationListener, NetworkConnectionListener
frameMonitor = VideoFrameMonitor.getInstance();
mcastEnabler.enableMulticast();
udpThread = ServiceDiscoveryThread.getInstance();
videoThread = VideoStreamingThread.getInstance().setToaster(toaster);
videoThread = VideoStreamingThread.getInstance()/*.setToaster(toaster)*/;
//robotThread = RobotControlThread.getInstance().setToaster(toaster);
udpThread.start();
@@ -138,8 +138,10 @@ public class NxtARCore implements ApplicationListener, NetworkConnectionListener
sprite = new Sprite(region);
sprite.setSize(0.9f, 0.9f * sprite.getWidth() / sprite.getHeight());
sprite.setOrigin(sprite.getWidth()/2, sprite.getHeight()/2);
sprite.setPosition(-sprite.getWidth()/2, -sprite.getHeight()/2);
/*sprite.setOrigin(sprite.getWidth()/2, sprite.getHeight()/2);
sprite.setPosition(-sprite.getWidth()/2, -sprite.getHeight()/2);*/
sprite.setOrigin(0, 0);
sprite.setPosition(-sprite.getWidth()/2, (-sprite.getHeight()/3));
sprite.rotate90(true);
batch.setProjectionMatrix(camera.combined);

View File

@@ -18,15 +18,12 @@ package ve.ucv.ciens.ccg.nxtar.network;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.ServerSocket;
import java.net.Socket;
import ve.ucv.ciens.ccg.networkdata.VideoFrameDataMessage;
import ve.ucv.ciens.ccg.nxtar.interfaces.NetworkConnectionListener;
import ve.ucv.ciens.ccg.nxtar.interfaces.Toaster;
import ve.ucv.ciens.ccg.nxtar.utils.ProjectConstants;
import com.badlogic.gdx.Gdx;
@@ -36,21 +33,21 @@ public class VideoStreamingThread extends Thread {
private static final String TAG = "NXTAR_CORE_VIDEOTHREAD";
private static final String CLASS_NAME = VideoStreamingThread.class.getSimpleName();
private enum ProtocolState_t {WAIT_FOR_START, SEND_CONTINUE, RECEIVE_DATA, SEND_ACK_NEXT, SEND_ACK_WAIT, PAUSED, END_STREAM};
//private enum ProtocolState_t {WAIT_FOR_START, SEND_CONTINUE, RECEIVE_DATA, SEND_ACK_NEXT, SEND_ACK_WAIT, PAUSED, END_STREAM};
private NetworkConnectionListener netListener;
private ServerSocket server;
//private ServerSocket server;
private DatagramSocket socket;
private Toaster toaster;
private ProtocolState_t protocolState;
//private Toaster toaster;
//private ProtocolState_t protocolState;
private boolean protocolStarted;
private boolean pauseProtocol;
private boolean endProtocol;
/*private boolean pauseProtocol;
private boolean endProtocol;*/
private boolean done;
private Object protocolPauseMonitor;
private Socket client;
private ObjectInputStream reader;
private ObjectOutputStream writer;
//private ObjectInputStream reader;
//private ObjectOutputStream writer;
private VideoFrameMonitor frameMonitor;
private long then;
private long now;
@@ -62,18 +59,18 @@ public class VideoStreamingThread extends Thread {
fps = 0;
netListener = null;
toaster = null;
//toaster = null;
protocolStarted = false;
endProtocol = false;
pauseProtocol = false;
/*endProtocol = false;
pauseProtocol = false;*/
done = false;
protocolState = ProtocolState_t.WAIT_FOR_START;
//protocolState = ProtocolState_t.WAIT_FOR_START;
protocolPauseMonitor = new Object();
frameMonitor = VideoFrameMonitor.getInstance();
try{
server = new ServerSocket(ProjectConstants.SERVER_TCP_PORT_1);
socket = new DatagramSocket(ProjectConstants.SERVER_TCP_PORT_2);
//server = new ServerSocket(ProjectConstants.SERVER_TCP_PORT_1);
socket = new DatagramSocket(ProjectConstants.SERVER_TCP_PORT_1);
}catch(IOException io){
Gdx.app.error(TAG, CLASS_NAME + ".VideoStreamingThread() :: Error creating server: " + io.getMessage(), io);
}
@@ -87,26 +84,26 @@ public class VideoStreamingThread extends Thread {
return SingletonHolder.INSTANCE;
}
public VideoStreamingThread setToaster(Toaster toaster){
/*public VideoStreamingThread setToaster(Toaster toaster){
this.toaster = toaster;
return this;
}
}*/
public void addNetworkConnectionListener(NetworkConnectionListener listener){
netListener = listener;
}
private void toast(String message){
/*private void toast(String message){
if(toaster != null)
toaster.showShortToast(message);
}
}*/
public void startStreaming(){
if(!protocolStarted){
Gdx.app.debug(TAG, CLASS_NAME + ".startStreaming() :: Requesting protocol start.");
synchronized(protocolPauseMonitor){
protocolStarted = true;
protocolState = ProtocolState_t.SEND_CONTINUE;
//protocolState = ProtocolState_t.SEND_CONTINUE;
protocolPauseMonitor.notifyAll();
}
}
@@ -115,7 +112,7 @@ public class VideoStreamingThread extends Thread {
public void pauseStreaming(){
if(protocolStarted){
Gdx.app.debug(TAG, CLASS_NAME + ".pauseStreaming() :: Requesting protocol pause.");
pauseProtocol = true;
//pauseProtocol = true;
}else
return;
}
@@ -124,7 +121,7 @@ public class VideoStreamingThread extends Thread {
if(protocolStarted){
Gdx.app.debug(TAG, CLASS_NAME + ".resumeStreaming() :: Requesting protocol resume.");
synchronized(protocolPauseMonitor){
pauseProtocol = false;
//pauseProtocol = false;
protocolPauseMonitor.notifyAll();
}
}else
@@ -134,7 +131,7 @@ public class VideoStreamingThread extends Thread {
public void finishStreaming(){
if(protocolStarted){
Gdx.app.debug(TAG, CLASS_NAME + ".finishStreaming() :: Requesting protocol end.");
endProtocol = true;
//endProtocol = true;
}else
return;
}
@@ -312,7 +309,7 @@ public class VideoStreamingThread extends Thread {
Gdx.app.debug(TAG, CLASS_NAME + ".run() :: Thread finished.");
}*/
private void receiveImage(){
/*private void receiveImage(){
Object tmpMessage;
VideoFrameDataMessage dataMessage;
@@ -337,7 +334,7 @@ public class VideoStreamingThread extends Thread {
}else{
Gdx.app.debug(TAG, CLASS_NAME + ".run() :: Received something unknown.");
}
}
}*/
private int byteArray2Int(byte[] array){
int number = 0;
@@ -418,26 +415,28 @@ public class VideoStreamingThread extends Thread {
public void run(){
int frames = 0;
// Listen on the server socket until a client successfully connects.
do{
/*do{
try{
Gdx.app.debug(TAG, CLASS_NAME + ".run() :: Listening for client.");
client = server.accept();
if(netListener != null)
netListener.networkStreamConnected(THREAD_NAME);
writer = new ObjectOutputStream(client.getOutputStream());
//writer = new ObjectOutputStream(client.getOutputStream());
reader = new ObjectInputStream(client.getInputStream());
toast("Client connected");
}catch(IOException io){
Gdx.app.error(TAG, CLASS_NAME + ".run() :: Error accepting client: " + io.getMessage(), io);
client = null;
}
}while(client != null && !client.isConnected());
}while(client != null && !client.isConnected());*/
then = System.currentTimeMillis();
while(!done){
//receiveImage();
Gdx.app.debug(TAG, CLASS_NAME + ".run() :: Receiving.");
if(netListener != null)
netListener.networkStreamConnected(THREAD_NAME);
receiveUdp();
frames++;
now = System.currentTimeMillis();