/branches/ligi_j2me/README |
---|
9,7 → 9,7 |
* |
* Author: Marcus -LiGi- Bueschleb |
* Project-Start: 9/2007 |
* Version: 0.29 |
* Version: 0.36 |
* Mailto: ligi@smart4mobile.de |
* |
* Licence: http://creativecommons.org/licenses/by-nc-sa/2.0/de/ |
88,6 → 88,7 |
- measure DebugSets per Second |
- log data/csv ( send via TCP/IP ; save ) |
- Sound Alarms on Batt low or other triggers |
- Flash new MK Version ( with online connectivity it could be an automatic update reminder ) |
- set MK-Parameters |
- making lib to be useable with desktop JAVA / will be sceduled after bluecove for linux is ready ( anounced for next Version) |
- triangulate MK by BT rssi |
127,3 → 128,6 |
0.32 - Main Menu |
0.33 - Bugfix / Code CleanUp |
0.34 - select ParamSet to edit |
0.35 - Proxy server test script |
0.36 - initial Proxy-function in DUBwise ( send data recieved from mk to socket ) |
/branches/ligi_j2me/bin/v0.36/DUBwise_128x.jad |
---|
0,0 → 1,8 |
MIDlet-Jar-URL: DUBwise_128x.jar |
MIDlet-Jar-Size: 50187 |
MIDlet-Name: DUBwise |
MIDlet-Vendor: LiGi |
MIDlet-Version: 0.36 |
MIDlet-1: DUBwise, i.png, DUBwise |
MIDletX-No-Command: true |
MIDlet-Icon: i.png |
/branches/ligi_j2me/bin/v0.36/DUBwise_128x.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/ligi_j2me/bin/v0.36/DUBwise_176x220.jad |
---|
0,0 → 1,8 |
MIDlet-Jar-URL: DUBwise_176x220.jar |
MIDlet-Jar-Size: 56411 |
MIDlet-Name: DUBwise |
MIDlet-Vendor: LiGi |
MIDlet-Version: 0.36 |
MIDlet-1: DUBwise, i.png, DUBwise |
MIDletX-No-Command: true |
MIDlet-Icon: i.png |
/branches/ligi_j2me/bin/v0.36/DUBwise_176x220.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/ligi_j2me/bin/v0.36/DUBwise_240x320.jad |
---|
0,0 → 1,8 |
MIDlet-Jar-URL: DUBwise_240x320.jar |
MIDlet-Jar-Size: 50484 |
MIDlet-Name: DUBwise |
MIDlet-Vendor: LiGi |
MIDlet-Version: 0.36 |
MIDlet-1: DUBwise, i.png, DUBwise |
MIDletX-No-Command: true |
MIDlet-Icon: i.png |
/branches/ligi_j2me/bin/v0.36/DUBwise_240x320.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/ligi_j2me/build.xml |
---|
25,7 → 25,7 |
manifest="${build_dir}/bin/MANIFEST.MF" |
name="${project_name}" |
vendor="LiGi" |
version="0.34"> |
version="0.36"> |
<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/build_all.rb |
---|
7,7 → 7,8 |
resdir="res/" |
`ant clean` |
puts `mv build.props build.props.bak` |
puts `ant clean` |
Dir[resdir+"*"].each { |res_type| |
res_type.gsub!(resdir,"") |
20,4 → 21,5 |
log= `ant build` |
log.each_line { |l| puts l } |
} |
puts `mv -v build.props.bak build.props` |
/branches/ligi_j2me/res/128x/bg.jpg |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/ligi_j2me/res/128x/bt.png |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/ligi_j2me/res/128x/i.png |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/ligi_j2me/res/128x/lcd.png |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/ligi_j2me/res/128x/load.png |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/ligi_j2me/res/176x220/lcd.png |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/ligi_j2me/server_side/tcp2serial/tcp2serial.rb |
---|
0,0 → 1,12 |
require 'socket' |
port=2323 |
server=TCPServer.new('192.168.1.42',port) |
while (session=server.accept) |
puts "accept session: " + session.inspect |
session.print "OK" |
while (input=session.gets) |
p input |
end |
end |
/branches/ligi_j2me/src/MKCommunicator.java |
---|
29,6 → 29,7 |
public MKDebugData debug_data; |
public MKParamsParser params; |
public MKWatchDog watchdog; |
public MKProxy proxy=null; |
public long connection_start_time=-1; |
50,6 → 51,7 |
public int params_data_count=0; |
String name; |
/****************** Section: public Methods ************************************************/ |
66,6 → 68,10 |
} |
public void do_proxy(String proxy_url) |
{ |
proxy=new MKProxy(proxy_url); |
} |
// URL string: "btspp://XXXXXXXXXXXX:1" - the X-Part is the MAC-Adress of the Bluetooth-Device connected to the Fligth-Control |
public void connect_to(String _url,String _name) |
242,7 → 248,7 |
case 'N': |
case 'O': |
case 'P': |
params.set_by_mk_data(Decode64(data,3,58),version); |
params.set_by_mk_data((int)(data[2]-'L'),Decode64(data,3,58),version); |
params_data_count++; |
break; |
297,12 → 303,23 |
// recieve data-set |
while ((input != 13)) // &&(input!=-1)) |
{ |
input = reader.read() ; |
if (proxy!=null) |
proxy.writer.write(input); |
if (input==-1) throw new Exception("test"); |
data_set[pos]=input; |
pos++; |
} |
if (proxy!=null) |
{ |
proxy.writer.write('\r'); |
proxy.writer.write('\n'); |
proxy.writer.flush(); |
} |
process_data(data_set,pos); |
} |
/branches/ligi_j2me/src/MKMiniCanvas.java |
---|
58,14 → 58,30 |
public final static int STATEID_SCANNING=0; |
public final static int STATEID_DEVICESELECT=1; |
public final static int STATEID_MAINMENU=2; |
public final static int STATEID_MOTORTEST=3; |
public final static int STATEID_SELECT_PARAMSET=4; |
public final static int STATEID_EDIT_PARAMS=5; |
public final static int STATEID_FLIGHTVIEW=6; |
// id for each state - must just be uniq - order dont matter |
public final static int STATEID_SCANNING =0; |
public final static int STATEID_DEVICESELECT =1; |
public final static int STATEID_MAINMENU =2; |
public final static int STATEID_MOTORTEST =3; |
public final static int STATEID_SELECT_PARAMSET =4; |
public final static int STATEID_EDIT_PARAMS =5; |
public final static int STATEID_HANDLE_PARAMS =6; |
public final static int STATEID_FLIGHTVIEW =7; |
public boolean fullscreen=false; |
public int act_motor=0; |
public int act_motor_increase=0; |
public boolean motor_test_sel_all=false; |
public String[] main_menu_items={"Telemetry" , "Motor Test" , "Flight Settings","(NA)Tool Settings","Proxy","Change Device" , "Quit " }; |
public final static int MAINMENU_TELEMETRY =0; |
public final static int MAINMENU_MOTORTES =1; |
public final static int MAINMENU_PARAMS =2; |
public final static int MAINMENU_SETTINGS =3; |
public final static int MAINMENU_PROXY =4; |
public final static int MAINMENU_DEVICESELECT =5; |
public final static int MAINMENU_QUIT =6; |
int local_max=-1; |
492,13 → 508,9 |
} |
/*********************************************** input Section **********************************************/ |
// keys |
public boolean fullscreen=false; |
public int act_motor=0; |
public int act_motor_increase=0; |
public boolean motor_test_sel_all=false; |
public String[] main_menu_items={"Telemetry" , "Motor Test" , "Flight Settings","(NA)Tool Settings","Change Device" , "Quit " }; |
public void chg_state(int next_state) |
{ |
act_menu_select=0; |
509,7 → 521,7 |
lcd_lines=new String[3]; |
lcd_lines[0]="Scanning for Devices"; |
lcd_lines[1]=" "; |
lcd_lines[2]="DUBwise v0.34 "; |
lcd_lines[2]="DUBwise v0.36 "; |
mk.close_connections(true); |
bt_scanner.search(); |
517,11 → 529,9 |
case STATEID_SELECT_PARAMSET: |
menu_items=new String[5]; |
menu_items[0]="ParamSet No 1"; |
menu_items[1]="ParamSet No 2"; |
menu_items[2]="ParamSet No 3"; |
menu_items[3]="ParamSet No 4"; |
menu_items[4]="ParamSet No 5"; |
for (int i=0;i<5;i++) |
menu_items[i]=mk.params.names[i]; |
lcd_lines=new String[5]; |
break; |
603,25 → 613,29 |
if ( getGameAction (keyCode)==FIRE ) |
switch(act_menu_select) |
{ |
case 0: |
case MAINMENU_TELEMETRY : |
chg_state(STATEID_FLIGHTVIEW); |
break; |
case 1: |
case MAINMENU_MOTORTES : |
chg_state(STATEID_MOTORTEST); |
break; |
case 2: |
case MAINMENU_PARAMS : |
chg_state(STATEID_SELECT_PARAMSET); |
break; |
case 3: |
case MAINMENU_SETTINGS: |
break; |
case MAINMENU_PROXY: |
mk.do_proxy("socket://192.168.1.42:2323"); |
break; |
case 4: |
case MAINMENU_DEVICESELECT: |
chg_state(STATEID_SCANNING); |
break; |
case 5: |
case MAINMENU_QUIT: |
quit=true; |
break; |
632,6 → 646,7 |
case STATEID_SELECT_PARAMSET: |
if ( getGameAction (keyCode)==FIRE ) |
{ |
mk.params.act_paramset=act_menu_select; |
chg_state(STATEID_EDIT_PARAMS); |
} |
else menu_keypress(keyCode); |
/branches/ligi_j2me/src/MKParamsEditor.java |
---|
24,7 → 24,7 |
public String[] tab_names={"Configuration","Channels","Stick","Altitude","Gyro","Looping","Camera","Other","User"}; |
public int[] tab_entrys_count={6,8,3,6,4,6,5,5,4}; |
public int[] tab_entrys_count={6,8,3,6,4,6,6,5,4}; |
public String[][] tab_entrys={{"Altitude Contol","Switch for setpoint","Heading Hold","Compass","Orientation fixed","GPS"} |
, |
35,7 → 35,7 |
{"Up","Down","Left","Right","Gas Limit","Response threshold"}, |
{"Servo Ctrl","Nick compensation","Invert direction","Servo min","Servo max","Servo refresh Rate"}, |
{"Min Gas","Max Gas","Compass effect","voltage warning","distress gas"}, |
{"Min Gas","Max Gas","Compass effect","voltage warning","distress gas time", "distress gas"}, |
{"Param1","Param2","Param3","Param4"} |
// {"","","","","",""}, |
67,7 → 67,7 |
{ {22,0} ,{23,0},{20,0},{28,0} }, |
{ {40,0} ,{40,1},{40,2},{40,3},{38,0},{39,0} }, |
{ {33,0} ,{34,0},{40,2}/*!*/,{35,0},{36,0},{37,0} }, |
{ {18,0} ,{19,0},{21,0},{24,0},{25,0} }, |
{ {18,0} ,{19,0},{21,0},{24,0},{26,0},{25,0} }, |
{ {29,0} ,{30,0},{31,0},{32,0} } |
}; |
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[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.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[tab_entry_src[act_tab][i][0]]; |
lcd_lines[2+2*i]=""+canvas.mk.params.field_from_act(tab_entry_src[act_tab][i][0]); |
} |
162,10 → 162,11 |
switch(tab_entry_types[act_tab][act_y/2-1]) |
{ |
case PARAMTYPE_BOOLEAN: |
canvas.mk.params.field[tab_entry_src[act_tab][act_y/2-1][0]]^=1<<tab_entry_src[act_tab][act_y/2-1][1]; |
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[tab_entry_src[act_tab][act_y/2-1][0]]++; |
canvas.mk.params.field_from_act_add(tab_entry_src[act_tab][act_y/2-1][0],1); |
break; |
} |
break; |
174,10 → 175,12 |
switch(tab_entry_types[act_tab][act_y/2-1]) |
{ |
case PARAMTYPE_BOOLEAN: |
canvas.mk.params.field[tab_entry_src[act_tab][act_y/2-1][0]]^=1<<tab_entry_src[act_tab][act_y/2-1][1]; |
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[tab_entry_src[act_tab][act_y/2-1][0]]--; |
canvas.mk.params.field_from_act_add(tab_entry_src[act_tab][act_y/2-1][0],-1); |
break; |
} |
190,10 → 193,12 |
case Canvas.DOWN: |
if (act_y<(act_lcd_lines-2)) act_y+=2; |
else act_y=0; |
break; |
case Canvas.UP: |
if (act_y!=0) act_y-=2;; |
if (act_y!=0) act_y-=2; |
else act_y=act_lcd_lines-1; |
break; |
} |
/branches/ligi_j2me/src/MKParamsParser.java |
---|
13,21 → 13,48 |
{ |
public int[] field; |
public final static int MAX_PARAMSETS=20; |
public int[][] field; |
public String[] names={"Paramset 1","Paramset 2","Paramset 3","Paramset 4","Paramset 5"}; |
public int act_paramset=0; |
public int field_from_act(int pos) |
{ |
return field[act_paramset][pos]; |
} |
public void field_from_act_add(int pos,int val) |
{ |
field[act_paramset][pos]+=val; |
} |
public void field_from_act_xor(int pos,int val) |
{ |
field[act_paramset][pos]^=val; |
} |
public MKParamsParser() |
{ |
field=new int[58]; |
for (int i=0;i<58;i++) |
field[i]=-1; |
field=new int[MAX_PARAMSETS][58]; |
for (int ii=0;ii<MAX_PARAMSETS;ii++) |
for (int i=0;i<58;i++) |
field[ii][i]=-1; |
} |
public void set_by_mk_data(int[] in_arr,MKVersion version) |
public void set_by_mk_data(int paramset_num,int[] in_arr,MKVersion version) |
{ |
for ( int i=0;i<58;i++) |
field[i]=in_arr[i]; |
field[paramset_num][i]=in_arr[i]; |
names[paramset_num]="" + (paramset_num+1) +": "; |
for ( int i=46;i<58;i++) |
{ |
if(in_arr[i]==0)break; |
names[paramset_num]+=(char)in_arr[i]; |
} |
} |
/branches/ligi_j2me/src/MKProxy.java |
---|
0,0 → 1,34 |
import java.io.*; |
import javax.microedition.io.*; |
public class MKProxy |
implements Runnable |
{ |
public String err_str="none"; |
StreamConnection connection; |
public java.io.InputStream reader; |
public java.io.OutputStream writer; |
public MKProxy(String url) |
{ |
try |
{ |
connection = (StreamConnection) Connector.open(url, Connector.READ_WRITE); |
reader=connection.openInputStream(); |
writer=connection.openOutputStream(); |
} |
catch (Exception e) |
{ |
err_str=e.toString(); |
} |
} |
public void run() |
{ |
} |
} |
/branches/ligi_j2me/src/MKWatchDog.java |
---|
42,9 → 42,19 |
if (mk.version.major==-1) |
mk.get_version(); |
if (mk.params.field[0]==-1) |
if (mk.params.field[0][0]==-1) |
mk.get_params(1); |
else if (mk.params.field[1][0]==-1) |
mk.get_params(2); |
else if (mk.params.field[2][0]==-1) |
mk.get_params(3); |
else if (mk.params.field[3][0]==-1) |
mk.get_params(4); |
else if (mk.params.field[4][0]==-1) |
mk.get_params(5); |
} |