Blame |
Last modification |
View Log
| RSS feed
/*********************************************************************************************************************************
* *
* minimal canvas to test Abstraction layer on various Phones *
* *
* Author: Marcus -LiGi- Bueschleb *
* Project-Start: 9/2007 *
* Mailto: ligi@smart4mobile.de *
* Licence: Creative Commons / Non Commercial *
* Big Up: Holger&Ingo *
*********************************************************************************************************************************/
import javax.microedition.lcdui.*;
public class MKMiniCanvas
extends Canvas
implements Runnable
{
int vibrating=
0;
//BTAbstractor bt;
BTSearcher bt_scanner
;
MKCommunicator mk=
null;
MKStatistics mk_stat=
null;
// data Section
public String err=
"";
public MKMiniCanvas
()
{
bt_scanner =
new BTSearcher
();
//////////////////////////////////////////////////////////////////////////////mk = new MKCommunicator("btspp://000BCE016B5B:1");
new Thread(this).
start();
}
/********************************************************** Thread ***********************************************************/
// ticking runnable Section
public void run
()
{
while(true)
{
long loopStartTime =
System.
currentTimeMillis();
long sleeptime=
0;
// ticked thing
com.
nokia.
mid.
ui.
DeviceControl.
setLights(0,
100);
//bt.tick();
// every state has sth to do in tick section
// System.gc();
repaint
();
serviceRepaints
();
sleeptime=
1000/
15 -
(int) (System.
currentTimeMillis()- loopStartTime
);
if (sleeptime
<0)
sleeptime=
100; // everyone has fi sleep
try { Thread.
sleep(sleeptime
); }
catch (Exception e
)
{
err=
"Problem Sleeping ";
}
}
}
// drawing section
public void paint
(Graphics g
) {
g.
setColor(0xFFFFFF
);
g.
fillRect(0,
0,
this.
getWidth(),
this.
getHeight());
g.
setColor(0x000000
);
if (mk==
null)
{
if (bt_scanner.
searching)
g.
drawString("scanning for BT-Devices",
0,
0,
Graphics.
TOP |
Graphics.
LEFT);
else
{
g.
drawString("Press key 0-"+
(bt_scanner.
remote_device_count-
1) +
" to continue" ,
0,
0,
Graphics.
TOP |
Graphics.
LEFT);
for (int i=
0;i
<bt_scanner.
remote_device_count;i++
)
g.
drawString("#"+i+
">" + bt_scanner.
remote_device_name[i
]+
"("+bt_scanner.
remote_device_mac[i
]+
")",
0,
15+
15*i,
Graphics.
TOP |
Graphics.
LEFT);
}
}
else // MK is connected
{
int y_off=
0;
int spacer=
15;
g.
drawString("#"+mk.
data_count +
"from:" + mk.
mk_url,
0,y_off,
Graphics.
TOP |
Graphics.
LEFT);
y_off+=spacer
;
g.
drawString("v"+mk.
version_major+
"."+mk.
version_minor,
0,y_off,
Graphics.
TOP |
Graphics.
LEFT);
y_off+=spacer
;
try {
g.
drawString("motor1:"+mk.
debug_data.
analog[12],
0,y_off,
Graphics.
TOP |
Graphics.
LEFT);
y_off+=spacer
;
g.
drawString("motor2:"+mk.
debug_data.
analog[13],
0,y_off,
Graphics.
TOP |
Graphics.
LEFT);
y_off+=spacer
;
g.
drawString("motor3:"+mk.
debug_data.
analog[14],
0,y_off,
Graphics.
TOP |
Graphics.
LEFT);
y_off+=spacer
;
g.
drawString("motor4:"+mk.
debug_data.
analog[15],
0,y_off,
Graphics.
TOP |
Graphics.
LEFT);
y_off+=spacer
;
}
catch (Exception e
) { }
if (mk.
connected)
{
g.
drawString("time conn:" +
((System.
currentTimeMillis()- mk.
connection_start_time)/
1000)+
"s" ,
0,y_off,
Graphics.
TOP |
Graphics.
LEFT);
y_off+=spacer
;
g.
drawString("time motor>15:" +
(mk_stat.
motor_on_time/
1000) +
"s" ,
0,y_off,
Graphics.
TOP |
Graphics.
LEFT);
}
}
}
/*********************************************** input Section **********************************************/
// keys
public void keyPressed
(int keyCode
)
{
if ((mk==
null)&&(keyCode
>=
this.
KEY_NUM0) && (keyCode
< this.
KEY_NUM0+bt_scanner.
remote_device_count))
{
mk =
new MKCommunicator
("btspp://"+bt_scanner.
remote_device_mac[keyCode-
this.
KEY_NUM0] +
":1");
mk_stat=
new MKStatistics
(mk
);
}
return;
}
}