Subversion Repositories FlightCtrl

Rev

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
            }