Cubebite Publish
Fork of HelloWorld_IDS01A4 by
main.cpp@14:1a6faeda6579, 2018-02-13 (annotated)
- Committer:
- jmhong
- Date:
- Tue Feb 13 06:35:39 2018 +0000
- Revision:
- 14:1a6faeda6579
- Parent:
- 13:d802c6ed2e75
180213 HJM commit;
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| rosarium | 0:2ddc0583bcec | 1 | /** |
| rosarium | 0:2ddc0583bcec | 2 | ****************************************************************************** |
| rosarium | 0:2ddc0583bcec | 3 | * @file main.cpp |
| jmhong | 11:f8396aa48de6 | 4 | * @author JMHong, Cubebite |
| rosarium | 0:2ddc0583bcec | 5 | * @version V1.0.0 |
| jmhong | 11:f8396aa48de6 | 6 | * @date June 19th, 2018 |
| rosarium | 4:cae1fa054b86 | 7 | * @brief mbed test application for the STMicroelectronics X-NUCLEO-IDB01A4/5 |
| jmhong | 11:f8396aa48de6 | 8 | * Spirit1 Module(SPSGRFC-433) |
| rosarium | 0:2ddc0583bcec | 9 | ****************************************************************************** |
| rosarium | 0:2ddc0583bcec | 10 | * @attention |
| rosarium | 0:2ddc0583bcec | 11 | * |
| jmhong | 11:f8396aa48de6 | 12 | * <h2><center>© COPYRIGHT(c) 2018 Cubebite</center></h2> |
| rosarium | 0:2ddc0583bcec | 13 | * |
| rosarium | 0:2ddc0583bcec | 14 | ****************************************************************************** |
| rosarium | 0:2ddc0583bcec | 15 | */ |
| rosarium | 0:2ddc0583bcec | 16 | |
| jmhong | 14:1a6faeda6579 | 17 | |
| jmhong | 14:1a6faeda6579 | 18 | |
| jmhong | 11:f8396aa48de6 | 19 | //************************************************************************************* |
| jmhong | 14:1a6faeda6579 | 20 | //Define : Test, Compile |
| jmhong | 11:f8396aa48de6 | 21 | //************************************************************************************* |
| jmhong | 14:1a6faeda6579 | 22 | /* 180108 cubebite HJM : cubebite Testing define, 1개씩만 켜야 함. */ |
| jmhong | 14:1a6faeda6579 | 23 | #define CUBEBITE_RF_SPEED_TEST_SEND_ON |
| jmhong | 14:1a6faeda6579 | 24 | //#define CUBEBITE_RF_SPEED_TEST_RECV_ON |
| jmhong | 14:1a6faeda6579 | 25 | |
| jmhong | 12:5e20115bd13b | 26 | |
| jmhong | 14:1a6faeda6579 | 27 | /* 180109 cubebite HJM : cubebite Compile define, 1개씩만 켜야 함. */ |
| jmhong | 14:1a6faeda6579 | 28 | //#define CUBEBITE_BOARD_F746ZG |
| jmhong | 14:1a6faeda6579 | 29 | #define CUBEBITE_BOARD_F401RE |
| jmhong | 14:1a6faeda6579 | 30 | |
| jmhong | 14:1a6faeda6579 | 31 | |
| jmhong | 14:1a6faeda6579 | 32 | #define CUBEBITE_RF_SETTING_VALUE_PRINT |
| jmhong | 11:f8396aa48de6 | 33 | //************************************************************************************* |
| rosarium | 0:2ddc0583bcec | 34 | |
| jmhong | 11:f8396aa48de6 | 35 | |
| jmhong | 14:1a6faeda6579 | 36 | |
| jmhong | 14:1a6faeda6579 | 37 | |
| jmhong | 11:f8396aa48de6 | 38 | //************************************************************************************* |
| jmhong | 11:f8396aa48de6 | 39 | //Define : Debug |
| jmhong | 11:f8396aa48de6 | 40 | //************************************************************************************* |
| jmhong | 10:cc81b87e005e | 41 | /* 180108 cubebite HJM : SimpleSpirit1 Debug define */ |
| jmhong | 10:cc81b87e005e | 42 | #define NDEBUG |
| jmhong | 10:cc81b87e005e | 43 | #define HEAVY_DEBUG |
| jmhong | 14:1a6faeda6579 | 44 | #define DEBUG_IRQ |
| jmhong | 10:cc81b87e005e | 45 | |
| jmhong | 10:cc81b87e005e | 46 | |
| jmhong | 10:cc81b87e005e | 47 | /* 180108 cubebite HJM : cubebite Debug define */ |
| jmhong | 11:f8396aa48de6 | 48 | //#define CUBEBITE_DEBUG |
| jmhong | 11:f8396aa48de6 | 49 | //************************************************************************************* |
| jmhong | 10:cc81b87e005e | 50 | |
| jmhong | 10:cc81b87e005e | 51 | |
| jmhong | 11:f8396aa48de6 | 52 | |
| jmhong | 11:f8396aa48de6 | 53 | |
| jmhong | 11:f8396aa48de6 | 54 | //************************************************************************************* |
| jmhong | 14:1a6faeda6579 | 55 | //Include |
| jmhong | 11:f8396aa48de6 | 56 | //************************************************************************************* |
| jmhong | 14:1a6faeda6579 | 57 | #ifndef __MAIN_H__ |
| jmhong | 14:1a6faeda6579 | 58 | #define __MAIN_H__ |
| jmhong | 14:1a6faeda6579 | 59 | #include "main.h" |
| jmhong | 14:1a6faeda6579 | 60 | #endif //__MAIN_H__ |
| jmhong | 11:f8396aa48de6 | 61 | //************************************************************************************* |
| jmhong | 10:cc81b87e005e | 62 | |
| jmhong | 10:cc81b87e005e | 63 | |
| jmhong | 10:cc81b87e005e | 64 | |
| jmhong | 10:cc81b87e005e | 65 | |
| jmhong | 14:1a6faeda6579 | 66 | enum RecvReturnValue |
| jmhong | 14:1a6faeda6579 | 67 | { |
| jmhong | 14:1a6faeda6579 | 68 | CUBEBITE_RECV_OK = 0, CUBEBITE_RECV_ERROR_READ_NOTHING, CUBEBITE_RECV_ERROR_READ_NOT_MATCH |
| jmhong | 14:1a6faeda6579 | 69 | }; |
| jmhong | 14:1a6faeda6579 | 70 | |
| jmhong | 14:1a6faeda6579 | 71 | enum SendReturnValue |
| jmhong | 14:1a6faeda6579 | 72 | { |
| jmhong | 14:1a6faeda6579 | 73 | CUBEBITE_SEND_OK = 0, CUBEBITE_SEND_ERROR, CUBEBITE_SEND_COLLISION, CUBEBITE_SEND_NOACK, CUBEBITE_SEND_ERROR_UNKNOWN |
| jmhong | 14:1a6faeda6579 | 74 | }; |
| jmhong | 14:1a6faeda6579 | 75 | |
| jmhong | 14:1a6faeda6579 | 76 | |
| jmhong | 14:1a6faeda6579 | 77 | |
| jmhong | 14:1a6faeda6579 | 78 | |
| jmhong | 14:1a6faeda6579 | 79 | |
| jmhong | 14:1a6faeda6579 | 80 | static void callback_func(int event); |
| jmhong | 14:1a6faeda6579 | 81 | |
| jmhong | 14:1a6faeda6579 | 82 | static int ReadRcvdData(SimpleSpirit1& myspirit); |
| jmhong | 14:1a6faeda6579 | 83 | static int ReadRcvdData_ClockMeasure_AckEnd(SimpleSpirit1& myspirit); |
| jmhong | 14:1a6faeda6579 | 84 | |
| jmhong | 14:1a6faeda6579 | 85 | static int SendData(SimpleSpirit1& myspirit); |
| jmhong | 14:1a6faeda6579 | 86 | static int SendData_ClockMeasure_AckStart(SimpleSpirit1& myspirit); |
| rosarium | 0:2ddc0583bcec | 87 | |
| jmhong | 11:f8396aa48de6 | 88 | |
| jmhong | 11:f8396aa48de6 | 89 | |
| jmhong | 11:f8396aa48de6 | 90 | |
| rosarium | 0:2ddc0583bcec | 91 | |
| jmhong | 14:1a6faeda6579 | 92 | /* |
| jmhong | 14:1a6faeda6579 | 93 | <RF 설정 값> |
| jmhong | 14:1a6faeda6579 | 94 | 황무지 -> 전파 |
| jmhong | 14:1a6faeda6579 | 95 | 고속도로 -> 주파수 |
| jmhong | 14:1a6faeda6579 | 96 | 차선 -> 채널 |
| jmhong | 14:1a6faeda6579 | 97 | |
| jmhong | 14:1a6faeda6579 | 98 | #define POWER_DBM 11.6 |
| jmhong | 14:1a6faeda6579 | 99 | #define CHANNEL_SPACE 100e3 |
| jmhong | 14:1a6faeda6579 | 100 | #define FREQ_DEVIATION 20e3 |
| jmhong | 14:1a6faeda6579 | 101 | #define BANDWIDTH 100.5e3 |
| jmhong | 14:1a6faeda6579 | 102 | #define MODULATION_SELECT GFSK_BT1 |
| jmhong | 14:1a6faeda6579 | 103 | #define DATARATE 38400 |
| jmhong | 14:1a6faeda6579 | 104 | #define XTAL_OFFSET_PPM 0 |
| jmhong | 14:1a6faeda6579 | 105 | #define SYNC_WORD 0x88888888 |
| jmhong | 14:1a6faeda6579 | 106 | #define LENGTH_WIDTH 8 // betzw - NOTE: only 255 bytes for payload!!! |
| jmhong | 14:1a6faeda6579 | 107 | #define CRC_MODE PKT_CRC_MODE_16BITS_2 |
| jmhong | 14:1a6faeda6579 | 108 | #define EN_WHITENING S_DISABLE |
| jmhong | 14:1a6faeda6579 | 109 | #define INFINITE_TIMEOUT 0.0 |
| jmhong | 14:1a6faeda6579 | 110 | |
| jmhong | 14:1a6faeda6579 | 111 | #define BASE_FREQUENCY 433.0e6 |
| jmhong | 14:1a6faeda6579 | 112 | |
| jmhong | 14:1a6faeda6579 | 113 | */ |
| jmhong | 11:f8396aa48de6 | 114 | |
| jmhong | 11:f8396aa48de6 | 115 | |
| jmhong | 14:1a6faeda6579 | 116 | /** |
| jmhong | 14:1a6faeda6579 | 117 | * @brief main routine |
| jmhong | 14:1a6faeda6579 | 118 | * @param None |
| jmhong | 14:1a6faeda6579 | 119 | * @retval int |
| jmhong | 14:1a6faeda6579 | 120 | */ |
| jmhong | 14:1a6faeda6579 | 121 | int main() |
| jmhong | 14:1a6faeda6579 | 122 | { |
| jmhong | 14:1a6faeda6579 | 123 | /* 180108 cubebite HJM : function return value print */ |
| jmhong | 14:1a6faeda6579 | 124 | int iReturn = 0; |
| jmhong | 14:1a6faeda6579 | 125 | |
| jmhong | 14:1a6faeda6579 | 126 | //************************************************************************************* |
| jmhong | 14:1a6faeda6579 | 127 | //Global variable : Create an instance by board |
| jmhong | 14:1a6faeda6579 | 128 | //************************************************************************************* |
| jmhong | 14:1a6faeda6579 | 129 | /* 180108 cubebite HJM : orignal code, backup */ |
| jmhong | 14:1a6faeda6579 | 130 | //static SimpleSpirit1 &myspirit = SimpleSpirit1::CreateInstance(D11, D12, D3, D9, D10, D2); /* (SPI_CLK) = (D13:PA5:resistorR7 --> D3:PB3:resistorR4)*/ |
| jmhong | 14:1a6faeda6579 | 131 | |
| jmhong | 14:1a6faeda6579 | 132 | #ifdef CUBEBITE_BOARD_F401RE |
| jmhong | 14:1a6faeda6579 | 133 | /* 180108 cubebite HJM : F401re borad, AnalogIn PIN Info, A0(PA_0) A1(PA_1) A2(PA_4) A3(PB_0) A4(PC_1) A5(PC_0) */ |
| jmhong | 14:1a6faeda6579 | 134 | /* RF Module 과 상관 관계 => A0(PA_0)[SPI GPIO 3] A1(PA_1)[CSN] A2(PA_4)[SPI1 GPIO 2] A3(PB_0)[SPI1 GPIO 1] A4(PC_1)[SPI1_GPIO 0] */ |
| jmhong | 14:1a6faeda6579 | 135 | /* 180108 cubebite HJM : F401re borad Init code */ |
| jmhong | 14:1a6faeda6579 | 136 | //static SimpleSpirit1 &myspirit = SimpleSpirit1::CreateInstance(PA_7, PA_6, PA_5, PC_7, PB_6, PA_10); //F401re borad |
| jmhong | 14:1a6faeda6579 | 137 | static SimpleSpirit1 &myspirit = SimpleSpirit1::CreateInstance(PA_7, PA_6, PA_5, PA_0, PB_6, PA_10); //F401re borad, IRQ Testing, GPIO 3 -> IRQ |
| jmhong | 14:1a6faeda6579 | 138 | //static SimpleSpirit1 &myspirit = SimpleSpirit1::CreateInstance_RSSI_negative_OneHundredTwenty(PA_7, PA_6, PA_5, PA_0, PB_6, PA_10); //F401re borad, IRQ Testing, GPIO 3 -> IRQ |
| jmhong | 14:1a6faeda6579 | 139 | #endif |
| jmhong | 14:1a6faeda6579 | 140 | |
| jmhong | 14:1a6faeda6579 | 141 | |
| jmhong | 14:1a6faeda6579 | 142 | |
| jmhong | 14:1a6faeda6579 | 143 | #ifdef CUBEBITE_BOARD_F746ZG |
| jmhong | 14:1a6faeda6579 | 144 | /* 180108 cubebite HJM : F746zg borad, AnalogIn PIN Info, A0(PA_3) A1(PC_0) A2(PC_3) A3(PF_3) A4(PF_5) A5(PF_10) */ |
| jmhong | 14:1a6faeda6579 | 145 | /* RF Module 과 상관 관계 => A0(PA_3)[SPI GPIO 3] A1(PC_0)[CSN] A2(PC_3)[SPI1 GPIO 2] A3(PF_3)[SPI1 GPIO 1] A4(PF_5)[SPI1_GPIO 0] */ |
| jmhong | 14:1a6faeda6579 | 146 | /* 180108 cubebite HJM : F746zg borad Init code */ |
| jmhong | 14:1a6faeda6579 | 147 | //static SimpleSpirit1 &myspirit = SimpleSpirit1::CreateInstance(PB_5, PB_4, PB_3, PD_14, PD_5, PD_6); //F746zg borad |
| jmhong | 14:1a6faeda6579 | 148 | static SimpleSpirit1 &myspirit = SimpleSpirit1::CreateInstance(PB_5, PB_4, PB_3, PA_3, PD_5, PD_6); //F746zg borad, IRQ Testing, GPIO 3 -> IRQ |
| jmhong | 14:1a6faeda6579 | 149 | //static SimpleSpirit1 &myspirit2 = SimpleSpirit1::CreateInstance2(PB_5, PB_4, PB_3, PA_3, PD_5, PD_6); //F746zg borad, IRQ Testing, GPIO 3 -> IRQ |
| jmhong | 14:1a6faeda6579 | 150 | #endif |
| jmhong | 14:1a6faeda6579 | 151 | //************************************************************************************* |
| jmhong | 14:1a6faeda6579 | 152 | |
| jmhong | 14:1a6faeda6579 | 153 | |
| jmhong | 14:1a6faeda6579 | 154 | |
| jmhong | 14:1a6faeda6579 | 155 | |
| jmhong | 14:1a6faeda6579 | 156 | /* 180108 cubebite HJM : spirit module, init code */ |
| jmhong | 14:1a6faeda6579 | 157 | printf("[CUBEBITE] Init "); |
| jmhong | 14:1a6faeda6579 | 158 | /* LED off */ |
| jmhong | 14:1a6faeda6579 | 159 | TestLED = 0; |
| jmhong | 14:1a6faeda6579 | 160 | myspirit.attach_irq_callback(callback_func); |
| jmhong | 14:1a6faeda6579 | 161 | iReturn = myspirit.on(); |
| jmhong | 14:1a6faeda6579 | 162 | if ( 0 == iReturn ) |
| jmhong | 14:1a6faeda6579 | 163 | { |
| jmhong | 14:1a6faeda6579 | 164 | printf("OK.\n"); |
| jmhong | 14:1a6faeda6579 | 165 | } |
| jmhong | 14:1a6faeda6579 | 166 | else |
| jmhong | 14:1a6faeda6579 | 167 | { |
| jmhong | 14:1a6faeda6579 | 168 | printf("ERROR.\n"); |
| jmhong | 14:1a6faeda6579 | 169 | } |
| jmhong | 14:1a6faeda6579 | 170 | |
| jmhong | 14:1a6faeda6579 | 171 | #ifdef CUBEBITE_DEBUG |
| jmhong | 14:1a6faeda6579 | 172 | printf("[CUBEBITE] CUBEBITE_DEBUG ON. \n"); |
| jmhong | 14:1a6faeda6579 | 173 | #endif //CUBEBITE_DEBUG |
| jmhong | 14:1a6faeda6579 | 174 | |
| jmhong | 14:1a6faeda6579 | 175 | |
| jmhong | 14:1a6faeda6579 | 176 | #ifdef CUBEBITE_RF_SETTING_VALUE_PRINT |
| jmhong | 14:1a6faeda6579 | 177 | printf("Xtal offset in ppm : [%d]\n", XTAL_OFFSET_PPM); |
| jmhong | 14:1a6faeda6579 | 178 | printf("base frequency : [%d]\n", (uint32_t)BASE_FREQUENCY); |
| jmhong | 14:1a6faeda6579 | 179 | printf("channel space : [%d]\n", (uint32_t)CHANNEL_SPACE); |
| jmhong | 14:1a6faeda6579 | 180 | printf("channel number : [%d]\n", CHANNEL_NUMBER); |
| jmhong | 14:1a6faeda6579 | 181 | printf("modulation select : [%d]\n", MODULATION_SELECT); |
| jmhong | 14:1a6faeda6579 | 182 | printf("data rate : [%d]\n", DATARATE); |
| jmhong | 14:1a6faeda6579 | 183 | printf("frequency deviation : [%d]\n", (uint32_t)FREQ_DEVIATION); |
| jmhong | 14:1a6faeda6579 | 184 | printf("channel filter bandwidth : [%d]\n", (uint32_t)BANDWIDTH); |
| jmhong | 14:1a6faeda6579 | 185 | #ifdef CUBEBITE_RF_SPEED_TEST_SEND_ON |
| jmhong | 14:1a6faeda6579 | 186 | // printf("\nOutput Power(dBm) : [%f]\n", POWER_DBM); |
| jmhong | 14:1a6faeda6579 | 187 | printf("\nOutput Power(dBm) : [%f]\n", (float)CUBEBITE_OUTPUT_POWER_DBM_TEST); |
| jmhong | 14:1a6faeda6579 | 188 | |
| jmhong | 14:1a6faeda6579 | 189 | #endif //CUBEBITE_RF_SPEED_TEST_SEND_ON |
| jmhong | 14:1a6faeda6579 | 190 | |
| jmhong | 14:1a6faeda6579 | 191 | #ifdef CUBEBITE_RF_SPEED_TEST_RECV_ON |
| jmhong | 14:1a6faeda6579 | 192 | printf("\nRSSI threshold Setting value : [%d]\n", (int)CCA_THRESHOLD); |
| jmhong | 14:1a6faeda6579 | 193 | #endif //CUBEBITE_RF_SPEED_TEST_RECV_ON |
| jmhong | 14:1a6faeda6579 | 194 | |
| jmhong | 14:1a6faeda6579 | 195 | wait(2); |
| jmhong | 14:1a6faeda6579 | 196 | #endif //CUBEBITE_RF_SETTING_VALUE_PRINT |
| jmhong | 14:1a6faeda6579 | 197 | |
| jmhong | 14:1a6faeda6579 | 198 | while(1) |
| jmhong | 14:1a6faeda6579 | 199 | { |
| jmhong | 14:1a6faeda6579 | 200 | /* low power in idle condition., waiting for an event */ |
| jmhong | 14:1a6faeda6579 | 201 | __WFE(); |
| jmhong | 14:1a6faeda6579 | 202 | |
| jmhong | 14:1a6faeda6579 | 203 | #ifdef CUBEBITE_RF_SPEED_TEST_SEND_ON |
| jmhong | 14:1a6faeda6579 | 204 | iReturn = SendData(myspirit); |
| jmhong | 14:1a6faeda6579 | 205 | if (CUBEBITE_SEND_OK == iReturn) |
| jmhong | 14:1a6faeda6579 | 206 | { |
| jmhong | 14:1a6faeda6579 | 207 | printf("[DEBUG] send OK.\n"); |
| jmhong | 14:1a6faeda6579 | 208 | } |
| jmhong | 14:1a6faeda6579 | 209 | else if (CUBEBITE_SEND_ERROR == iReturn) |
| jmhong | 14:1a6faeda6579 | 210 | { |
| jmhong | 14:1a6faeda6579 | 211 | printf("[DEBUG] send ERROR.\n"); |
| jmhong | 14:1a6faeda6579 | 212 | } |
| jmhong | 14:1a6faeda6579 | 213 | |
| jmhong | 14:1a6faeda6579 | 214 | iReturn = (int)myspirit.get_last_sqi(); //HJM : LQI, 현재 주변 통신 품질 값, 높을수록 좋은 것. |
| jmhong | 14:1a6faeda6579 | 215 | printf("get_last_sqi() return : [%d]\n", iReturn); |
| jmhong | 14:1a6faeda6579 | 216 | #endif |
| jmhong | 14:1a6faeda6579 | 217 | |
| jmhong | 14:1a6faeda6579 | 218 | #ifdef CUBEBITE_RF_SPEED_TEST_RECV_ON |
| jmhong | 14:1a6faeda6579 | 219 | if (bRxDoneFlag) |
| jmhong | 14:1a6faeda6579 | 220 | { |
| jmhong | 14:1a6faeda6579 | 221 | iReturn = ReadRcvdData(myspirit); |
| jmhong | 14:1a6faeda6579 | 222 | if (CUBEBITE_RECV_OK == iReturn) |
| jmhong | 14:1a6faeda6579 | 223 | { |
| jmhong | 14:1a6faeda6579 | 224 | //통신 속도 체크시, 응답 send code. |
| jmhong | 14:1a6faeda6579 | 225 | printf("[DEBUG] recv OK.\n"); |
| jmhong | 14:1a6faeda6579 | 226 | |
| jmhong | 14:1a6faeda6579 | 227 | float fReturn1 = myspirit.get_last_rssi_dbm(); |
| jmhong | 14:1a6faeda6579 | 228 | printf("get_last_rssi_dbm() return : [%f]\n", fReturn1); //HJM : 위의 값과 같을 거라고 예상 됨. 나중에 테스트. |
| jmhong | 14:1a6faeda6579 | 229 | if (-50 < fReturn1) //-80 < fReturn1 |
| jmhong | 14:1a6faeda6579 | 230 | { |
| jmhong | 14:1a6faeda6579 | 231 | TestLED3 = !TestLED3; /* Toggle LED at the receiver */ |
| jmhong | 14:1a6faeda6579 | 232 | } |
| jmhong | 14:1a6faeda6579 | 233 | else if (-50 >= fReturn1) |
| jmhong | 14:1a6faeda6579 | 234 | { |
| jmhong | 14:1a6faeda6579 | 235 | // TestLED = !TestLED; /* Toggle LED at the receiver */ |
| jmhong | 14:1a6faeda6579 | 236 | TestLED2 = !TestLED2; /* Toggle LED at the receiver */ |
| jmhong | 14:1a6faeda6579 | 237 | // TestLED3 = !TestLED3; /* Toggle LED at the receiver */ |
| jmhong | 14:1a6faeda6579 | 238 | } |
| jmhong | 14:1a6faeda6579 | 239 | else if (-70 >= fReturn1) //-100 >= fReturn1 |
| jmhong | 14:1a6faeda6579 | 240 | { |
| jmhong | 14:1a6faeda6579 | 241 | TestLED = !TestLED; /* Toggle LED at the receiver */ |
| jmhong | 14:1a6faeda6579 | 242 | } |
| jmhong | 14:1a6faeda6579 | 243 | } |
| jmhong | 14:1a6faeda6579 | 244 | bRxDoneFlag = 0; |
| jmhong | 14:1a6faeda6579 | 245 | } |
| jmhong | 14:1a6faeda6579 | 246 | #endif |
| jmhong | 14:1a6faeda6579 | 247 | |
| jmhong | 14:1a6faeda6579 | 248 | } |
| jmhong | 14:1a6faeda6579 | 249 | /* unreachable */ |
| jmhong | 14:1a6faeda6579 | 250 | // myspirit.off(); |
| jmhong | 14:1a6faeda6579 | 251 | // return 0; |
| jmhong | 14:1a6faeda6579 | 252 | } |
| jmhong | 11:f8396aa48de6 | 253 | |
| jmhong | 11:f8396aa48de6 | 254 | |
| rosarium | 0:2ddc0583bcec | 255 | |
| jmhong | 10:cc81b87e005e | 256 | |
| jmhong | 10:cc81b87e005e | 257 | |
| rosarium | 1:cf2e2f85bf8d | 258 | /** |
| rosarium | 1:cf2e2f85bf8d | 259 | * @brief callback_func |
| rosarium | 1:cf2e2f85bf8d | 260 | * @param callback event |
| rosarium | 1:cf2e2f85bf8d | 261 | * @retval None. |
| rosarium | 1:cf2e2f85bf8d | 262 | */ |
| rosarium | 0:2ddc0583bcec | 263 | static void callback_func(int event) |
| rosarium | 0:2ddc0583bcec | 264 | { |
| jmhong | 11:f8396aa48de6 | 265 | #ifdef CUBEBITE_DEBUG |
| jmhong | 11:f8396aa48de6 | 266 | printf("[CUBEBITE] callback_func(int event) \n"); |
| jmhong | 11:f8396aa48de6 | 267 | #endif |
| jmhong | 14:1a6faeda6579 | 268 | |
| jmhong | 10:cc81b87e005e | 269 | |
| jmhong | 11:f8396aa48de6 | 270 | if(event == SimpleSpirit1::RX_DONE) |
| jmhong | 11:f8396aa48de6 | 271 | { |
| jmhong | 14:1a6faeda6579 | 272 | bRxDoneFlag = 1; |
| jmhong | 11:f8396aa48de6 | 273 | } |
| jmhong | 11:f8396aa48de6 | 274 | else if (event == SimpleSpirit1::TX_DONE) |
| jmhong | 11:f8396aa48de6 | 275 | { |
| jmhong | 14:1a6faeda6579 | 276 | bTxDoneFlag = 1; |
| jmhong | 11:f8396aa48de6 | 277 | } |
| rosarium | 0:2ddc0583bcec | 278 | } |
| rosarium | 0:2ddc0583bcec | 279 | |
| jmhong | 11:f8396aa48de6 | 280 | |
| jmhong | 11:f8396aa48de6 | 281 | |
| jmhong | 14:1a6faeda6579 | 282 | /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
| jmhong | 14:1a6faeda6579 | 283 | /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
| jmhong | 14:1a6faeda6579 | 284 | /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
| jmhong | 14:1a6faeda6579 | 285 | /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
| jmhong | 14:1a6faeda6579 | 286 | /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
| jmhong | 14:1a6faeda6579 | 287 | /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
| jmhong | 14:1a6faeda6579 | 288 | /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
| jmhong | 14:1a6faeda6579 | 289 | /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
| jmhong | 14:1a6faeda6579 | 290 | /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
| jmhong | 14:1a6faeda6579 | 291 | /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
| jmhong | 14:1a6faeda6579 | 292 | /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
| jmhong | 14:1a6faeda6579 | 293 | /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
| jmhong | 14:1a6faeda6579 | 294 | /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
| jmhong | 14:1a6faeda6579 | 295 | /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
| jmhong | 14:1a6faeda6579 | 296 | /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
| jmhong | 14:1a6faeda6579 | 297 | /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
| jmhong | 14:1a6faeda6579 | 298 | /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
| jmhong | 14:1a6faeda6579 | 299 | /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
| jmhong | 14:1a6faeda6579 | 300 | /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
| jmhong | 14:1a6faeda6579 | 301 | /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
| jmhong | 14:1a6faeda6579 | 302 | /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
| jmhong | 14:1a6faeda6579 | 303 | /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
| jmhong | 14:1a6faeda6579 | 304 | //recv |
| jmhong | 11:f8396aa48de6 | 305 | |
| jmhong | 11:f8396aa48de6 | 306 | |
| jmhong | 11:f8396aa48de6 | 307 | |
| jmhong | 11:f8396aa48de6 | 308 | |
| jmhong | 11:f8396aa48de6 | 309 | |
| jmhong | 11:f8396aa48de6 | 310 | |
| rosarium | 4:cae1fa054b86 | 311 | /** |
| jmhong | 14:1a6faeda6579 | 312 | * @brief ReadRcvdData |
| rosarium | 4:cae1fa054b86 | 313 | * @param None |
| rosarium | 4:cae1fa054b86 | 314 | * @retval None |
| rosarium | 4:cae1fa054b86 | 315 | */ |
| jmhong | 14:1a6faeda6579 | 316 | static int ReadRcvdData(SimpleSpirit1& myspirit) |
| rosarium | 4:cae1fa054b86 | 317 | { |
| jmhong | 11:f8396aa48de6 | 318 | #ifdef CUBEBITE_DEBUG |
| jmhong | 14:1a6faeda6579 | 319 | printf("[CUBEBITE] ReadRcvdData() 호출 됨. \n"); |
| jmhong | 11:f8396aa48de6 | 320 | #endif |
| rosarium | 4:cae1fa054b86 | 321 | |
| jmhong | 14:1a6faeda6579 | 322 | for(unsigned int flush_count = 0; flush_count < TEST_STR_LEN; flush_count++) uiRendBuf[flush_count] = 0 ;/* clear the read buffer */ |
| jmhong | 14:1a6faeda6579 | 323 | |
| jmhong | 11:f8396aa48de6 | 324 | |
| jmhong | 14:1a6faeda6579 | 325 | int ret = myspirit.read(uiRendBuf, sizeof(uiRendBuf)); |
| jmhong | 11:f8396aa48de6 | 326 | if (ret == 0) |
| jmhong | 11:f8396aa48de6 | 327 | { |
| jmhong | 11:f8396aa48de6 | 328 | printf("[CUBEBITE] Read() Error : Nothing to read\n"); |
| jmhong | 14:1a6faeda6579 | 329 | return CUBEBITE_RECV_ERROR_READ_NOTHING; |
| jmhong | 11:f8396aa48de6 | 330 | } |
| jmhong | 14:1a6faeda6579 | 331 | printf("ReadRcvdData() 1"); |
| jmhong | 14:1a6faeda6579 | 332 | |
| jmhong | 14:1a6faeda6579 | 333 | printf("[DEBUG]recv -> %s ", uiRendBuf); |
| jmhong | 14:1a6faeda6579 | 334 | |
| jmhong | 14:1a6faeda6579 | 335 | ret = strcmp((const char *)uiRendBuf, (const char *)uiSendBuf); |
| jmhong | 14:1a6faeda6579 | 336 | printf(" 3"); |
| jmhong | 11:f8396aa48de6 | 337 | if (0 == ret) |
| jmhong | 11:f8396aa48de6 | 338 | { |
| jmhong | 14:1a6faeda6579 | 339 | // set_ack_bSendDataFlag(); //180118 HJM : 다시 바로 보내는 걸로 수정 |
| jmhong | 12:5e20115bd13b | 340 | // printf("read, send buf collect!!\n"); |
| jmhong | 14:1a6faeda6579 | 341 | // TestLED = !TestLED; /* Toggle LED at the receiver */ |
| jmhong | 14:1a6faeda6579 | 342 | printf(" 4"); |
| jmhong | 11:f8396aa48de6 | 343 | // bIsAckSended = true; |
| jmhong | 14:1a6faeda6579 | 344 | // printf("[DEBUG]recv -> %s\n", uiRendBuf); |
| jmhong | 14:1a6faeda6579 | 345 | #ifdef CUBEBITE_DEBUG |
| jmhong | 14:1a6faeda6579 | 346 | printf("[DEBUG]recv -> %s\n", uiRendBuf); |
| jmhong | 14:1a6faeda6579 | 347 | #endif |
| jmhong | 14:1a6faeda6579 | 348 | |
| jmhong | 14:1a6faeda6579 | 349 | //746zg 보드 |
| jmhong | 14:1a6faeda6579 | 350 | // wait(1.0); |
| jmhong | 14:1a6faeda6579 | 351 | /* |
| jmhong | 14:1a6faeda6579 | 352 | int iRet = myspirit.send(uiSendAckBuf, sizetCurrAckBufLen); |
| jmhong | 11:f8396aa48de6 | 353 | if (iRet == RADIO_TX_OK) |
| jmhong | 11:f8396aa48de6 | 354 | { |
| jmhong | 11:f8396aa48de6 | 355 | #ifdef CUBEBITE_DEBUG |
| jmhong | 11:f8396aa48de6 | 356 | printf("ACK : [RADIO_TX_OK]\n"); |
| jmhong | 11:f8396aa48de6 | 357 | #endif |
| jmhong | 11:f8396aa48de6 | 358 | } |
| jmhong | 11:f8396aa48de6 | 359 | else if (iRet == RADIO_TX_ERR) |
| jmhong | 11:f8396aa48de6 | 360 | { |
| jmhong | 11:f8396aa48de6 | 361 | #ifdef CUBEBITE_DEBUG |
| jmhong | 11:f8396aa48de6 | 362 | printf("ACK : [RADIO_TX_ERR]\n"); |
| jmhong | 11:f8396aa48de6 | 363 | #endif |
| jmhong | 11:f8396aa48de6 | 364 | } |
| jmhong | 11:f8396aa48de6 | 365 | else if (iRet == RADIO_TX_COLLISION) |
| jmhong | 11:f8396aa48de6 | 366 | { |
| jmhong | 11:f8396aa48de6 | 367 | #ifdef CUBEBITE_DEBUG |
| jmhong | 11:f8396aa48de6 | 368 | printf("ACK : [RADIO_TX_COLLISION]\n"); |
| jmhong | 11:f8396aa48de6 | 369 | #endif |
| jmhong | 11:f8396aa48de6 | 370 | } |
| jmhong | 11:f8396aa48de6 | 371 | else if (iRet == RADIO_TX_NOACK) |
| jmhong | 11:f8396aa48de6 | 372 | { |
| jmhong | 11:f8396aa48de6 | 373 | #ifdef CUBEBITE_DEBUG |
| jmhong | 11:f8396aa48de6 | 374 | printf("ACK : [RADIO_TX_NOACK]\n"); |
| jmhong | 11:f8396aa48de6 | 375 | #endif |
| jmhong | 14:1a6faeda6579 | 376 | } |
| jmhong | 14:1a6faeda6579 | 377 | */ |
| jmhong | 14:1a6faeda6579 | 378 | |
| jmhong | 14:1a6faeda6579 | 379 | return CUBEBITE_RECV_OK; |
| jmhong | 14:1a6faeda6579 | 380 | printf(" 5 ok\n"); |
| jmhong | 14:1a6faeda6579 | 381 | } |
| jmhong | 14:1a6faeda6579 | 382 | |
| jmhong | 14:1a6faeda6579 | 383 | |
| jmhong | 14:1a6faeda6579 | 384 | #ifdef CUBEBITE_DEBUG |
| jmhong | 14:1a6faeda6579 | 385 | printf("[CUBEBITE] ReadRcvdData() 호출 끝. \n"); |
| jmhong | 14:1a6faeda6579 | 386 | #endif |
| jmhong | 14:1a6faeda6579 | 387 | |
| jmhong | 14:1a6faeda6579 | 388 | return CUBEBITE_RECV_ERROR_READ_NOT_MATCH; |
| jmhong | 14:1a6faeda6579 | 389 | printf(" 6 error\n"); |
| jmhong | 14:1a6faeda6579 | 390 | } |
| jmhong | 14:1a6faeda6579 | 391 | |
| jmhong | 14:1a6faeda6579 | 392 | |
| jmhong | 14:1a6faeda6579 | 393 | |
| jmhong | 14:1a6faeda6579 | 394 | static int ReadRcvdData_ClockMeasure_AckEnd(SimpleSpirit1& myspirit) |
| jmhong | 14:1a6faeda6579 | 395 | { |
| jmhong | 14:1a6faeda6579 | 396 | #ifdef CUBEBITE_DEBUG |
| jmhong | 14:1a6faeda6579 | 397 | printf("[CUBEBITE] ReadRcvdData() 호출 됨. \n"); |
| jmhong | 14:1a6faeda6579 | 398 | #endif |
| jmhong | 14:1a6faeda6579 | 399 | |
| jmhong | 14:1a6faeda6579 | 400 | for(unsigned int flush_count = 0; flush_count < TEST_STR_LEN; flush_count++) uiRendBuf[flush_count] = 0 ;/* clear the read buffer */ |
| jmhong | 14:1a6faeda6579 | 401 | |
| jmhong | 14:1a6faeda6579 | 402 | int ret = myspirit.read(uiRendBuf, sizeof(uiRendBuf)); |
| jmhong | 14:1a6faeda6579 | 403 | if (ret == 0) |
| jmhong | 14:1a6faeda6579 | 404 | { |
| jmhong | 14:1a6faeda6579 | 405 | printf("[CUBEBITE] Read() Error : Nothing to read\n"); |
| jmhong | 14:1a6faeda6579 | 406 | return CUBEBITE_RECV_ERROR_READ_NOTHING; |
| jmhong | 14:1a6faeda6579 | 407 | } |
| jmhong | 14:1a6faeda6579 | 408 | #ifdef CUBEBITE_RF_SPEED_TEST_RECV_ON |
| jmhong | 14:1a6faeda6579 | 409 | ret = strcmp((const char *)uiRendBuf, (const char *)uiSendBuf); |
| jmhong | 14:1a6faeda6579 | 410 | if (0 == ret) |
| jmhong | 14:1a6faeda6579 | 411 | { |
| jmhong | 14:1a6faeda6579 | 412 | // set_ack_bSendDataFlag(); //180118 HJM : 다시 바로 보내는 걸로 수정 |
| jmhong | 14:1a6faeda6579 | 413 | // printf("read, send buf collect!!\n"); |
| jmhong | 14:1a6faeda6579 | 414 | TestLED = !TestLED; /* Toggle LED at the receiver */ |
| jmhong | 14:1a6faeda6579 | 415 | // bIsAckSended = true; |
| jmhong | 14:1a6faeda6579 | 416 | #ifdef CUBEBITE_DEBUG |
| jmhong | 14:1a6faeda6579 | 417 | printf("[DEBUG]recv -> %s\n", uiRendBuf); |
| jmhong | 14:1a6faeda6579 | 418 | #endif |
| jmhong | 14:1a6faeda6579 | 419 | |
| jmhong | 14:1a6faeda6579 | 420 | //746zg 보드 |
| jmhong | 14:1a6faeda6579 | 421 | // wait(1.0); |
| jmhong | 14:1a6faeda6579 | 422 | /* |
| jmhong | 14:1a6faeda6579 | 423 | int iRet = myspirit.send(uiSendAckBuf, sizetCurrAckBufLen); |
| jmhong | 14:1a6faeda6579 | 424 | if (iRet == RADIO_TX_OK) |
| jmhong | 14:1a6faeda6579 | 425 | { |
| jmhong | 14:1a6faeda6579 | 426 | #ifdef CUBEBITE_DEBUG |
| jmhong | 14:1a6faeda6579 | 427 | printf("ACK : [RADIO_TX_OK]\n"); |
| jmhong | 14:1a6faeda6579 | 428 | #endif |
| jmhong | 14:1a6faeda6579 | 429 | } |
| jmhong | 14:1a6faeda6579 | 430 | else if (iRet == RADIO_TX_ERR) |
| jmhong | 14:1a6faeda6579 | 431 | { |
| jmhong | 14:1a6faeda6579 | 432 | #ifdef CUBEBITE_DEBUG |
| jmhong | 14:1a6faeda6579 | 433 | printf("ACK : [RADIO_TX_ERR]\n"); |
| jmhong | 14:1a6faeda6579 | 434 | #endif |
| jmhong | 14:1a6faeda6579 | 435 | } |
| jmhong | 14:1a6faeda6579 | 436 | else if (iRet == RADIO_TX_COLLISION) |
| jmhong | 14:1a6faeda6579 | 437 | { |
| jmhong | 14:1a6faeda6579 | 438 | #ifdef CUBEBITE_DEBUG |
| jmhong | 14:1a6faeda6579 | 439 | printf("ACK : [RADIO_TX_COLLISION]\n"); |
| jmhong | 14:1a6faeda6579 | 440 | #endif |
| jmhong | 14:1a6faeda6579 | 441 | } |
| jmhong | 14:1a6faeda6579 | 442 | else if (iRet == RADIO_TX_NOACK) |
| jmhong | 14:1a6faeda6579 | 443 | { |
| jmhong | 14:1a6faeda6579 | 444 | #ifdef CUBEBITE_DEBUG |
| jmhong | 14:1a6faeda6579 | 445 | printf("ACK : [RADIO_TX_NOACK]\n"); |
| jmhong | 14:1a6faeda6579 | 446 | #endif |
| jmhong | 14:1a6faeda6579 | 447 | } |
| jmhong | 14:1a6faeda6579 | 448 | */ |
| jmhong | 14:1a6faeda6579 | 449 | |
| jmhong | 14:1a6faeda6579 | 450 | return CUBEBITE_RECV_OK; |
| jmhong | 11:f8396aa48de6 | 451 | } |
| jmhong | 11:f8396aa48de6 | 452 | #endif |
| jmhong | 11:f8396aa48de6 | 453 | |
| jmhong | 11:f8396aa48de6 | 454 | #ifdef CUBEBITE_RF_SPEED_TEST_SEND_ON |
| jmhong | 11:f8396aa48de6 | 455 | //401re 보드 |
| jmhong | 11:f8396aa48de6 | 456 | if (true == bIsSendFirstClockFunctionStarted) |
| jmhong | 11:f8396aa48de6 | 457 | { |
| jmhong | 14:1a6faeda6579 | 458 | clocktimeRFSpeedTestEnd = clock(); |
| jmhong | 11:f8396aa48de6 | 459 | } |
| jmhong | 14:1a6faeda6579 | 460 | //printf("[DEBUG]recv -> %s\n", uiRendBuf); |
| jmhong | 11:f8396aa48de6 | 461 | #endif |
| jmhong | 11:f8396aa48de6 | 462 | |
| jmhong | 11:f8396aa48de6 | 463 | |
| jmhong | 11:f8396aa48de6 | 464 | #ifdef CUBEBITE_DEBUG |
| jmhong | 14:1a6faeda6579 | 465 | printf("[CUBEBITE] ReadRcvdData() 호출 끝. \n"); |
| jmhong | 11:f8396aa48de6 | 466 | #endif |
| jmhong | 14:1a6faeda6579 | 467 | |
| jmhong | 14:1a6faeda6579 | 468 | return CUBEBITE_RECV_ERROR_READ_NOT_MATCH; |
| rosarium | 4:cae1fa054b86 | 469 | } |
| rosarium | 4:cae1fa054b86 | 470 | |
| jmhong | 14:1a6faeda6579 | 471 | |
| jmhong | 14:1a6faeda6579 | 472 | |
| jmhong | 14:1a6faeda6579 | 473 | |
| jmhong | 14:1a6faeda6579 | 474 | |
| jmhong | 14:1a6faeda6579 | 475 | |
| jmhong | 14:1a6faeda6579 | 476 | /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
| jmhong | 14:1a6faeda6579 | 477 | /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
| jmhong | 14:1a6faeda6579 | 478 | /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
| jmhong | 14:1a6faeda6579 | 479 | /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
| jmhong | 14:1a6faeda6579 | 480 | /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
| jmhong | 14:1a6faeda6579 | 481 | /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
| jmhong | 14:1a6faeda6579 | 482 | /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
| jmhong | 14:1a6faeda6579 | 483 | /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
| jmhong | 14:1a6faeda6579 | 484 | /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
| jmhong | 14:1a6faeda6579 | 485 | /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
| jmhong | 14:1a6faeda6579 | 486 | /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
| jmhong | 14:1a6faeda6579 | 487 | /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
| jmhong | 14:1a6faeda6579 | 488 | /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
| jmhong | 14:1a6faeda6579 | 489 | /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
| jmhong | 14:1a6faeda6579 | 490 | /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
| jmhong | 14:1a6faeda6579 | 491 | /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
| jmhong | 14:1a6faeda6579 | 492 | /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
| jmhong | 14:1a6faeda6579 | 493 | /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
| jmhong | 14:1a6faeda6579 | 494 | /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
| jmhong | 14:1a6faeda6579 | 495 | /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
| jmhong | 14:1a6faeda6579 | 496 | /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
| jmhong | 14:1a6faeda6579 | 497 | /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
| jmhong | 14:1a6faeda6579 | 498 | //send |
| jmhong | 14:1a6faeda6579 | 499 | |
| jmhong | 14:1a6faeda6579 | 500 | |
| jmhong | 14:1a6faeda6579 | 501 | |
| jmhong | 11:f8396aa48de6 | 502 | |
| jmhong | 11:f8396aa48de6 | 503 | |
| rosarium | 4:cae1fa054b86 | 504 | |
| rosarium | 1:cf2e2f85bf8d | 505 | /** |
| jmhong | 14:1a6faeda6579 | 506 | * @brief SendData |
| rosarium | 1:cf2e2f85bf8d | 507 | * @param None |
| jmhong | 14:1a6faeda6579 | 508 | * @retval None |
| rosarium | 1:cf2e2f85bf8d | 509 | */ |
| jmhong | 14:1a6faeda6579 | 510 | static int SendData(SimpleSpirit1& myspirit) |
| jmhong | 14:1a6faeda6579 | 511 | { |
| jmhong | 14:1a6faeda6579 | 512 | #ifdef CUBEBITE_DEBUG |
| jmhong | 14:1a6faeda6579 | 513 | printf("[CUBEBITE] SendData() 호출 됨.\n"); |
| jmhong | 14:1a6faeda6579 | 514 | #endif |
| jmhong | 14:1a6faeda6579 | 515 | while(myspirit.is_receiving()); /* wait for ongoing RX ends 180110 HJM 아마 이 전에 보내던 거 마저 다 보내려고 하는 거 같다. */ |
| jmhong | 14:1a6faeda6579 | 516 | |
| jmhong | 14:1a6faeda6579 | 517 | size_t curr_len = strlen((const char*)uiSendBuf) + 1; |
| jmhong | 10:cc81b87e005e | 518 | int iRet = 0; |
| jmhong | 11:f8396aa48de6 | 519 | |
| jmhong | 14:1a6faeda6579 | 520 | printf("SendData() uiSendBuf -> [%s]\n", uiSendBuf); |
| jmhong | 14:1a6faeda6579 | 521 | iRet = myspirit.send(uiSendBuf, curr_len); |
| jmhong | 14:1a6faeda6579 | 522 | if (iRet == RADIO_TX_OK) |
| jmhong | 14:1a6faeda6579 | 523 | { |
| jmhong | 14:1a6faeda6579 | 524 | #ifdef CUBEBITE_DEBUG |
| jmhong | 14:1a6faeda6579 | 525 | printf("[RADIO_TX_OK]\n"); |
| jmhong | 14:1a6faeda6579 | 526 | #endif |
| jmhong | 14:1a6faeda6579 | 527 | return CUBEBITE_SEND_OK; |
| jmhong | 14:1a6faeda6579 | 528 | } |
| jmhong | 14:1a6faeda6579 | 529 | else if (iRet == RADIO_TX_ERR) |
| jmhong | 14:1a6faeda6579 | 530 | { |
| jmhong | 14:1a6faeda6579 | 531 | #ifdef CUBEBITE_DEBUG |
| jmhong | 14:1a6faeda6579 | 532 | printf("[RADIO_TX_ERR]\n"); |
| jmhong | 14:1a6faeda6579 | 533 | #endif |
| jmhong | 14:1a6faeda6579 | 534 | return CUBEBITE_SEND_ERROR; |
| jmhong | 14:1a6faeda6579 | 535 | } |
| jmhong | 14:1a6faeda6579 | 536 | else if (iRet == RADIO_TX_COLLISION) |
| jmhong | 14:1a6faeda6579 | 537 | { |
| jmhong | 14:1a6faeda6579 | 538 | #ifdef CUBEBITE_DEBUG |
| jmhong | 14:1a6faeda6579 | 539 | printf("[RADIO_TX_COLLISION]\n"); |
| jmhong | 14:1a6faeda6579 | 540 | #endif |
| jmhong | 14:1a6faeda6579 | 541 | return CUBEBITE_SEND_COLLISION; |
| jmhong | 14:1a6faeda6579 | 542 | } |
| jmhong | 14:1a6faeda6579 | 543 | else if (iRet == RADIO_TX_NOACK) |
| jmhong | 14:1a6faeda6579 | 544 | { |
| jmhong | 14:1a6faeda6579 | 545 | #ifdef CUBEBITE_DEBUG |
| jmhong | 14:1a6faeda6579 | 546 | printf("[RADIO_TX_NOACK]\n"); |
| jmhong | 14:1a6faeda6579 | 547 | #endif |
| jmhong | 14:1a6faeda6579 | 548 | return CUBEBITE_SEND_NOACK; |
| jmhong | 14:1a6faeda6579 | 549 | } |
| jmhong | 10:cc81b87e005e | 550 | |
| jmhong | 11:f8396aa48de6 | 551 | #ifdef CUBEBITE_DEBUG |
| jmhong | 14:1a6faeda6579 | 552 | printf("[CUBEBITE] SendData() 호출 끝.\n"); |
| jmhong | 11:f8396aa48de6 | 553 | #endif |
| jmhong | 10:cc81b87e005e | 554 | |
| jmhong | 14:1a6faeda6579 | 555 | return CUBEBITE_SEND_ERROR_UNKNOWN; |
| jmhong | 14:1a6faeda6579 | 556 | } |
| jmhong | 11:f8396aa48de6 | 557 | |
| jmhong | 10:cc81b87e005e | 558 | |
| jmhong | 14:1a6faeda6579 | 559 | static int SendData_ClockMeasure_AckStart(SimpleSpirit1& myspirit) |
| jmhong | 14:1a6faeda6579 | 560 | { |
| jmhong | 14:1a6faeda6579 | 561 | #ifdef CUBEBITE_DEBUG |
| jmhong | 14:1a6faeda6579 | 562 | printf("[CUBEBITE] SendData() 호출 됨.\n"); |
| jmhong | 10:cc81b87e005e | 563 | #endif |
| jmhong | 14:1a6faeda6579 | 564 | while(myspirit.is_receiving()); /* wait for ongoing RX ends 180110 HJM 아마 이 전에 보내던 거 마저 다 보내려고 하는 거 같다. */ |
| jmhong | 14:1a6faeda6579 | 565 | |
| jmhong | 14:1a6faeda6579 | 566 | size_t curr_len = strlen((const char*)uiSendBuf) + 1; |
| jmhong | 14:1a6faeda6579 | 567 | int iRet = 0; |
| jmhong | 14:1a6faeda6579 | 568 | |
| jmhong | 14:1a6faeda6579 | 569 | iRet = myspirit.send(uiSendBuf, curr_len); |
| jmhong | 14:1a6faeda6579 | 570 | if (iRet == RADIO_TX_OK) |
| jmhong | 11:f8396aa48de6 | 571 | { |
| jmhong | 14:1a6faeda6579 | 572 | #ifdef CUBEBITE_DEBUG |
| jmhong | 14:1a6faeda6579 | 573 | printf("[RADIO_TX_OK]\n"); |
| jmhong | 14:1a6faeda6579 | 574 | #endif |
| jmhong | 14:1a6faeda6579 | 575 | |
| jmhong | 14:1a6faeda6579 | 576 | #ifdef CUBEBITE_RF_SPEED_TEST_SEND_ON |
| jmhong | 14:1a6faeda6579 | 577 | if (false == bIsSendFirstClockFunctionStarted) |
| jmhong | 14:1a6faeda6579 | 578 | { |
| jmhong | 14:1a6faeda6579 | 579 | clocktimeRFSpeedTestStart = clock(); |
| jmhong | 14:1a6faeda6579 | 580 | bIsSendFirstClockFunctionStarted = true; |
| jmhong | 14:1a6faeda6579 | 581 | } |
| jmhong | 14:1a6faeda6579 | 582 | #endif |
| jmhong | 14:1a6faeda6579 | 583 | |
| jmhong | 14:1a6faeda6579 | 584 | return CUBEBITE_SEND_OK; |
| jmhong | 14:1a6faeda6579 | 585 | } |
| jmhong | 14:1a6faeda6579 | 586 | else if (iRet == RADIO_TX_ERR) |
| jmhong | 14:1a6faeda6579 | 587 | { |
| jmhong | 14:1a6faeda6579 | 588 | #ifdef CUBEBITE_DEBUG |
| jmhong | 14:1a6faeda6579 | 589 | printf("[RADIO_TX_ERR]\n"); |
| jmhong | 14:1a6faeda6579 | 590 | #endif |
| jmhong | 14:1a6faeda6579 | 591 | return CUBEBITE_SEND_ERROR; |
| jmhong | 14:1a6faeda6579 | 592 | } |
| jmhong | 14:1a6faeda6579 | 593 | else if (iRet == RADIO_TX_COLLISION) |
| jmhong | 14:1a6faeda6579 | 594 | { |
| jmhong | 14:1a6faeda6579 | 595 | #ifdef CUBEBITE_DEBUG |
| jmhong | 14:1a6faeda6579 | 596 | printf("[RADIO_TX_COLLISION]\n"); |
| jmhong | 14:1a6faeda6579 | 597 | #endif |
| jmhong | 14:1a6faeda6579 | 598 | return CUBEBITE_SEND_COLLISION; |
| jmhong | 14:1a6faeda6579 | 599 | } |
| jmhong | 14:1a6faeda6579 | 600 | else if (iRet == RADIO_TX_NOACK) |
| jmhong | 14:1a6faeda6579 | 601 | { |
| jmhong | 14:1a6faeda6579 | 602 | #ifdef CUBEBITE_DEBUG |
| jmhong | 14:1a6faeda6579 | 603 | printf("[RADIO_TX_NOACK]\n"); |
| jmhong | 14:1a6faeda6579 | 604 | #endif |
| jmhong | 14:1a6faeda6579 | 605 | return CUBEBITE_SEND_NOACK; |
| jmhong | 14:1a6faeda6579 | 606 | } |
| jmhong | 11:f8396aa48de6 | 607 | |
| jmhong | 14:1a6faeda6579 | 608 | #ifdef CUBEBITE_DEBUG |
| jmhong | 14:1a6faeda6579 | 609 | printf("[CUBEBITE] SendData() 호출 끝.\n"); |
| jmhong | 14:1a6faeda6579 | 610 | #endif |
| jmhong | 14:1a6faeda6579 | 611 | |
| jmhong | 14:1a6faeda6579 | 612 | return CUBEBITE_SEND_ERROR_UNKNOWN; |
| jmhong | 14:1a6faeda6579 | 613 | } |
| jmhong | 10:cc81b87e005e | 614 | |
| jmhong | 12:5e20115bd13b | 615 | |
| jmhong | 12:5e20115bd13b | 616 | |
| jmhong | 12:5e20115bd13b | 617 | |
| jmhong | 14:1a6faeda6579 | 618 | |
| jmhong | 14:1a6faeda6579 | 619 | |
| jmhong | 12:5e20115bd13b | 620 | |
| jmhong | 14:1a6faeda6579 | 621 | |
| jmhong | 11:f8396aa48de6 | 622 | |
| jmhong | 14:1a6faeda6579 | 623 |
