Subversion Repositories FlightCtrl

Compare Revisions

Ignore whitespace Rev 389 → Rev 390

/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;