/branches/ligi_j2me/README |
---|
9,9 → 9,9 |
* |
* Author: Marcus -LiGi- Bueschleb |
* Project-Start: 9/2007 |
* Version: 0.37 |
* Version: 0.40 |
* Mailto: ligi |
* at |
* -at- |
* smart4mobile.de |
* |
* Licence: http://creativecommons.org/licenses/by-nc-sa/2.0/de/ |
64,13 → 64,15 |
RIGHT next motor |
*** Tested on: |
SE - K800i |
Nokia - N95 |
SE - W800i |
Nokia - 6234 |
Nokia - N80 ( Font is too Big - but API worx) |
Nokia - 6230i ( without copter ) |
SE K800i |
SE W800i |
Nokia N95 |
Nokia 6234 |
Nokia 6131 |
Nokia N80 |
Nokia 6230i ( without MK ) |
*** Compile: |
- install some tools to fullfill Compile-Dependencys ( see below ) |
- Set the path to WTK it in build.xml |
87,9 → 89,12 |
- Obfuscator (e.g. Proguard from http://sourceforge.net/project/showfiles.php?group_id=54750 |
) when willing to obfuscate |
- ANT |
- Ruby for some scripts around the build process |
*** ToDo: |
- Proxying to TCP/IP ( GPRS / UMTS / WLAN ( e.g. N80) .. ) |
- rescan |
- internationalize Stings |
- measure DebugSets per Second |
- log data/csv ( send via TCP/IP ; save ) |
- Sound Alarms on Batt low or other triggers |
136,6 → 141,7 |
0.35 - Proxy server test script |
0.36 - initial Proxy-function in DUBwise ( send data recieved from mk to socket ) |
0.37 - write ParamSets / BugFixing |
0.38 - scrolling intro string ( some EYE-Candy ) |
0.39 - rotation instead of clipping in main menu select |
0.40 - Input Values in ParameterEditor via KEY0..KEY9 |
/branches/ligi_j2me/build.xml |
---|
25,7 → 25,7 |
manifest="${build_dir}/bin/MANIFEST.MF" |
name="${project_name}" |
vendor="LiGi" |
version="0.37"> |
version="0.40"> |
<attribute name="MIDletX-No-Command" value="true"/> |
<attribute name="MIDlet-Icon" value="i.png"/> |
<midlet name="${project_name}" class="${project_name}" icon="i.png" /> |
/branches/ligi_j2me/src/MKMiniCanvas.java |
---|
5,7 → 5,8 |
* Author: Marcus -LiGi- Bueschleb |
* Project-Start: 9/2007 |
* Mailto: ligi@smart4mobile.de |
* Licence: Creative Commons / Non Commercial |
* Licence: Creative Commons / Non Commercial |
* ( see README for exact terms of usage) |
* Big Up: Holger&Ingo |
***************************************************************/ |
18,6 → 19,7 |
implements Runnable |
{ |
// name/handle for the recordStore to memorize some stuff |
private final static String RECORD_STORE_NAME="bluetoothurl"; |
private BTSearcher bt_scanner; |
54,11 → 56,10 |
boolean rescan=true; |
int bg_offset=0; |
// variable to hold the current state |
public int state=-1; |
// id for each state - must just be uniq - order dont matter |
// id for each state - must just be uniq - order isnt important |
public final static int STATEID_SCANNING =0; |
public final static int STATEID_DEVICESELECT =1; |
public final static int STATEID_MAINMENU =2; |
108,10 → 109,13 |
{ |
case UP: |
if (act_menu_select!=0) act_menu_select--; |
else |
act_menu_select=menu_items.length-1; |
break; |
case DOWN: |
if (act_menu_select<(menu_items.length-1)) act_menu_select++; |
else act_menu_select=0; |
break; |
} |
251,9 → 255,20 |
break; |
case STATEID_SCANNING: |
intro_str_delay--; |
if (intro_str_delay<0) |
{ |
intro_str_delay=1; |
if (intro_str_pos>intro_str.length()) |
intro_str_pos=0; |
lcd_lines[3]=intro_str.substring(intro_str_pos, (((intro_str_pos+20)>intro_str.length())?intro_str.length():intro_str_pos+20)); |
intro_str_pos++; |
} |
if (!bt_scanner.searching) |
chg_state(STATEID_DEVICESELECT); |
break; |
511,7 → 526,11 |
/*********************************************** input Section **********************************************/ |
public final String intro_str=" Digital Ufo Broadcasting with intelligent service equipment by Marcus -LiGi- Bueschleb ; Big Up Holger / Ingo for the MikroKopter Project (http://www.mikrokopter.de) "; |
int intro_str_pos=0; |
int intro_str_delay=3; |
public void chg_state(int next_state) |
{ |
act_menu_select=0; |
519,10 → 538,11 |
switch(next_state) |
{ |
case STATEID_SCANNING: |
lcd_lines=new String[3]; |
lcd_lines=new String[4]; |
lcd_lines[0]="Scanning for Devices"; |
lcd_lines[1]=" "; |
lcd_lines[2]="DUBwise v0.37 "; |
lcd_lines[2]="DUBwise v0.40 "; |
lcd_lines[3]=intro_str.substring(0,20); |
mk.close_connections(true); |
bt_scanner.search(); |
545,10 → 565,11 |
break; |
case STATEID_DEVICESELECT: |
menu_items=new String[bt_scanner.remote_device_count]; |
menu_items=new String[bt_scanner.remote_device_count+1]; |
for (int i=0;i<bt_scanner.remote_device_count;i++) |
menu_items[i]=bt_scanner.remote_device_name[i]; |
lcd_lines=new String[bt_scanner.remote_device_count]; |
menu_items[bt_scanner.remote_device_count]="scan again"; |
lcd_lines=new String[bt_scanner.remote_device_count+1]; |
break; |
case STATEID_MAINMENU: |
677,6 → 698,7 |
else menu_keypress(keyCode); |
break; |
case STATEID_DEVICESELECT: |
/* |
if ((keyCode >= this.KEY_NUM0) && (keyCode < this.KEY_NUM0+bt_scanner.remote_device_count)) |
{ |
connect_mk("btspp://"+bt_scanner.remote_device_mac[keyCode-this.KEY_NUM0] + ":1",bt_scanner.remote_device_name[keyCode-this.KEY_NUM0]); |
683,12 → 705,21 |
chg_state(STATEID_MAINMENU); |
} |
else |
*/ |
if ( getGameAction (keyCode)==FIRE ) |
{ |
connect_mk("btspp://"+bt_scanner.remote_device_mac[act_menu_select] + ":1",bt_scanner.remote_device_name[act_menu_select]); |
chg_state(STATEID_MAINMENU); |
if (bt_scanner.remote_device_count > act_menu_select) |
{ |
connect_mk("btspp://"+bt_scanner.remote_device_mac[act_menu_select] + ":1",bt_scanner.remote_device_name[act_menu_select]); |
chg_state(STATEID_MAINMENU); |
} |
else |
chg_state(STATEID_SCANNING); |
} |
else menu_keypress(keyCode); |
break; |
case STATEID_EDIT_PARAMS: |
/branches/ligi_j2me/src/MKParamsEditor.java |
---|
113,9 → 113,9 |
{ |
lcd_lines[1+2*i]=tab_entrys[act_tab][i]; |
if (tab_entry_types[act_tab][i]== PARAMTYPE_BOOLEAN) |
lcd_lines[2+2*i]=(((canvas.mk.params.field_from_act(tab_entry_src[act_tab][i][0])&(1<<tab_entry_src[act_tab][i][1]))==0)?"off":"on" ) ; |
lcd_lines[2+2*i]=(((canvas.mk.params.get_field_from_act(tab_entry_src[act_tab][i][0])&(1<<tab_entry_src[act_tab][i][1]))==0)?"off":"on" ) ; |
if (tab_entry_types[act_tab][i]== PARAMTYPE_BYTE) |
lcd_lines[2+2*i]=""+canvas.mk.params.field_from_act(tab_entry_src[act_tab][i][0]); |
lcd_lines[2+2*i]=""+canvas.mk.params.get_field_from_act(tab_entry_src[act_tab][i][0]); |
} |
143,6 → 143,9 |
} |
public final static int KEYCODE_CLEAR=-8; |
public void keypress (int keyCode,int action) |
{ |
if (act_y==0) switch (action) |
156,38 → 159,58 |
break; |
} |
else |
switch (action) |
{ |
case Canvas.RIGHT: |
switch(tab_entry_types[act_tab][act_y/2-1]) |
if(tab_entry_types[act_tab][act_y/2-1]==PARAMTYPE_BYTE) |
{ |
case PARAMTYPE_BOOLEAN: |
canvas.mk.params.field_from_act_xor(tab_entry_src[act_tab][act_y/2-1][0],1<<tab_entry_src[act_tab][act_y/2-1][1]); |
break; |
case PARAMTYPE_BYTE: |
canvas.mk.params.field_from_act_add(tab_entry_src[act_tab][act_y/2-1][0],1); |
break; |
if ((keyCode >= Canvas.KEY_NUM0) && (keyCode <= Canvas.KEY_NUM9)) |
{ |
if( Math.abs(canvas.mk.params.get_field_from_act(tab_entry_src[act_tab][act_y/2-1][0]))*10+(keyCode - Canvas.KEY_NUM0)<1000) |
canvas.mk.params.set_field_from_act(tab_entry_src[act_tab][act_y/2-1][0] , Math.abs(canvas.mk.params.get_field_from_act(tab_entry_src[act_tab][act_y/2-1][0]))*10+(keyCode - Canvas.KEY_NUM0)); |
return; |
} |
else |
if ( keyCode==KEYCODE_CLEAR) |
canvas.mk.params.set_field_from_act(tab_entry_src[act_tab][act_y/2-1][0],0); |
} |
break; |
switch (action) |
{ |
case Canvas.RIGHT: |
switch(tab_entry_types[act_tab][act_y/2-1]) |
{ |
case PARAMTYPE_BOOLEAN: |
canvas.mk.params.field_from_act_xor(tab_entry_src[act_tab][act_y/2-1][0],1<<tab_entry_src[act_tab][act_y/2-1][1]); |
break; |
case PARAMTYPE_BYTE: |
if (canvas.mk.params.get_field_from_act(tab_entry_src[act_tab][act_y/2-1][0])<255) |
canvas.mk.params.field_from_act_add(tab_entry_src[act_tab][act_y/2-1][0],1); |
break; |
} |
break; |
case Canvas.LEFT: |
switch(tab_entry_types[act_tab][act_y/2-1]) |
{ |
case PARAMTYPE_BOOLEAN: |
case Canvas.LEFT: |
switch(tab_entry_types[act_tab][act_y/2-1]) |
{ |
case PARAMTYPE_BOOLEAN: |
canvas.mk.params.field_from_act_xor(tab_entry_src[act_tab][act_y/2-1][0],1<<tab_entry_src[act_tab][act_y/2-1][1]); |
break; |
case PARAMTYPE_BYTE: |
canvas.mk.params.field_from_act_add(tab_entry_src[act_tab][act_y/2-1][0],-1); |
break; |
} |
break; |
canvas.mk.params.field_from_act_xor(tab_entry_src[act_tab][act_y/2-1][0],1<<tab_entry_src[act_tab][act_y/2-1][1]); |
break; |
case PARAMTYPE_BYTE: |
if (canvas.mk.params.get_field_from_act(tab_entry_src[act_tab][act_y/2-1][0])>0) |
canvas.mk.params.field_from_act_add(tab_entry_src[act_tab][act_y/2-1][0],-1); |
break; |
} |
break; |
} |
} |
switch (action) |
{ |
/branches/ligi_j2me/src/MKParamsParser.java |
---|
21,11 → 21,13 |
public int act_paramset=0; |
public int field_from_act(int pos) |
{ |
return field[act_paramset][pos]; |
} |
public int get_field_from_act(int pos) |
{ return field[act_paramset][pos]; } |
public void set_field_from_act(int pos,int val) |
{ field[act_paramset][pos]=val; } |
public void field_from_act_add(int pos,int val) |
{ |
field[act_paramset][pos]+=val; |