Added some TCP connection stuff.
This commit is contained in:
@@ -39,8 +39,6 @@ public class CamActivity extends Activity{
|
|||||||
|
|
||||||
Intent intent = getIntent();
|
Intent intent = getIntent();
|
||||||
serverIp = intent.getStringExtra("address");
|
serverIp = intent.getStringExtra("address");
|
||||||
|
|
||||||
imThread = new ImageTransferThread();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -73,12 +71,17 @@ public class CamActivity extends Activity{
|
|||||||
|
|
||||||
camSetupTask = new CameraSetupTask();
|
camSetupTask = new CameraSetupTask();
|
||||||
camSetupTask.execute();
|
camSetupTask.execute();
|
||||||
|
|
||||||
|
imThread = new ImageTransferThread(serverIp);
|
||||||
|
imThread.start();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onPause(){
|
public void onPause(){
|
||||||
super.onPause();
|
super.onPause();
|
||||||
|
|
||||||
|
// TODO: Disconnect and destroy the imThread object.
|
||||||
|
|
||||||
cPreview.removePreviewCallback();
|
cPreview.removePreviewCallback();
|
||||||
cPreview.setCamera(null);
|
cPreview.setCamera(null);
|
||||||
releaseCamera();
|
releaseCamera();
|
||||||
|
@@ -9,11 +9,11 @@ import java.net.InetAddress;
|
|||||||
import java.net.Socket;
|
import java.net.Socket;
|
||||||
|
|
||||||
import ve.ucv.ciens.ccg.nxtcam.camera.CameraImageMonitor;
|
import ve.ucv.ciens.ccg.nxtcam.camera.CameraImageMonitor;
|
||||||
|
import ve.ucv.ciens.ccg.nxtcam.utils.Logger;
|
||||||
|
import ve.ucv.ciens.ccg.nxtcam.utils.Logger.LOG_TYPES;
|
||||||
import ve.ucv.ciens.ccg.nxtcam.utils.ProjectConstants;
|
import ve.ucv.ciens.ccg.nxtcam.utils.ProjectConstants;
|
||||||
import android.util.Log;
|
|
||||||
|
|
||||||
public class ImageTransferThread extends Thread{
|
public class ImageTransferThread extends Thread{
|
||||||
|
|
||||||
private final String TAG = "IM_THREAD";
|
private final String TAG = "IM_THREAD";
|
||||||
private final String CLASS_NAME = ImageTransferThread.class.getSimpleName();
|
private final String CLASS_NAME = ImageTransferThread.class.getSimpleName();
|
||||||
|
|
||||||
@@ -24,8 +24,10 @@ public class ImageTransferThread extends Thread{
|
|||||||
private BufferedWriter writer;
|
private BufferedWriter writer;
|
||||||
private BufferedReader reader;
|
private BufferedReader reader;
|
||||||
private byte[] image;
|
private byte[] image;
|
||||||
|
private String serverIp;
|
||||||
|
|
||||||
public ImageTransferThread(){
|
public ImageTransferThread(String serverIp){
|
||||||
|
this.serverIp = serverIp;
|
||||||
pause = false;
|
pause = false;
|
||||||
done = false;
|
done = false;
|
||||||
connected = false;
|
connected = false;
|
||||||
@@ -37,8 +39,9 @@ public class ImageTransferThread extends Thread{
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void run(){
|
public void run(){
|
||||||
if(!connected){
|
connectToServer();
|
||||||
Log.e(TAG, CLASS_NAME + ".run() :: Not connected to a server. Finishing thread.");
|
if(socket.isConnected()){
|
||||||
|
Logger.log(Logger.LOG_TYPES.ERROR, TAG, CLASS_NAME + ".run() :: Not connected to a server. Finishing thread.");
|
||||||
}else{
|
}else{
|
||||||
while(!done){
|
while(!done){
|
||||||
checkPause();
|
checkPause();
|
||||||
@@ -48,29 +51,37 @@ public class ImageTransferThread extends Thread{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void connectToServer(String serverIp){
|
private void connectToServer(){
|
||||||
try{
|
try{
|
||||||
if(ProjectConstants.DEBUG) Log.i(TAG, CLASS_NAME + ".connectToServer() :: Connecting to the server at " + serverIp);
|
Logger.log(Logger.LOG_TYPES.INFO, TAG, CLASS_NAME + ".connectToServer() :: Connecting to the server at " + serverIp);
|
||||||
socket = new Socket(InetAddress.getByName(serverIp), ProjectConstants.SERVER_TCP_PORT_1);
|
socket = new Socket(InetAddress.getByName(serverIp), ProjectConstants.SERVER_TCP_PORT_1);
|
||||||
writer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
|
writer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
|
||||||
reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
|
reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
|
||||||
connected = true;
|
Logger.log(Logger.LOG_TYPES.INFO, TAG, CLASS_NAME + ".connectToServer() :: Connection successful.");
|
||||||
if(ProjectConstants.DEBUG) Log.i(TAG, CLASS_NAME + ".connectToServer() :: Connection successful.");
|
|
||||||
}catch(IOException io){
|
}catch(IOException io){
|
||||||
Log.e(TAG, CLASS_NAME + ".connectToServer() :: Connection failed with message: " + io.getMessage());
|
Logger.log(Logger.LOG_TYPES.ERROR, TAG, CLASS_NAME + ".connectToServer() :: Connection failed with message: " + io.getMessage());
|
||||||
connected = false;
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void disconnect(){
|
||||||
|
if(socket != null && socket.isConnected()){
|
||||||
|
try{
|
||||||
|
socket.close();
|
||||||
|
}catch (IOException io) {
|
||||||
|
Logger.log(Logger.LOG_TYPES.ERROR, TAG, CLASS_NAME + ".connectToServer() :: " + io.getMessage());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public synchronized void finish(){
|
public synchronized void finish(){
|
||||||
done = true;
|
done = true;
|
||||||
if(ProjectConstants.DEBUG) Log.i(TAG, CLASS_NAME + ".finish() :: Finishing thread.");
|
Logger.log(Logger.LOG_TYPES.INFO, TAG, CLASS_NAME + ".finish() :: Finishing thread.");
|
||||||
}
|
}
|
||||||
|
|
||||||
private void checkPause(){
|
private void checkPause(){
|
||||||
synchronized (threadPauseMonitor){
|
synchronized (threadPauseMonitor){
|
||||||
while(pause){
|
while(pause){
|
||||||
if(ProjectConstants.DEBUG) Log.d(TAG, CLASS_NAME + ".checkPause() :: Pause requested.");
|
Logger.log(Logger.LOG_TYPES.DEBUG, TAG, CLASS_NAME + ".checkPause() :: Pause requested.");
|
||||||
try{ threadPauseMonitor.wait(); }catch(InterruptedException ie){}
|
try{ threadPauseMonitor.wait(); }catch(InterruptedException ie){}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -78,11 +89,11 @@ public class ImageTransferThread extends Thread{
|
|||||||
|
|
||||||
public synchronized void pauseThread(){
|
public synchronized void pauseThread(){
|
||||||
pause = true;
|
pause = true;
|
||||||
if(ProjectConstants.DEBUG) Log.d(TAG, CLASS_NAME + ".pauseThread() :: Pausing thread.");
|
Logger.log(Logger.LOG_TYPES.DEBUG, TAG, CLASS_NAME + ".pauseThread() :: Pausing thread.");
|
||||||
}
|
}
|
||||||
|
|
||||||
public synchronized void resumeThread(){
|
public synchronized void resumeThread(){
|
||||||
if(ProjectConstants.DEBUG) Log.d(TAG, CLASS_NAME + ".resumeThread() :: Resuming thread.");
|
Logger.log(Logger.LOG_TYPES.DEBUG, TAG, CLASS_NAME + ".resumeThread() :: Resuming thread.");
|
||||||
synchronized (threadPauseMonitor) {
|
synchronized (threadPauseMonitor) {
|
||||||
pause = false;
|
pause = false;
|
||||||
threadPauseMonitor.notifyAll();
|
threadPauseMonitor.notifyAll();
|
||||||
@@ -90,6 +101,9 @@ public class ImageTransferThread extends Thread{
|
|||||||
}
|
}
|
||||||
|
|
||||||
public boolean isConnected(){
|
public boolean isConnected(){
|
||||||
return connected;
|
if(socket != null && socket.isConnected())
|
||||||
|
return true;
|
||||||
|
else
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user