OSDN Git Service

ce2b715192ac49fd0aedaa9704561efe3756a4fa
[nxt-jsp/lejos_nxj.git] / nxtOSEK / lejos_nxj / src / java / pctools / lejos / pc / tools / Connector.java
1 import java.io.*;\r
2    \r
3 import lejos.pc.comm.*;\r
4 \r
5    /**\r
6     * conneccts to a NXT using either Bluetooth or USB  and builds  input and output data streams.\r
7     *@author  Roger Glassey  22/08/2007\r
8     */\r
9    \r
10 public class Connector\r
11 {\r
12    private boolean _usb = false;\r
13       DataInputStream dataIn;\r
14       DataOutputStream dataOut;\r
15       InputStream is;\r
16       OutputStream os;\r
17       NXTComm nxtComm;\r
18  /**\r
19   * \r
20   * @param NXT can be the friendly name of the NXT or a 16 character address\r
21   * @param useUSB\r
22   * @return true if connection was made\r
23   */     \r
24       public  boolean  startConnector(String NXT, boolean useUSB)   \r
25       {\r
26          NXTInfo[] nxtInfo ;\r
27          _usb = useUSB;\r
28          if(_usb)\r
29          { \r
30             nxtComm = new NXTCommLibnxt();\r
31             System.out.println("searching");\r
32             nxtInfo = nxtComm.search(null, NXTCommFactory.USB);       \r
33             if (nxtInfo.length == 0) \r
34             {\r
35                System.out.println("No NXT Found");\r
36                return false;\r
37             }\r
38             nxtComm.open(nxtInfo[0]);\r
39             System.out.println(" Opened "+nxtInfo[0].name);\r
40          }\r
41          else\r
42          {\r
43             nxtComm = NXTCommFactory.createNXTComm(NXTCommFactory.BLUETOOTH);\r
44             if(NXT == null || NXT == " ")\r
45             {\r
46                System.out.println("search for all");\r
47                nxtInfo = nxtComm.search(NXT, NXTCommFactory.BLUETOOTH); \r
48             }\r
49             else if(NXT.length()<8)\r
50             {\r
51                System.out.println("search for " +NXT);\r
52                nxtInfo = nxtComm.search(NXT,  NXTCommFactory.BLUETOOTH);\r
53 \r
54             }\r
55             else\r
56             {     \r
57                nxtInfo = new NXTInfo[1];\r
58                nxtInfo[0] = new NXTInfo("unknown ",NXT);// NXT is actually address\r
59             }\r
60             if (nxtInfo.length == 0) \r
61             {\r
62                System.out.println("No NXT Found:  is BT adatper on? is NXT on? ");\r
63                System.exit(1);\r
64             }\r
65             System.out.println("Connecting to " + nxtInfo[0].name+" "+nxtInfo[0].btDeviceAddress);\r
66             boolean opened = nxtComm.open(nxtInfo[0]);       \r
67             if (!opened) {\r
68                System.out.println("Failed to open " +  nxtInfo[0].name+" "+nxtInfo[0].btDeviceAddress);\r
69                System.exit(1);\r
70             }     \r
71             System.out.println("Connected to " + nxtInfo[0].name);\r
72          }\r
73          is = nxtComm.getInputStream();\r
74          dataIn = new DataInputStream( nxtComm.getInputStream()); \r
75          os = nxtComm.getOutputStream();\r
76          dataOut = new DataOutputStream(os);\r
77         return true;\r
78       }\r
79       /**\r
80        * @return the InputStream for this connection;\r
81        */\r
82       public InputStream getInputStream(){return is;}\r
83       \r
84       /**\r
85        * @return the DataInputStream for this connection;\r
86        */\r
87       public  DataInputStream getDataIn(){return dataIn;}\r
88       \r
89       /**\r
90        * @return the OutputSteram for this connection;\r
91        */\r
92       public OutputStream getOutputStream(){return os;}\r
93       \r
94    /**\r
95     * @return the DataOutputStream for this connection\r
96     */\r
97       public  DataOutputStream getDataOut() {return dataOut;}  \r
98 \r
99 \r
100       public static void main(String[] args)\r
101       {\r
102          Connector con = new Connector();\r
103          con.startConnector("NXT",false);\r
104 //         DataInputStream din= btm.getDataIn();\r
105 //         while(true)\r
106 //         {\r
107 //           try{ System.out.println(din.readFloat());}  catch(IOException e){}\r
108 //         }\r
109          \r
110       }\r
111       \r
112    }\r
113 \r
114 \r