• R/O
  • SSH
  • HTTPS

fujiwing2017: Commit


Commit MetaInfo

Revision42 (tree)
Zeit2017-10-14 21:06:33
Autorazuma-fuji

Log Message

Bluetoothスタートを実装

Ändern Zusammenfassung

Diff

--- branches/CS_0922_LPF/sdk/workspace/R_ETRobo2017_0916_azuma/GlobalVariable.cpp (revision 41)
+++ branches/CS_0922_LPF/sdk/workspace/R_ETRobo2017_0916_azuma/GlobalVariable.cpp (revision 42)
@@ -15,6 +15,8 @@
1515 CGlobalVariable::CGlobalVariable()
1616 {
1717 timestamp = 0;
18+ global_bluetooth = NULL;
19+ global_bluetooth_cmd = false;
1820 }
1921
2022 CGlobalVariable::~CGlobalVariable()
--- branches/CS_0922_LPF/sdk/workspace/R_ETRobo2017_0916_azuma/GlobalVariable.h (revision 41)
+++ branches/CS_0922_LPF/sdk/workspace/R_ETRobo2017_0916_azuma/GlobalVariable.h (revision 42)
@@ -212,6 +212,8 @@
212212 void plusTimeStamp();
213213
214214 uint16_t global_rgb_value[FilLength];
215+ FILE* global_bluetooth;
216+ bool global_bluetooth_cmd;
215217
216218 private:
217219 int timestamp;
--- branches/CS_0922_LPF/sdk/workspace/R_ETRobo2017_0916_azuma/Work/Detection/SensorDetection/CTouchSensorDetection.cpp (revision 41)
+++ branches/CS_0922_LPF/sdk/workspace/R_ETRobo2017_0916_azuma/Work/Detection/SensorDetection/CTouchSensorDetection.cpp (revision 42)
@@ -41,7 +41,12 @@
4141
4242 // 指定時間以上押した後、離されたタイミングで終了.
4343 if(m_bDetected)
44+ {
45+ m_bDetected = false; // 次回呼び出し時のために初期化.
4446 return true;
47+ }
48+
49+ m_bDetected = false; // 離されたらfalseに
4550 }
4651 break;
4752
@@ -60,5 +65,22 @@
6065 if(iTime >= MSEC500)
6166 m_bDetected = true;
6267
68+
69+ // Bluetooth検知.
70+ bool* pBT_CMD = &(CGlobalVariable::getInstance()->global_bluetooth_cmd);
71+ if (*pBT_CMD == true)
72+ {
73+ // タッチセンサ押された状態でBT受け取るとバグるので、Releasedに初期化してから終わる.
74+ m_State = TOUCH_RELEASED;
75+ m_bDetected = false;
76+
77+ *pBT_CMD = false;
78+
79+ // BluetoothタスクKill.
80+ ev3_stp_cyc(BLUETOOTH_RECIEVE_CYCLE_TASK);
81+
82+ return true;
83+ }
84+
6385 return false;
6486 }
--- branches/CS_0922_LPF/sdk/workspace/R_ETRobo2017_0916_azuma/app.cpp (revision 41)
+++ branches/CS_0922_LPF/sdk/workspace/R_ETRobo2017_0916_azuma/app.cpp (revision 42)
@@ -158,11 +158,15 @@
158158 //ev3_lcd_draw_string("Reset Complete! ", 0, CALIB_FONT_HEIGHT*2);
159159 //tslp_tsk(500); /* 10msecウェイト */
160160
161+ // Bluetooth起動.
162+ CGlobalVariable::getInstance()->global_bluetooth = ev3_serial_open_file(EV3_SERIAL_BT);
163+
161164 //************************************************************
162165 // 子タスク起動
163166 //************************************************************
164167 ev3_sta_cyc(MAIN_CYCLE_TASK);
165168 ev3_sta_cyc(SAVE_RGB_FILTER_RESULT_CYCLE_TASK);
169+ ev3_sta_cyc(BLUETOOTH_RECIEVE_CYCLE_TASK);
166170 //ev3_sta_cyc(TAIL_TASK);
167171
168172 //************************************************************
@@ -175,6 +179,7 @@
175179 //************************************************************
176180 ev3_stp_cyc(MAIN_CYCLE_TASK);
177181 ev3_stp_cyc(SAVE_RGB_FILTER_RESULT_CYCLE_TASK);
182+ ev3_stp_cyc(BLUETOOTH_RECIEVE_CYCLE_TASK); // Bluetoothは生きてた時用にいちおう.
178183 //ev3_stp_cyc(TAIL_TASK);
179184
180185 //************************************************************
@@ -381,9 +386,19 @@
381386 void bluetooth_receive_task(intptr_t exinf){
382387
383388 //ここにBluetoothとの通信に関すること記述.
384-
385-
386-
389+ FILE* pBT = CGlobalVariable::getInstance()->global_bluetooth;
390+ bool* pBT_CMD = &(CGlobalVariable::getInstance()->global_bluetooth_cmd);
391+
392+ uint8_t c = fgetc(pBT); /* 受信 */
393+ switch(c)
394+ {
395+ case '1':
396+ *pBT_CMD = true;
397+ break;
398+ default:
399+ break;
400+ }
401+ fputc(c, pBT); /* エコーバック */
387402 }
388403
389404 /// <summary>
Show on old repository browser