OSDN Git Service

bluetooth発信を可能にした。bluetooth発信をキャンセルする場合にはENTERキーを長押しする。
authorkouichi <kkoba@kirari-kobayashi.(none)>
Sun, 15 Sep 2013 14:11:11 +0000 (23:11 +0900)
committerkouichi <kkoba@kirari-kobayashi.(none)>
Sun, 15 Sep 2013 14:11:11 +0000 (23:11 +0900)
main.cpp

index 7645d2c..0711261 100644 (file)
--- a/main.cpp
+++ b/main.cpp
@@ -3,6 +3,7 @@
 // ECRobot++ API\r
 #include "Lcd.h"\r
 #include "Bluetooth.h"\r
+#include "BTConnection.h"\r
 #include "Clock.h"\r
 #include "GyroSensor.h"\r
 #include "LightSensor.h"\r
@@ -23,7 +24,7 @@ using namespace ecrobot;
 \r
 /* sample_c4\83}\83N\83\8d */\r
 #define DEVICE_NAME       "ET277"  /* Bluetooth\92Ê\90M\97p\83f\83o\83C\83X\96¼ */                                     /* \83`\81[\83\80ID\82É\95Ï\8dX\82µ\82Ä\82­\82¾\82³\82¢ */\r
-#define PASS_KEY          "2345" /* Bluetooth\92Ê\90M\97p\83p\83X\83L\81[ */                                         /* \8cÅ\97L\82Ì\83p\83X\83L\81[\82ð\90Ý\92è\82µ\82Ä\82­\82¾\82³\82¢ */\r
+#define PASS_KEY          "1234" /* Bluetooth\92Ê\90M\97p\83p\83X\83L\81[ */                                         /* \8cÅ\97L\82Ì\83p\83X\83L\81[\82ð\90Ý\92è\82µ\82Ä\82­\82¾\82³\82¢ */\r
 #define CMD_START         '1'    /* \83\8a\83\82\81[\83g\83X\83^\81[\83g\83R\83}\83\93\83h */\r
 #define CMD_STOP          '9'    /* \83\8a\83\82\81[\83g\83X\83g\83b\83v\83R\83}\83\93\83h */\r
 \r
@@ -57,18 +58,6 @@ ETLineTracer tracer(linepos,runner);
 ETTailControl tailcontroler(motorT,0);\r
 ContextStuff::Context context;\r
 \r
-/* \83f\83o\83C\83X\8f\89\8aú\89»\97p\83t\83b\83N\8aÖ\90\94 */\r
-/* \82±\82Ì\8aÖ\90\94\82ÍnxtOSEK\8bN\93®\8e\9e\82É\8eÀ\8ds\82³\82ê\82Ü\82·\81B */\r
-void ecrobot_device_initialize()\r
-{\r
-       /* \83Z\83\93\83T\81A\83\82\81[\83^\82È\82Ç\82Ì\8ae\83f\83o\83C\83X\82Ì\8f\89\8aú\89»\8aÖ\90\94\82ð\r
-        * \82±\82±\82Å\8eÀ\91\95\82·\82é\82±\82Æ\82ª\82Å\82«\82Ü\82·\r
-        * \81Ë\81@\8cõ\83Z\83\93\83T\90Ô\90FLED\82ðON\82É\82·\82é\r
-        */\r
-       //ecrobot_set_light_sensor_active(SENSOR_LIGHT);\r
-       ecrobot_init_bt_slave(PASS_KEY); /* Bluetooth\92Ê\90M\8f\89\8aú\89» */                                              //ex4\r
-}\r
-\r
 /* \83f\83o\83C\83X\8fI\97¹\97p\83t\83b\83N\8aÖ\90\94 */\r
 /* \82±\82Ì\8aÖ\90\94\82ÍSTOP\82Ü\82½\82ÍEXIT\83{\83^\83\93\82ª\89\9f\82³\82ê\82½\8e\9e\82É\8eÀ\8ds\82³\82ê\82Ü\82·\81B */\r
 void ecrobot_device_terminate()\r
@@ -130,10 +119,39 @@ BOOL Bluetooth_isReceived(char cmd)
        return (BOOL)come;\r
 }\r
 \r
+bool is_touched(TouchSensor& touch,ETTailControl& tailcontroler)\r
+{\r
+    tailcontroler.Control();\r
+    if(touch.isPressed()){\r
+           systick_wait_ms(30);\r
+        while(touch.isPressed()){\r
+            tailcontroler.Control();\r
+        }\r
+           systick_wait_ms(30);\r
+        return true;\r
+    }\r
+    return false;\r
+}\r
+\r
+\r
+void waitstart(TouchSensor& touch,ETTailControl& tailcontroler,char cmd)\r
+{\r
+    /* \83^\83b\83`\83Z\83\93\83T\82ª\89\9f\82³\82ê\82é\82Ü\82Å\81A\91Ò\82¿\91±\82¯\82é */\r
+    while(1){\r
+           if (is_touched(touch,tailcontroler)){\r
+                   break;\r
+           }\r
+           if (Bluetooth_isReceived(CMD_START)){                                                                       \r
+                   break;\r
+           }\r
+    }\r
+}\r
 \r
 TASK(TaskMain)\r
 {\r
-    bt.setFriendlyName(DEVICE_NAME);\r
+    //bt.setFriendlyName(DEVICE_NAME);\r
+       BTConnection btConnection(bt, lcd, nxt);\r
+       btConnection.connect(PASS_KEY);\r
        lcd.clear();\r
        lcd.putf("s", "Hello World");\r
        lcd.disp();\r
@@ -146,11 +164,7 @@ TASK(TaskMain)
        unsigned long sum = 0;\r
        char str[16+1];\r
        // \83W\83\83\83C\83\8d\r
-       while(!touch.isPressed()){\r
-        tailcontroler.Control();\r
-       }\r
-       while(touch.isPressed()){\r
-       }\r
+       while(!is_touched(touch,tailcontroler)) {}\r
        for(int i=0;i<sum_num;i++){\r
                sum += gyro.get();\r
                clock.wait(10);\r
@@ -164,11 +178,7 @@ TASK(TaskMain)
        speaker.playTone(1000,100,50);\r
 \r
        // \94\92\r
-       while(!touch.isPressed()){\r
-        tailcontroler.Control();\r
-       }\r
-       while(touch.isPressed()){\r
-       }\r
+       while(!is_touched(touch,tailcontroler)) {}\r
        sum = 0;\r
        for(int i=0;i<sum_num;i++){\r
                sum += light.getBrightness();\r
@@ -183,11 +193,7 @@ TASK(TaskMain)
        speaker.playTone(1200,100,50);\r
 \r
        // \8d\95\r
-       while(!touch.isPressed()){\r
-        tailcontroler.Control();\r
-       }\r
-       while(touch.isPressed()){\r
-       }\r
+       while(!is_touched(touch,tailcontroler)) {}\r
        sum = 0;\r
        for(int i=0;i<sum_num;i++){\r
                sum += light.getBrightness();\r
@@ -201,19 +207,9 @@ TASK(TaskMain)
        lcd.disp();\r
        speaker.playTone(1400,100,50);\r
 \r
+    //wait for touch or bluetooth.\r
+    waitstart(touch,tailcontroler,CMD_START);\r
 \r
-       while(!touch.isPressed()){\r
-        tailcontroler.Control();\r
-       }\r
-       while(touch.isPressed()){\r
-       }\r
-/*    while(1){\r
-        tailcontroler.Control();\r
-        if(Bluetooth_isReceived(CMD_START)){\r
-            break;\r
-        }\r
-    }\r
-*/\r
        tailcontroler.SetAngle(ETTailControl::ANGLE_DRIVE);\r
     context.SetETLineTracer(&tracer);\r
        TerminateTask();\r