Diff for /gforth/engine/io-nxt.c between versions 1.9 and 1.11

version 1.9, 2007/06/16 20:47:00 version 1.11, 2007/12/31 18:40:25
Line 6 Line 6
   
   Gforth is free software; you can redistribute it and/or    Gforth is free software; you can redistribute it and/or
   modify it under the terms of the GNU General Public License    modify it under the terms of the GNU General Public License
   as published by the Free Software Foundation; either version 2    as published by the Free Software Foundation, either version 3
   of the License, or (at your option) any later version.    of the License, or (at your option) any later version.
   
   This program is distributed in the hope that it will be useful,    This program is distributed in the hope that it will be useful,
Line 15 Line 15
   GNU General Public License for more details.    GNU General Public License for more details.
   
   You should have received a copy of the GNU General Public License    You should have received a copy of the GNU General Public License
   along with this program; if not, write to the Free Software    along with this program; if not, see http://www.gnu.org/licenses/.
   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA.  
   
   The following is stolen from the readline library for bash    The following is stolen from the readline library for bash
 */  */
Line 74  void bt_send_cmd(char * cmd) Line 73  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 146  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);

Removed from v.1.9  
changed lines
  Added in v.1.11


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>