Initial Commit

Dependencies:   mbed HC05 QEI MODSERIAL SWSPI mbed-rtos

Committer:
harshb
Date:
Tue Oct 21 21:59:15 2014 +0000
Revision:
6:5ab1735265a9
Parent:
4:81b0de07841f
Initial Commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Throwbot 4:81b0de07841f 1 #include "bt_shell_f.h"
Throwbot 4:81b0de07841f 2 //#include "keybindings.h"
Throwbot 4:81b0de07841f 3 //the following functions are for the python interface
Throwbot 4:81b0de07841f 4
Throwbot 4:81b0de07841f 5 //save a struct that indicates which data is to be returned
Throwbot 4:81b0de07841f 6 interface_f iface_f;
Throwbot 4:81b0de07841f 7 //mandatory tiny shell output function
Throwbot 4:81b0de07841f 8
Throwbot 4:81b0de07841f 9 int char_received1=0;
Throwbot 4:81b0de07841f 10 void bt_shell_f_run()
Throwbot 4:81b0de07841f 11 {
Throwbot 4:81b0de07841f 12 char buffer[12];
Throwbot 4:81b0de07841f 13 bt.lock();
Throwbot 4:81b0de07841f 14 if(bt.readable()) {
Throwbot 4:81b0de07841f 15 bt.gets(buffer,3);
Throwbot 4:81b0de07841f 16 char_received1=buffer[0]-'0';
Throwbot 4:81b0de07841f 17 bt.unlock();
Throwbot 4:81b0de07841f 18 if(buffer[1]=='S') {
Throwbot 4:81b0de07841f 19 bt.lock();
Throwbot 4:81b0de07841f 20 stdio_mutex.lock();
Throwbot 4:81b0de07841f 21 bt.printf("%d;%d;%d;%d;%d;%d;",
Throwbot 4:81b0de07841f 22 UL_rR,UL_R,UL_F,UL_L,UL_rL,UL_B);
Throwbot 4:81b0de07841f 23 stdio_mutex.unlock();
Throwbot 4:81b0de07841f 24 bt.unlock();
Throwbot 4:81b0de07841f 25 } else if(buffer[1]=='H') {
Throwbot 4:81b0de07841f 26 Lmotor_speed= 0;
Throwbot 4:81b0de07841f 27 Rmotor_speed = 0;
Throwbot 4:81b0de07841f 28 Led_off();
Throwbot 4:81b0de07841f 29 } else if(buffer[1]=='L') {
Throwbot 4:81b0de07841f 30 Led_on();
Throwbot 4:81b0de07841f 31 } else if(buffer[1]=='l') {
Throwbot 4:81b0de07841f 32
Throwbot 4:81b0de07841f 33 Led_off();
Throwbot 4:81b0de07841f 34 } else if(buffer[1]=='w') {
Throwbot 4:81b0de07841f 35 bt.gets(buffer,char_received1);
Throwbot 4:81b0de07841f 36 int Left_m_value = ((buffer[0]-'0')*100 + (buffer[1]-'0')*10 + (buffer[2]-'0')*1);
Throwbot 4:81b0de07841f 37 int Right_m_value= ((buffer[4]-'0')*100 + (buffer[5]-'0')*10 + (buffer[6]-'0')*1);
Throwbot 4:81b0de07841f 38 Lmotor_speed= (Left_m_value-200)*3.5;
Throwbot 4:81b0de07841f 39 Rmotor_speed = (Right_m_value-200)*3.5;
Throwbot 4:81b0de07841f 40 } else if(buffer[1]=='B') {
Throwbot 4:81b0de07841f 41 bt.gets(buffer,char_received1);
Throwbot 4:81b0de07841f 42 int buzzer_time = ((buffer[0]-'0')*1000 + (buffer[1]-'0')*100 + (buffer[2]-'0')*10 + (buffer[3]-'0')*1);
Throwbot 4:81b0de07841f 43 int frequency= ((buffer[5]-'0')*100 + (buffer[6]-'0')*10 + (buffer[7]-'0')*1);
Throwbot 4:81b0de07841f 44 pl_buzzer(frequency, buzzer_time);
Throwbot 4:81b0de07841f 45 } else if(buffer[1]=='D') {
Throwbot 4:81b0de07841f 46
Throwbot 4:81b0de07841f 47 bt.lock();
Throwbot 4:81b0de07841f 48 bt.printf("%lf;%lf",
Throwbot 4:81b0de07841f 49 ldrread1(),ldrread2());
Throwbot 4:81b0de07841f 50 bt.unlock();
Throwbot 4:81b0de07841f 51 } else if(buffer[1]=='O') {
Throwbot 4:81b0de07841f 52 int obstacle_found=0;
Throwbot 4:81b0de07841f 53 if(UL_F<250) {
Throwbot 4:81b0de07841f 54 obstacle_found=1;
Throwbot 4:81b0de07841f 55 } else {
Throwbot 4:81b0de07841f 56 obstacle_found=0;
Throwbot 4:81b0de07841f 57 }
Throwbot 4:81b0de07841f 58 bt.lock();
Throwbot 4:81b0de07841f 59 bt.printf("%d",
Throwbot 4:81b0de07841f 60 obstacle_found);
Throwbot 4:81b0de07841f 61 bt.unlock();
Throwbot 4:81b0de07841f 62 } else if(buffer[1]=='A') {
Throwbot 4:81b0de07841f 63 bt.lock();
Throwbot 4:81b0de07841f 64 stdio_mutex.lock();
Throwbot 4:81b0de07841f 65 bt.printf("%d;%d;%d",
Throwbot 4:81b0de07841f 66 Encoder_x,Encoder_x,heading);
Throwbot 4:81b0de07841f 67 stdio_mutex.unlock();
Throwbot 4:81b0de07841f 68 bt.unlock();
Throwbot 4:81b0de07841f 69 } else if(buffer[1]=='<' && buffer[0] == '<') {
Throwbot 4:81b0de07841f 70 bt.gets(buffer,3);
Throwbot 4:81b0de07841f 71 if(buffer[1] =='E')
Throwbot 4:81b0de07841f 72 bt.printf(">>1B");
Throwbot 4:81b0de07841f 73 else if (buffer[1] =='O') {
Throwbot 4:81b0de07841f 74 bt.gets(buffer, 2);
Throwbot 4:81b0de07841f 75 if(buffer[0]=='A') {
Throwbot 4:81b0de07841f 76 Selected_robot='A';
Throwbot 4:81b0de07841f 77 imperial_march();
Throwbot 4:81b0de07841f 78 } else if(buffer[0]=='F') {
Throwbot 4:81b0de07841f 79 Selected_robot='F';
Throwbot 4:81b0de07841f 80 Led_on();
Throwbot 4:81b0de07841f 81 }
Throwbot 4:81b0de07841f 82 }
Throwbot 4:81b0de07841f 83
Throwbot 4:81b0de07841f 84 } else {
Throwbot 4:81b0de07841f 85 bt.rxBufferFlush();
Throwbot 4:81b0de07841f 86 }
Throwbot 4:81b0de07841f 87 }
Throwbot 4:81b0de07841f 88 bt.unlock();
Throwbot 4:81b0de07841f 89 }