for hank
Dependencies: mbed-STM32F103C8T6_new
main.cpp@4:864bb8bde75c, 2020-04-18 (annotated)
- Committer:
- hankzhang
- Date:
- Sat Apr 18 13:02:03 2020 +0000
- Revision:
- 4:864bb8bde75c
- Parent:
- 3:30d61fa10b98
- Child:
- 6:a9cc2c424cf9
test
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
techneo | 0:217105958c2d | 1 | #include "mbed.h" |
bbw | 1:0fe432e5dfc4 | 2 | #include "stm32f103c8t6.h" |
hankzhang | 3:30d61fa10b98 | 3 | #include "string.h" |
hankzhang | 3:30d61fa10b98 | 4 | #include "main.h" |
hankzhang | 4:864bb8bde75c | 5 | #include "stdio.h" |
hankzhang | 4:864bb8bde75c | 6 | #include "stdlib.h" |
bbw | 1:0fe432e5dfc4 | 7 | |
hankzhang | 2:f48b0967b6cc | 8 | DigitalOut led1(PC_13); |
techneo | 0:217105958c2d | 9 | |
hankzhang | 3:30d61fa10b98 | 10 | //Serial pc(PB_10,PB_11); |
hankzhang | 3:30d61fa10b98 | 11 | |
hankzhang | 3:30d61fa10b98 | 12 | UARTSerial *_serial; |
bbw | 1:0fe432e5dfc4 | 13 | |
hankzhang | 3:30d61fa10b98 | 14 | UARTSerial debug_uart(PB_10, PB_11, 115200); |
hankzhang | 3:30d61fa10b98 | 15 | UARTSerial wifi_uart(PA_2, PA_3, 115200); |
hankzhang | 3:30d61fa10b98 | 16 | |
hankzhang | 4:864bb8bde75c | 17 | //Serial wifi_uart(PA_2, PA_3, 115200); |
hankzhang | 4:864bb8bde75c | 18 | //Serial debug_uart(PB_10, PB_11, 115200); |
hankzhang | 4:864bb8bde75c | 19 | |
hankzhang | 4:864bb8bde75c | 20 | char rxBuf[32]; |
hankzhang | 4:864bb8bde75c | 21 | char wifi_rxBuf[32]; //receive msg from xiaomi cloud |
hankzhang | 4:864bb8bde75c | 22 | short g_isCloud = 0; //flag for connected xiaomi cloud |
hankzhang | 4:864bb8bde75c | 23 | |
hankzhang | 4:864bb8bde75c | 24 | //char set_property[] = {"down set_properties "} |
hankzhang | 4:864bb8bde75c | 25 | //char get_property[] = {"down get_properties "} |
hankzhang | 3:30d61fa10b98 | 26 | int i = 0; |
hankzhang | 3:30d61fa10b98 | 27 | |
hankzhang | 3:30d61fa10b98 | 28 | ATCmdParser *_parser; |
hankzhang | 4:864bb8bde75c | 29 | |
hankzhang | 4:864bb8bde75c | 30 | void led1_thread() { |
hankzhang | 4:864bb8bde75c | 31 | int length; |
hankzhang | 4:864bb8bde75c | 32 | char len[20]; |
hankzhang | 4:864bb8bde75c | 33 | char l; |
hankzhang | 4:864bb8bde75c | 34 | int position = 0; |
hankzhang | 4:864bb8bde75c | 35 | int error = 0; |
hankzhang | 4:864bb8bde75c | 36 | |
hankzhang | 4:864bb8bde75c | 37 | while (true) |
hankzhang | 4:864bb8bde75c | 38 | { |
hankzhang | 4:864bb8bde75c | 39 | wifi_uart.write("get_down\r", 9); |
hankzhang | 4:864bb8bde75c | 40 | if(wifi_uart.readable()) |
hankzhang | 4:864bb8bde75c | 41 | { |
hankzhang | 4:864bb8bde75c | 42 | length = wifi_uart.read(wifi_rxBuf, sizeof(wifi_rxBuf)); |
hankzhang | 4:864bb8bde75c | 43 | if(!(strncmp(wifi_rxBuf,"down none",9))) |
hankzhang | 4:864bb8bde75c | 44 | { |
hankzhang | 4:864bb8bde75c | 45 | //if return "down none" |
hankzhang | 4:864bb8bde75c | 46 | debug_uart.write("--- none",8); |
hankzhang | 4:864bb8bde75c | 47 | } |
hankzhang | 4:864bb8bde75c | 48 | else if(!(strncmp(wifi_rxBuf,"down set_properties ",20))) |
hankzhang | 4:864bb8bde75c | 49 | { |
hankzhang | 4:864bb8bde75c | 50 | //if return "down set_properties" |
hankzhang | 4:864bb8bde75c | 51 | debug_uart.write("--- set:", 8); |
hankzhang | 4:864bb8bde75c | 52 | debug_uart.write(wifi_rxBuf, length); |
hankzhang | 4:864bb8bde75c | 53 | |
hankzhang | 4:864bb8bde75c | 54 | //set properties |
hankzhang | 4:864bb8bde75c | 55 | if(wifi_rxBuf[22] == '7') |
hankzhang | 4:864bb8bde75c | 56 | { |
hankzhang | 4:864bb8bde75c | 57 | //set target-position |
hankzhang | 4:864bb8bde75c | 58 | position = atoi(&wifi_rxBuf[24]); |
hankzhang | 4:864bb8bde75c | 59 | sprintf(len, "position:%d", position); |
hankzhang | 4:864bb8bde75c | 60 | debug_uart.write(len, sizeof(len)); |
hankzhang | 4:864bb8bde75c | 61 | } |
hankzhang | 4:864bb8bde75c | 62 | |
hankzhang | 4:864bb8bde75c | 63 | //report result to cloud |
hankzhang | 4:864bb8bde75c | 64 | wifi_uart.write("result 2 7 0\r", 13); |
hankzhang | 4:864bb8bde75c | 65 | if(wifi_uart.readable()) |
hankzhang | 4:864bb8bde75c | 66 | { |
hankzhang | 4:864bb8bde75c | 67 | length = wifi_uart.read(wifi_rxBuf, sizeof(wifi_rxBuf)); |
hankzhang | 4:864bb8bde75c | 68 | debug_uart.write(wifi_rxBuf, length); |
hankzhang | 4:864bb8bde75c | 69 | } |
hankzhang | 4:864bb8bde75c | 70 | } |
hankzhang | 4:864bb8bde75c | 71 | else if(!(strncmp(wifi_rxBuf,"down get_properties ",20))) |
hankzhang | 4:864bb8bde75c | 72 | { |
hankzhang | 4:864bb8bde75c | 73 | //if return "down get_properties" |
hankzhang | 4:864bb8bde75c | 74 | debug_uart.write("--- get:", 8); |
hankzhang | 4:864bb8bde75c | 75 | debug_uart.write(wifi_rxBuf, length); |
hankzhang | 4:864bb8bde75c | 76 | |
hankzhang | 4:864bb8bde75c | 77 | //report result to cloud |
hankzhang | 4:864bb8bde75c | 78 | } |
hankzhang | 4:864bb8bde75c | 79 | else if(!(strncmp(wifi_rxBuf,"down MIIO_net_change ",21))) |
hankzhang | 4:864bb8bde75c | 80 | { |
hankzhang | 4:864bb8bde75c | 81 | //if return "down MIIO_net_change" |
hankzhang | 4:864bb8bde75c | 82 | debug_uart.write(wifi_rxBuf, length); |
hankzhang | 4:864bb8bde75c | 83 | debug_uart.write("--- net:",8); |
hankzhang | 4:864bb8bde75c | 84 | if((!strncmp(&wifi_rxBuf[21], "offline", 7))) |
hankzhang | 4:864bb8bde75c | 85 | { |
hankzhang | 4:864bb8bde75c | 86 | //连接中 |
hankzhang | 4:864bb8bde75c | 87 | debug_uart.write("offline\r", 8); |
hankzhang | 4:864bb8bde75c | 88 | } |
hankzhang | 4:864bb8bde75c | 89 | else if((!strncmp(&wifi_rxBuf[21], "local", 5))) |
hankzhang | 4:864bb8bde75c | 90 | { |
hankzhang | 4:864bb8bde75c | 91 | //连上路由器但未连上服务器 |
hankzhang | 4:864bb8bde75c | 92 | debug_uart.write("local\r", 6); |
hankzhang | 4:864bb8bde75c | 93 | } |
hankzhang | 4:864bb8bde75c | 94 | else if((!strncmp(&wifi_rxBuf[21], "cloud", 5))) |
hankzhang | 4:864bb8bde75c | 95 | { |
hankzhang | 4:864bb8bde75c | 96 | //连上小米云服务器 |
hankzhang | 4:864bb8bde75c | 97 | debug_uart.write("cloud\r", 6); |
hankzhang | 4:864bb8bde75c | 98 | g_isCloud = 1; |
hankzhang | 4:864bb8bde75c | 99 | } |
hankzhang | 4:864bb8bde75c | 100 | } |
hankzhang | 4:864bb8bde75c | 101 | else |
hankzhang | 4:864bb8bde75c | 102 | { |
hankzhang | 4:864bb8bde75c | 103 | debug_uart.write(wifi_rxBuf, length); |
hankzhang | 4:864bb8bde75c | 104 | } |
hankzhang | 4:864bb8bde75c | 105 | |
hankzhang | 4:864bb8bde75c | 106 | } |
hankzhang | 4:864bb8bde75c | 107 | thread_sleep_for(400); |
techneo | 0:217105958c2d | 108 | } |
techneo | 0:217105958c2d | 109 | } |
techneo | 0:217105958c2d | 110 | |
bbw | 1:0fe432e5dfc4 | 111 | |
hankzhang | 2:f48b0967b6cc | 112 | void led0_thread() { |
hankzhang | 3:30d61fa10b98 | 113 | int length; |
hankzhang | 3:30d61fa10b98 | 114 | while (1) { |
hankzhang | 3:30d61fa10b98 | 115 | if(debug_uart.readable()) |
hankzhang | 3:30d61fa10b98 | 116 | { |
hankzhang | 3:30d61fa10b98 | 117 | length = debug_uart.read(rxBuf, sizeof(rxBuf)); |
hankzhang | 3:30d61fa10b98 | 118 | debug_uart.write(rxBuf, length); |
hankzhang | 3:30d61fa10b98 | 119 | wifi_uart.write(rxBuf, length); |
hankzhang | 3:30d61fa10b98 | 120 | debug_uart.write("111\r",4); |
hankzhang | 3:30d61fa10b98 | 121 | } |
hankzhang | 3:30d61fa10b98 | 122 | if(wifi_uart.readable()) |
hankzhang | 3:30d61fa10b98 | 123 | { |
hankzhang | 3:30d61fa10b98 | 124 | length = wifi_uart.read(rxBuf, sizeof(rxBuf)); |
hankzhang | 3:30d61fa10b98 | 125 | debug_uart.write(rxBuf, length); |
hankzhang | 3:30d61fa10b98 | 126 | debug_uart.write("222\r",4); |
hankzhang | 3:30d61fa10b98 | 127 | |
hankzhang | 3:30d61fa10b98 | 128 | } |
hankzhang | 3:30d61fa10b98 | 129 | wait(0.5); |
bbw | 1:0fe432e5dfc4 | 130 | } |
bbw | 1:0fe432e5dfc4 | 131 | } |
hankzhang | 3:30d61fa10b98 | 132 | |
hankzhang | 3:30d61fa10b98 | 133 | |
hankzhang | 2:f48b0967b6cc | 134 | int main() { |
hankzhang | 3:30d61fa10b98 | 135 | int length; |
hankzhang | 3:30d61fa10b98 | 136 | led1 = 1; |
hankzhang | 3:30d61fa10b98 | 137 | |
hankzhang | 4:864bb8bde75c | 138 | wait(1); |
hankzhang | 3:30d61fa10b98 | 139 | |
hankzhang | 3:30d61fa10b98 | 140 | debug_uart.write("hello world",11); |
hankzhang | 2:f48b0967b6cc | 141 | |
hankzhang | 4:864bb8bde75c | 142 | WIFI_PWREN = 1; |
hankzhang | 3:30d61fa10b98 | 143 | |
hankzhang | 4:864bb8bde75c | 144 | //Thread thread0(osPriorityNormal, 512, nullptr, nullptr); |
hankzhang | 4:864bb8bde75c | 145 | Thread thread1(osPriorityNormal, 512, nullptr, nullptr); |
hankzhang | 3:30d61fa10b98 | 146 | //Thread thread2(osPriorityNormal, 512, nullptr, nullptr); |
hankzhang | 2:f48b0967b6cc | 147 | |
hankzhang | 4:864bb8bde75c | 148 | //thread0.start(led0_thread); |
hankzhang | 4:864bb8bde75c | 149 | thread1.start(led1_thread); |
hankzhang | 2:f48b0967b6cc | 150 | |
hankzhang | 3:30d61fa10b98 | 151 | //wifi_serial.printf("model\r\n"); |
hankzhang | 3:30d61fa10b98 | 152 | //thread1.start(led1_thread); |
hankzhang | 3:30d61fa10b98 | 153 | //thread2.start(led2_thread); |
hankzhang | 3:30d61fa10b98 | 154 | while(1) |
hankzhang | 3:30d61fa10b98 | 155 | { |
hankzhang | 3:30d61fa10b98 | 156 | debug_uart.write("--main--\r\n",10); |
hankzhang | 4:864bb8bde75c | 157 | if(g_isCloud) |
hankzhang | 4:864bb8bde75c | 158 | { |
hankzhang | 4:864bb8bde75c | 159 | debug_uart.write("connect to xiaomi cloud\r\n",25); |
hankzhang | 4:864bb8bde75c | 160 | } |
hankzhang | 3:30d61fa10b98 | 161 | wait(3); |
bbw | 1:0fe432e5dfc4 | 162 | } |
hankzhang | 3:30d61fa10b98 | 163 | |
hankzhang | 2:f48b0967b6cc | 164 | } |