Rev 181 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 181 | Rev 208 | ||
---|---|---|---|
Line 8... | Line 8... | ||
8 | * Licence: Creative Commons / Non Commercial * |
8 | * Licence: Creative Commons / Non Commercial * |
9 | * Big Up: Holger&Ingo * |
9 | * Big Up: Holger&Ingo * |
10 | *********************************************************************************************************************************/ |
10 | *********************************************************************************************************************************/ |
Line 11... | Line 11... | ||
11 | 11 | ||
- | 12 | import javax.microedition.lcdui.*; |
|
Line 12... | Line 13... | ||
12 | import javax.microedition.lcdui.*; |
13 | import javax.microedition.rms.*; |
13 | 14 | ||
14 | public class MKMiniCanvas |
15 | public class MKMiniCanvas |
15 | extends Canvas |
16 | extends Canvas |
Line 16... | Line -... | ||
16 | implements Runnable |
- | |
Line -... | Line 17... | ||
- | 17 | implements Runnable |
|
- | 18 | { |
|
- | 19 | ||
17 | { |
20 | |
- | 21 | private BTSearcher bt_scanner; |
|
Line 18... | Line -... | ||
18 | - | ||
19 | - | ||
20 | - | ||
21 | int vibrating=0; |
- | |
22 | - | ||
23 | //BTAbstractor bt; |
- | |
24 | - | ||
25 | BTSearcher bt_scanner; |
- | |
26 | MKCommunicator mk=null; |
- | |
27 | MKStatistics mk_stat=null; |
- | |
28 | - | ||
29 | // data Section |
22 | private MKCommunicator mk=null; |
30 | 23 | private MKStatistics mk_stat=null; |
|
- | 24 | private String err=""; |
|
- | 25 | private MKMiniMidlet root; |
|
- | 26 | ||
- | 27 | public MKMiniCanvas(MKMiniMidlet _root) |
|
Line 31... | Line -... | ||
31 | public String err=""; |
- | |
32 | - | ||
Line -... | Line 28... | ||
- | 28 | { |
|
- | 29 | root=_root; |
|
- | 30 | ||
- | 31 | // mk = new MKCommunicator("btspp://000BCE016B5B:1"); |
|
- | 32 | //connect_mk("btspp://000BCE016B4F:1"); |
|
- | 33 | ||
- | 34 | ||
- | 35 | try |
|
- | 36 | { |
|
- | 37 | RecordStore recStore = RecordStore.openRecordStore("bturl", true ); |
|
- | 38 | ||
- | 39 | if (recStore.getNumRecords()==1) |
|
- | 40 | { |
|
- | 41 | byte[] recData = new byte[recStore.getRecordSize(1)]; |
|
- | 42 | int len = recStore.getRecord(1, recData, 0); |
|
- | 43 | rescan=false; |
|
- | 44 | connect_mk(new String(recData, 0, len)); |
|
- | 45 | } |
|
- | 46 | } |
|
33 | 47 | catch (Exception e) |
|
- | 48 | { |
|
34 | public MKMiniCanvas() |
49 | err+=e.toString(); |
Line -... | Line 50... | ||
- | 50 | } |
|
- | 51 | ||
Line 35... | Line 52... | ||
35 | { |
52 | if (mk==null) bt_scanner = new BTSearcher(); |
36 | 53 | ||
37 | bt_scanner = new BTSearcher(); |
54 | new Thread(this).start(); |
Line 51... | Line 68... | ||
51 | { |
68 | { |
52 | long loopStartTime = System.currentTimeMillis(); |
69 | long loopStartTime = System.currentTimeMillis(); |
53 | long sleeptime=0; |
70 | long sleeptime=0; |
54 | // ticked thing |
71 | // ticked thing |
Line -... | Line 72... | ||
- | 72 | ||
- | 73 | if (quit) |
|
- | 74 | { |
|
- | 75 | try |
|
- | 76 | { |
|
- | 77 | RecordStore recStore = RecordStore.openRecordStore("bturl", true ); |
|
- | 78 | ||
- | 79 | if (recStore.getNumRecords()==1) |
|
- | 80 | recStore.deleteRecord(1); |
|
- | 81 | byte[] rec = mk.mk_url.getBytes(); |
|
- | 82 | recStore.addRecord(rec, 0, rec.length); |
|
- | 83 | ||
- | 84 | } |
|
- | 85 | catch (Exception e) |
|
- | 86 | { |
|
- | 87 | err+=e.toString(); |
|
- | 88 | } |
|
- | 89 | ||
- | 90 | root.quit(); |
|
- | 91 | } |
|
- | 92 | if (rescan) |
|
- | 93 | { |
|
- | 94 | if (mk!=null) mk.close_connections(); |
|
- | 95 | mk=null; |
|
- | 96 | bt_scanner.search_again(); |
|
- | 97 | } |
|
- | 98 | ||
- | 99 | rescan=false; |
|
55 | 100 | ||
56 | com.nokia.mid.ui.DeviceControl.setLights(0,100); |
101 | com.nokia.mid.ui.DeviceControl.setLights(0,100); |
57 | //bt.tick(); |
102 | //bt.tick(); |
Line 82... | Line 127... | ||
82 | 127 | ||
83 | 128 | ||
- | 129 | ||
- | 130 | // drawing section |
|
84 | 131 | public void paint(Graphics g) { |
|
85 | // drawing section |
132 | |
86 | public void paint(Graphics g) { |
133 | int spacer=(g.getFont().getHeight()); |
Line 87... | Line 134... | ||
87 | g.setColor(0xFFFFFF); |
134 | g.setColor(0xFFFFFF); |
Line 94... | Line 141... | ||
94 | g.drawString("scanning for BT-Devices",0,0,Graphics.TOP | Graphics.LEFT); |
141 | g.drawString("scanning for BT-Devices",0,0,Graphics.TOP | Graphics.LEFT); |
95 | else |
142 | else |
96 | { |
143 | { |
97 | g.drawString("Press key 0-"+(bt_scanner.remote_device_count-1) + " to continue" ,0,0,Graphics.TOP | Graphics.LEFT); |
144 | g.drawString("Press key 0-"+(bt_scanner.remote_device_count-1) + " to continue" ,0,0,Graphics.TOP | Graphics.LEFT); |
98 | for (int i=0;i<bt_scanner.remote_device_count;i++) |
145 | for (int i=0;i<bt_scanner.remote_device_count;i++) |
99 | g.drawString("#"+i+">" + bt_scanner.remote_device_name[i]+"("+bt_scanner.remote_device_mac[i]+")",0,15+15*i,Graphics.TOP | Graphics.LEFT); |
146 | g.drawString("#"+i+">" + bt_scanner.remote_device_name[i]+"("+bt_scanner.remote_device_mac[i]+")",0,spacer+spacer*i,Graphics.TOP | Graphics.LEFT); |
Line 100... | Line 147... | ||
100 | 147 | ||
101 | } |
148 | } |
102 | } |
149 | } |
103 | else // MK is connected |
150 | else // MK is connected |
104 | { |
151 | { |
105 | int y_off=0; |
- | |
106 | int spacer=15; |
- | |
107 | g.drawString("#"+mk.data_count + "from:" + mk.mk_url,0,y_off,Graphics.TOP | Graphics.LEFT); |
- | |
108 | y_off+=spacer; |
- | |
109 | g.drawString("v"+mk.version_major+"."+mk.version_minor,0,y_off,Graphics.TOP | Graphics.LEFT); |
- | |
Line -... | Line 152... | ||
- | 152 | int y_off=0; |
|
- | 153 | ||
- | 154 | g.drawString("v"+mk.version_major+"."+mk.version_minor+"(d:"+mk.debug_data_count+ " l:" + mk.lcd_data_count+ " v:" + mk.version_data_count+" o:"+mk.other_data_count+")",0,y_off,Graphics.TOP | Graphics.LEFT); |
|
- | 155 | ||
- | 156 | y_off+=spacer; |
|
- | 157 | for ( int foo=0;foo<4;foo++) |
|
- | 158 | { |
|
- | 159 | g.drawString(mk.LCD.LCD_str[foo],0,y_off,Graphics.TOP | Graphics.LEFT); |
|
110 | y_off+=spacer; |
160 | y_off+=spacer; |
111 | 161 | } |
|
112 | try { |
162 | try { |
113 | g.drawString("motor1:"+mk.debug_data.analog[12],0,y_off,Graphics.TOP | Graphics.LEFT); |
163 | g.drawString("motor1:"+mk.debug_data.analog[12],0,y_off,Graphics.TOP | Graphics.LEFT); |
114 | y_off+=spacer; |
164 | y_off+=spacer; |
Line 124... | Line 174... | ||
124 | if (mk.connected) |
174 | if (mk.connected) |
125 | { |
175 | { |
126 | g.drawString("time conn:" +((System.currentTimeMillis()- mk.connection_start_time)/1000)+"s" ,0,y_off,Graphics.TOP | Graphics.LEFT); |
176 | g.drawString("time conn:" +((System.currentTimeMillis()- mk.connection_start_time)/1000)+"s" ,0,y_off,Graphics.TOP | Graphics.LEFT); |
127 | y_off+=spacer; |
177 | y_off+=spacer; |
128 | g.drawString("time motor>15:" +(mk_stat.motor_on_time/1000) +"s" ,0,y_off,Graphics.TOP | Graphics.LEFT); |
178 | g.drawString("time motor>15:" +(mk_stat.motor_on_time/1000) +"s" ,0,y_off,Graphics.TOP | Graphics.LEFT); |
- | 179 | y_off+=spacer; |
|
- | 180 | g.drawString("time motor=15:" +(mk_stat.motor_stand_time/1000) +"s" ,0,y_off,Graphics.TOP | Graphics.LEFT); |
|
129 | } |
181 | } |
Line 130... | Line 182... | ||
130 | 182 | ||
Line 131... | Line 183... | ||
131 | } |
183 | } |
Line -... | Line 184... | ||
- | 184 | ||
- | 185 | } |
|
- | 186 | ||
- | 187 | private void connect_mk(String url) |
|
- | 188 | { |
|
- | 189 | mk = new MKCommunicator(url); |
|
132 | 190 | mk_stat= new MKStatistics(mk); |
|
133 | } |
191 | } |
134 | 192 | ||
135 | /*********************************************** input Section **********************************************/ |
193 | /*********************************************** input Section **********************************************/ |
Line 136... | Line 194... | ||
136 | // keys |
194 | // keys |
137 | public void keyPressed(int keyCode) |
- | |
138 | { |
195 | public void keyPressed(int keyCode) |
- | 196 | { |
|
- | 197 | ||
- | 198 | if ((mk==null)&&(keyCode >= this.KEY_NUM0) && (keyCode < this.KEY_NUM0+bt_scanner.remote_device_count)) |
|
- | 199 | connect_mk("btspp://"+bt_scanner.remote_device_mac[keyCode-this.KEY_NUM0] + ":1"); |
|
- | 200 | else |
|
139 | 201 | { |
|
- | 202 | switch (keyCode) |
|
- | 203 | { |
|
- | 204 | case KEY_STAR: |
|
- | 205 | mk.other_data_count=23; |
|
- | 206 | quit=true; |
|
- | 207 | break; |
|
- | 208 | ||
- | 209 | case KEY_POUND: |
|
- | 210 | rescan=true; |
|
- | 211 | break; |
|
- | 212 | } |
|
- | 213 | switch (getGameAction (keyCode)) |
|
- | 214 | { |
|
- | 215 | case UP: |
|
- | 216 | mk.LCD.LCD_PREVPAGE(); |
|
- | 217 | break; |
|
- | 218 | ||
- | 219 | case DOWN: |
|
- | 220 | mk.LCD.LCD_NEXTPAGE(); |
|
140 | if ((mk==null)&&(keyCode >= this.KEY_NUM0) && (keyCode < this.KEY_NUM0+bt_scanner.remote_device_count)) |
221 | break; |
141 | { |
222 | } |
142 | mk = new MKCommunicator("btspp://"+bt_scanner.remote_device_mac[keyCode-this.KEY_NUM0] + ":1"); |
223 | } |