OSDN Git Service

lejos_NXJ_win32_0_4_0beta.zip
[nxt-jsp/lejos_nxj.git] / nxtOSEK / lejos_nxj / src / java / pctools / lejos / pc / tools / Connector.java
diff --git a/nxtOSEK/lejos_nxj/src/java/pctools/lejos/pc/tools/Connector.java b/nxtOSEK/lejos_nxj/src/java/pctools/lejos/pc/tools/Connector.java
new file mode 100644 (file)
index 0000000..ce2b715
--- /dev/null
@@ -0,0 +1,114 @@
+import java.io.*;\r
+   \r
+import lejos.pc.comm.*;\r
+\r
+   /**\r
+    * conneccts to a NXT using either Bluetooth or USB  and builds  input and output data streams.\r
+    *@author  Roger Glassey  22/08/2007\r
+    */\r
+   \r
+public class Connector\r
+{\r
+   private boolean _usb = false;\r
+      DataInputStream dataIn;\r
+      DataOutputStream dataOut;\r
+      InputStream is;\r
+      OutputStream os;\r
+      NXTComm nxtComm;\r
+ /**\r
+  * \r
+  * @param NXT can be the friendly name of the NXT or a 16 character address\r
+  * @param useUSB\r
+  * @return true if connection was made\r
+  */     \r
+      public  boolean  startConnector(String NXT, boolean useUSB)   \r
+      {\r
+         NXTInfo[] nxtInfo ;\r
+         _usb = useUSB;\r
+         if(_usb)\r
+         { \r
+            nxtComm = new NXTCommLibnxt();\r
+            System.out.println("searching");\r
+            nxtInfo = nxtComm.search(null, NXTCommFactory.USB);       \r
+            if (nxtInfo.length == 0) \r
+            {\r
+               System.out.println("No NXT Found");\r
+               return false;\r
+            }\r
+            nxtComm.open(nxtInfo[0]);\r
+            System.out.println(" Opened "+nxtInfo[0].name);\r
+         }\r
+         else\r
+         {\r
+            nxtComm = NXTCommFactory.createNXTComm(NXTCommFactory.BLUETOOTH);\r
+            if(NXT == null || NXT == " ")\r
+            {\r
+               System.out.println("search for all");\r
+               nxtInfo = nxtComm.search(NXT, NXTCommFactory.BLUETOOTH); \r
+            }\r
+            else if(NXT.length()<8)\r
+            {\r
+               System.out.println("search for " +NXT);\r
+               nxtInfo = nxtComm.search(NXT,  NXTCommFactory.BLUETOOTH);\r
+\r
+            }\r
+            else\r
+            {     \r
+               nxtInfo = new NXTInfo[1];\r
+               nxtInfo[0] = new NXTInfo("unknown ",NXT);// NXT is actually address\r
+            }\r
+            if (nxtInfo.length == 0) \r
+            {\r
+               System.out.println("No NXT Found:  is BT adatper on? is NXT on? ");\r
+               System.exit(1);\r
+            }\r
+            System.out.println("Connecting to " + nxtInfo[0].name+" "+nxtInfo[0].btDeviceAddress);\r
+            boolean opened = nxtComm.open(nxtInfo[0]);       \r
+            if (!opened) {\r
+               System.out.println("Failed to open " +  nxtInfo[0].name+" "+nxtInfo[0].btDeviceAddress);\r
+               System.exit(1);\r
+            }     \r
+            System.out.println("Connected to " + nxtInfo[0].name);\r
+         }\r
+         is = nxtComm.getInputStream();\r
+         dataIn = new DataInputStream( nxtComm.getInputStream()); \r
+         os = nxtComm.getOutputStream();\r
+         dataOut = new DataOutputStream(os);\r
+        return true;\r
+      }\r
+      /**\r
+       * @return the InputStream for this connection;\r
+       */\r
+      public InputStream getInputStream(){return is;}\r
+      \r
+      /**\r
+       * @return the DataInputStream for this connection;\r
+       */\r
+      public  DataInputStream getDataIn(){return dataIn;}\r
+      \r
+      /**\r
+       * @return the OutputSteram for this connection;\r
+       */\r
+      public OutputStream getOutputStream(){return os;}\r
+      \r
+   /**\r
+    * @return the DataOutputStream for this connection\r
+    */\r
+      public  DataOutputStream getDataOut() {return dataOut;}  \r
+\r
+\r
+      public static void main(String[] args)\r
+      {\r
+         Connector con = new Connector();\r
+         con.startConnector("NXT",false);\r
+//         DataInputStream din= btm.getDataIn();\r
+//         while(true)\r
+//         {\r
+//           try{ System.out.println(din.readFloat());}  catch(IOException e){}\r
+//         }\r
+         \r
+      }\r
+      \r
+   }\r
+\r
+\r