-Client optimizations
-Implemented comprehensize logging system
git-svn-id: https://robotics.mvla.net/svn/frc971/2013/trunk/src@4143 f308d9b7-e957-4cde-b6ac-9a88185e7312
diff --git a/971CV/src/org/frc971/HTTPClient.java b/971CV/src/org/frc971/HTTPClient.java
index 4e42553..e5ea204 100644
--- a/971CV/src/org/frc971/HTTPClient.java
+++ b/971CV/src/org/frc971/HTTPClient.java
@@ -6,13 +6,16 @@
import java.net.*;
import java.awt.image.BufferedImage;
-import javax.imageio.ImageIO;
-
-import aos.ChannelImageGetter;
import java.nio.channels.SocketChannel;
import java.nio.ByteBuffer;
+import java.util.logging.Logger;
+
+import javax.imageio.ImageIO;
+
+import aos.ChannelImageGetter;
+
import edu.wpi.first.wpijavacv.WPIColorImage;
public class HTTPClient {
@@ -29,10 +32,14 @@
private final String ATOM_IP = "10.9.71.6";
+ private ChannelImageGetter cgetter;
+
+ private final static Logger LOG = Logger.getLogger(Logger.GLOBAL_LOGGER_NAME);
+
private void WriteDebug(String message) {
//small helper function to write debug messages
if (LOCAL_DEBUG)
- System.out.println(message);
+ LOG.info("LOCAL_DEBUG: " + message);
}
private String ReadtoBoundary(String boundary) {
//reads from socket until it encounters a specific character combination
@@ -43,7 +50,7 @@
core_sock.setSoTimeout(10000);
}
catch (SocketException e) {
- System.err.println("Warning: Could not set socket timeout.");
+ LOG.warning("Could not set socket timeout.");
}
try {
int ret;
@@ -67,11 +74,11 @@
}
}
catch (InterruptedIOException e) {
- System.err.println("Warning: Image receive timed out.");
+ LOG.warning("Image receive timed out.");
return null;
}
catch (IOException e) {
- System.err.println("Error: Socket read failed.");
+ LOG.severe("Socket read failed.");
return null;
}
return message;
@@ -81,7 +88,7 @@
try {
sock = SocketChannel.open();
core_sock = sock.socket();
- WriteDebug("Connecting to server...");
+ WriteDebug("Connecting to server at " + ATOM_IP);
sock.connect(new InetSocketAddress(ATOM_IP, 9714));
sock_in = new BufferedReader(new InputStreamReader(core_sock.getInputStream()));
sock_out = new PrintWriter(core_sock.getOutputStream(), true);
@@ -93,13 +100,14 @@
WriteDebug("Reading headers...");
ReadtoBoundary("donotcross\r\n");
WriteDebug("Now receiving data.");
+ cgetter = new ChannelImageGetter(sock);
}
catch (UnknownHostException e) {
- System.err.println("Error: Invalid host.");
+ LOG.severe("Invalid host.");
System.exit(1);
}
catch (IOException e) {
- System.err.println("Error: Socket IO failed.");
+ LOG.severe("Socket IO failed.");
System.exit(2);
}
@@ -107,26 +115,18 @@
public ImageWithTimestamp GetFrame() {
//Use Brian's code to extract an image and timestamp from raw server data.
ImageWithTimestamp final_image = new ImageWithTimestamp();
+ ByteBuffer binary_image = cgetter.getJPEG();
+ //Decode ByteBuffer into an IplImage
+ InputStream in = new ByteArrayInputStream(binary_image.array());
try {
- ChannelImageGetter cgetter = new ChannelImageGetter(sock);
- ByteBuffer binary_image = cgetter.getJPEG();
- //Decode ByteBuffer into an IplImage
- InputStream in = new ByteArrayInputStream(binary_image.array());
- try {
- BufferedImage bImageFromConvert = ImageIO.read(in);
- final_image.image = new WPIColorImage(bImageFromConvert);
- final_image.timestamp = cgetter.getTimestamp();
- WriteDebug("Image processing successful.");
- return final_image;
- }
- catch (IOException e) {
- System.err.println(e.getMessage());
- return null;
- }
-
+ BufferedImage bImageFromConvert = ImageIO.read(in);
+ final_image.image = new WPIColorImage(bImageFromConvert);
+ final_image.timestamp = cgetter.getTimestamp();
+ WriteDebug("Image processing successful.");
+ return final_image;
}
catch (IOException e) {
- WriteDebug("Error: Failed to initialize ChannelImageGetter.");
+ LOG.warning("Image processing failed.");
return null;
}
}