Cubebite Publish
Fork of HelloWorld_IDS01A4 by
Revision 12:5e20115bd13b, committed 2018-01-17
- Comitter:
- jmhong
- Date:
- Wed Jan 17 02:26:47 2018 +0000
- Parent:
- 11:f8396aa48de6
- Child:
- 13:d802c6ed2e75
- Commit message:
- 180117 cubebite hjm;
Changed in this revision
| main.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/main.cpp Fri Jan 12 04:57:19 2018 +0000
+++ b/main.cpp Wed Jan 17 02:26:47 2018 +0000
@@ -19,6 +19,8 @@
//*************************************************************************************
#include "mbed.h"
#include "SimpleSpirit1.h"
+
+#include <fstream> // library that contains file input/output functions
//*************************************************************************************
@@ -64,6 +66,7 @@
/* 180108 cubebite HJM : F401re borad Init code */
//static SimpleSpirit1 &myspirit = SimpleSpirit1::CreateInstance(PA_7, PA_6, PA_5, PC_7, PB_6, PA_10); //F401re borad
static SimpleSpirit1 &myspirit = SimpleSpirit1::CreateInstance(PA_7, PA_6, PA_5, PA_0, PB_6, PA_10); //F401re borad, IRQ Testing, GPIO 3 -> IRQ
+static SimpleSpirit1 &myspirit = SimpleSpirit1::CreateInstance2(PA_7, PA_6, PA_5, PA_0, PB_6, PA_10); //F401re borad, IRQ Testing, GPIO 3 -> IRQ
#endif
@@ -74,6 +77,7 @@
/* 180108 cubebite HJM : F746zg borad Init code */
//static SimpleSpirit1 &myspirit = SimpleSpirit1::CreateInstance(PB_5, PB_4, PB_3, PD_14, PD_5, PD_6); //F746zg borad
static SimpleSpirit1 &myspirit = SimpleSpirit1::CreateInstance(PB_5, PB_4, PB_3, PA_3, PD_5, PD_6); //F746zg borad, IRQ Testing, GPIO 3 -> IRQ
+static SimpleSpirit1 &myspirit2 = SimpleSpirit1::CreateInstance2(PB_5, PB_4, PB_3, PA_3, PD_5, PD_6); //F746zg borad, IRQ Testing, GPIO 3 -> IRQ
#endif
//*************************************************************************************
@@ -82,7 +86,8 @@
//Global variable : LEDs and user buttons by board
//*************************************************************************************
#ifdef CUBEBITE_BOARD_F401RE
-static DigitalOut TestLED(D5); /* LED of IDS01A4/5 */
+//180116 HJM : 그 전날 뻗어서 혹시 이쪽 LED 병렬회선을 사용하다가 오류가 났을 수도 있을 것 같다는 의심을 하게 됨. 주석처리하고 다시 테스트 하기로 함.
+//static DigitalOut TestLED(D5); /* LED of IDS01A4/5 */
#endif
#ifdef CUBEBITE_BOARD_F746ZG
@@ -135,14 +140,14 @@
#endif
-
/* Test : RF Speed Test */
#ifdef CUBEBITE_RF_SPEED_TEST_SEND_ON
static clock_t clockRfSpeedTestStart, clockRfSpeedTestEnd;
-static float fRfSpeedTestResult;
+static float fRfSpeedTestResultTime;
static bool bIsSendFirstClockFunctionStarted = false;
static bool bIsSetSendFlag = false;
+
#endif
#ifdef CUBEBITE_RF_SPEED_TEST_RECV_ON
@@ -206,6 +211,12 @@
}
+static void set_ack_send_data_flag(void)
+{
+#ifdef CUBEBITE_RF_SPEED_TEST_RECV_ON
+ bIsAckSended = 1;
+#endif
+}
@@ -307,10 +318,13 @@
ret = strcmp((const char *)read_buf, (const char *)send_buf);
if (0 == ret)
{
- printf("read, send buf collect!!\n");
+ set_ack_send_data_flag();
+// printf("read, send buf collect!!\n");
TestLED = !TestLED; /* Toggle LED at the receiver */
// bIsAckSended = true;
+
//746zg 보드
+ /*
int iRet = myspirit.send(send_ack_buf, curr_ack_len);
if (iRet == RADIO_TX_OK)
{
@@ -336,7 +350,7 @@
printf("ACK : [RADIO_TX_NOACK]\n");
#endif
}
-
+ */
}
#endif
@@ -346,6 +360,7 @@
{
clockRfSpeedTestEnd = clock();
}
+// printf("[DEBUG]recv -> %s\n", read_buf);
#endif
@@ -395,8 +410,10 @@
*/
int main()
{
+#ifdef CUBEBITE_RF_SPEED_TEST_RECV_ON
/* LED off */
- TestLED = 0;
+ TestLED = 0;
+#endif
/* 180108 cubebite HJM : function return value print */
int iRet = 0;
@@ -454,9 +471,16 @@
int16SpiritPartNum = 0;
#endif
+
+
+
/* low power in idle condition., waiting for an event */
__WFE();
+
+
+
+
#ifdef CUBEBITE_RF_GPIO_0_TEST
//180108 HJM : For spiritFunctionalState(), testing code
@@ -478,45 +502,49 @@
#endif
#ifdef CUBEBITE_RF_SPEED_TEST_SEND_ON
- if (true == bIsSetSendFlag)
- {
+ //180112 HJM : Ack 응답 올 때 까지의 Timeout.
+// wait(0.5); //100ms, 정상 동작, . ( 테스트)
+ wait(0.1); //100ms, 정상 동작, 송신 쪽 오류 O. (1일 테스트)
+// wait(0.08); //100ms, 정상 동작, 오류 X. (5분 테스트)
+// wait(0.07); //70ms,
+// wait(0.06); //60ms, 정상 동작, 송신 쪽 오류 O, (1시간 테스트)
+// wait(0.05); // 50ms, 정상 동작, 오류 X. (13분 테스트)
+// wait(0.03); // 30ms, 정상 동작, ??? 오류 O. (1시간 테스트)
+// wait(0.02); // 20ms, 정상 동작, 수신 쪽 오류 O. (2분 테스트)
+// wait(0.01); // 10ms, 정상 동작, 수신 쪽 오류 O. (1분 테스트)
+// wait(0.008); // 8ms, 정상 동작, 하지만 0.01 이 최대 속도값으로 보임.
+// wait(0.005); // 5ms, 정상 동작, 하지만 0.01 이 최대 속도값으로 보임, 하지만 Nothing to read 오류가 많이 뜸. (20분 테스트)
+// wait(0.00001); // 0.01ms, 비 정상 동작. (30분 테스트)
set_send_data_flag();
- bIsSetSendFlag = false;
- }
#endif
if(rx_done_flag)
{
rx_done_flag = false;
read_rcvd_data();
- printf("recvedd.\n");
+// printf("recvedd.\n");
#ifdef CUBEBITE_RF_SPEED_TEST_SEND_ON
if (true == bIsSendFirstClockFunctionStarted)
{
- fRfSpeedTestResult = (float)(clockRfSpeedTestEnd - clockRfSpeedTestStart)/CLOCKS_PER_SEC;
- printf("\n Clock Rf Speed Test : [%.9f(sec)] \n", fRfSpeedTestResult);
+ fRfSpeedTestResultTime = (float)(clockRfSpeedTestEnd - clockRfSpeedTestStart)/CLOCKS_PER_SEC;
+ //180115 HJM : .csv 형식으로 출력하여 데이터를 도식화 하기위해 log 수정,
+ //((putty출력中)시,분,초,)송신위치,수신위치,대략거리(m),송신딜레이(sec),송신데이터양(byte),속도(sec)
+// printf("Clock Rf Speed Test : [%.9f(sec)] \n", fRfSpeedTestResultTime);
+// printf(",hjm(keyboard-right),hjm(keyboard-left),1,0.1,28,%.9f\n", fRfSpeedTestResultTime); //1차, 2시간 테스트
+ printf(",hjm(keyboard-left),mars(tv-desk),10,0.1,28,%.9f\n", fRfSpeedTestResultTime); //2차
- bIsSendFirstClockFunctionStarted = false;
+
+ bIsSendFirstClockFunctionStarted = false;
}
#endif
}
else if (send_data_flag)
{
-#ifdef CUBEBITE_RF_SPEED_TEST_SEND_ON
- //180112 HJM : Ack 응답 올 때 까지의 Timeout.
-// wait(0.1); //100ms, 정상 동작, 오류 없음. (5분 테스트)
-// wait(0.06); //60ms, 정상 동작, 오류 없음. (5분 테스트)
- wait(0.05); // 50ms, 정상 동작, 오류 없음. (10분 테스트)
-// wait(0.01); // 10ms, 정상 동작.
-// wait(0.008); // 8ms, 정상 동작, 하지만 0.01 이 최대 속도값으로 보임.
-// wait(0.005); // 5ms, 정상 동작, 하지만 0.01 이 최대 속도값으로 보임, 하지만 Nothing to read 오류가 많이 뜸. (20분 테스트)
-// wait(0.00001); // 0.01ms, 비 정상 동작. (30분 테스트)
-#endif
-
+
send_data_flag = false;
send_data();
- printf("sended.\n");
+// printf("sended.\n");
}
@@ -528,11 +556,12 @@
#ifdef CUBEBITE_RF_SPEED_TEST_RECV_ON
//180112 HJM 오후 1시, 현재 사용 안하는 중, recv 쪽에서 strcmp로 보낸 데이터와 받은 데이터 비교 후, send 를 바로 하는 코드로 바꿨음.
+//180116 HJM 오전 9시, 그 전날도 뻗고, OK 신호를 제대로 받지를 않아서 recv 쪽 ok send 보내는 쪽을 의심, 다시 바꾸기로함.
else if (true == bIsAckSended)
{
bIsAckSended = false;
ack_send_data();
- printf("recv sended.\n");
+// printf("recv sended.\n");
}
#endif
}
