version 1.9, 2007/06/16 20:47:00
|
version 1.10, 2007/06/17 19:26:43
|
Line 74 void bt_send_cmd(char * cmd)
|
Line 74 void bt_send_cmd(char * cmd)
|
|
|
int do_bluetooth () |
int do_bluetooth () |
{ |
{ |
if(bt_state) { |
if(!bt_mode) { |
if(bt_get_mode()) { |
char cmd[30]; |
if(!bt_mode) { |
|
bt_set_arm7_cmd(); |
bt_receive(cmd); |
display_char(')'); display_update(); |
if(cmd[0] | cmd[1]) { |
bt_mode = 1; |
display_char('0'+cmd[0]); |
} |
display_char('0'+cmd[1]); |
return 1; |
|
} else { |
|
if(bt_mode) { |
|
bt_clear_arm7_cmd(); |
|
display_char('['); display_update(); |
|
bt_mode = 0; |
|
bt_state = 0; |
|
} else { |
|
display_char('.'); |
|
display_update(); |
|
} |
|
} |
} |
} else { |
|
if(!bt_mode) { |
switch(cmd[1]) { |
char cmd[30]; |
case 0x16: // request connection |
|
display_char('-'); |
bt_receive(cmd); |
cmd[1] = 0x9; // accept connection |
if(cmd[0] | cmd[1]) { |
cmd[2] = 1; // yes, we do |
display_char('0'+cmd[0]); |
bt_send_cmd(cmd); |
display_char('0'+cmd[1]); |
break; |
} |
case 0x0f: // inquiry result |
|
display_char('+'); |
switch(cmd[1]) { |
cmd[1] = 0x05; |
case 0x10: |
bt_send_cmd(cmd); // add devices as known device |
case 0x16: // request connection |
break; |
display_char('-'); |
case 0x13: // connect result |
cmd[1] = 0x9; // accept connection |
if(cmd[2]) { |
cmd[2] = 1; // yes, we do |
int n=0; |
bt_send_cmd(cmd); |
int handle=cmd[3]; |
break; |
display_char('/'); display_update(); |
case 0x0f: // inquiry result |
systick_wait_ms(300); |
cmd[1] = 0x05; |
bt_receive(cmd); |
bt_send_cmd(cmd); // add devices as known device |
if(cmd[0]==0) { |
break; |
|
case 0x13: // connect result |
|
if(cmd[2]) { |
|
display_char('/'); |
|
int handle=cmd[3]; |
|
cmd[1] = 0xB; // open stream |
cmd[1] = 0xB; // open stream |
cmd[2] = handle; |
cmd[2] = handle; |
bt_send_cmd(cmd); |
bt_send_cmd(cmd); |
bt_state = 1; |
systick_wait_ms(100); |
} else { |
bt_set_arm7_cmd(); |
display_char('('); |
bt_mode = 1; |
|
display_char(')'); display_update(); |
} |
} |
break; |
// bt_state = 1; |
case 0x20: // discoverableack |
} else { |
if(cmd[2]) { |
display_char('('); |
display_char('?'); |
|
cmd[1] = 0x03; bt_send_cmd(cmd); // open port query |
|
break; |
|
} |
|
case 0x14: |
|
display_char('!'); |
|
cmd[1] = 0x1C; cmd[2] = 1; bt_send_cmd(cmd); |
|
break; |
|
default: |
|
break; |
|
} |
} |
{ |
break; |
extern int display_x, display_y; |
case 0x20: // discoverableack |
static int n=0; |
if(cmd[2]) { |
int x = display_x; |
display_char('?'); |
int y = display_y; |
break; |
display_goto_xy(0,6); |
|
display_char("/|\\-"[(n++)&3]); |
|
display_goto_xy(x,y); |
|
} |
} |
display_update(); |
case 0x10: |
|
case 0x14: |
|
display_char('!'); |
|
cmd[1] = 0x1C; cmd[2] = 1; bt_send_cmd(cmd); |
|
break; |
|
default: |
|
break; |
} |
} |
|
display_update(); |
} |
} |
return 0; |
return 0; |
} |
} |
Line 168 void prep_terminal ()
|
Line 147 void prep_terminal ()
|
nxt_motor_init(); |
nxt_motor_init(); |
i2c_init(); |
i2c_init(); |
bt_init(); |
bt_init(); |
|
bt_start_ad_converter(); |
do { |
do { |
bt_receive(cmd); |
bt_receive(cmd); |
} while((cmd[0] != 3) && (cmd[1] != 0x14)); |
} while((cmd[0] != 3) && (cmd[1] != 0x14)); |
cmd[1] = 0x36; // break stream mode |
// cmd[1] = 0x36; // break stream mode |
cmd[2] = 0; |
// cmd[2] = 0; |
bt_send_cmd(cmd); |
// bt_send_cmd(cmd); |
cmd[1] = 0x1C; cmd[2] = 1; bt_send_cmd(cmd); // make visible |
// cmd[1] = 0x1C; cmd[2] = 1; bt_send_cmd(cmd); // make visible |
|
cmd[1] = 0x03; bt_send_cmd(cmd); // open port query |
display_clear(1); |
display_clear(1); |
show_splash(1000); |
show_splash(1000); |
display_goto_xy(0,0); |
display_goto_xy(0,0); |