QAQ ==!
Dependencies: mbed QEI-1 nRF24L01P xiugai
useful_func.cpp@15:934289377f7a, 2019-12-14 (annotated)
- Committer:
- AlexQian
- Date:
- Sat Dec 14 05:45:16 2019 +0000
- Revision:
- 15:934289377f7a
- Parent:
- 9:d03b1af2b8d8
Balance_Car;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
zhangyx | 9:d03b1af2b8d8 | 1 | #include "useful_func.h" |
zhangyx | 9:d03b1af2b8d8 | 2 | |
zhangyx | 9:d03b1af2b8d8 | 3 | #include <stdio.h> |
zhangyx | 9:d03b1af2b8d8 | 4 | |
zhangyx | 9:d03b1af2b8d8 | 5 | #ifdef ENABLE_FILESYSTEM |
zhangyx | 9:d03b1af2b8d8 | 6 | extern Serial ser2usb; |
zhangyx | 9:d03b1af2b8d8 | 7 | |
zhangyx | 9:d03b1af2b8d8 | 8 | void read_file_names(const char *dir, vector<string> & filenames) |
zhangyx | 9:d03b1af2b8d8 | 9 | //Õâ¸öº¯ÊýºóÆÚ¿ÉÒÔÖØÔسɴøÒ»¸öÊäÈëvector<string>ÒýÓöÔÏóµÄ·½·¨ |
zhangyx | 9:d03b1af2b8d8 | 10 | //ÕâÑùÕâ¸övector¿ÉÒÔ²»ÓÃÉùÃ÷³ÉÈ«¾Ö±äÁ¿ |
zhangyx | 9:d03b1af2b8d8 | 11 | //already reload |
zhangyx | 9:d03b1af2b8d8 | 12 | { |
zhangyx | 9:d03b1af2b8d8 | 13 | //ser2usb.printf("-----Calling read_file_names-----\r\n"); |
zhangyx | 9:d03b1af2b8d8 | 14 | filenames.clear(); |
zhangyx | 9:d03b1af2b8d8 | 15 | //ser2usb.printf("reading files...\r\n"); |
zhangyx | 9:d03b1af2b8d8 | 16 | DIR *dp;//Ò»¸öÎļþµØÖ·¶ÔÏóÖ¸Õë |
zhangyx | 9:d03b1af2b8d8 | 17 | struct dirent *dirp; |
zhangyx | 9:d03b1af2b8d8 | 18 | //ÏÂÃæÊÇdirentµÄ¶¨Òå |
zhangyx | 9:d03b1af2b8d8 | 19 | //struct dirent |
zhangyx | 9:d03b1af2b8d8 | 20 | //{ |
zhangyx | 9:d03b1af2b8d8 | 21 | // long d_ino; |
zhangyx | 9:d03b1af2b8d8 | 22 | // off_t d_off; |
zhangyx | 9:d03b1af2b8d8 | 23 | // unsigned short d_reclen; |
zhangyx | 9:d03b1af2b8d8 | 24 | // char d_name [NAME_MAX+1]; |
zhangyx | 9:d03b1af2b8d8 | 25 | //} |
zhangyx | 9:d03b1af2b8d8 | 26 | |
zhangyx | 9:d03b1af2b8d8 | 27 | /**************************************************************** |
zhangyx | 9:d03b1af2b8d8 | 28 | ÕâÀïµÄdirent.hÊÇlinuxϵij£ÓÃÍ·Îļþ |
zhangyx | 9:d03b1af2b8d8 | 29 | ʹÓ÷½·¨²Î¿´ |
zhangyx | 9:d03b1af2b8d8 | 30 | https://blog.csdn.net/dream_allday/article/details/75243818 |
zhangyx | 9:d03b1af2b8d8 | 31 | *****************************************************************/ |
zhangyx | 9:d03b1af2b8d8 | 32 | int i = 0; |
zhangyx | 9:d03b1af2b8d8 | 33 | dp = opendir(dir); |
zhangyx | 9:d03b1af2b8d8 | 34 | //read all directory and file names in current directory into filename vector |
zhangyx | 9:d03b1af2b8d8 | 35 | while((dirp = readdir(dp)) != NULL) |
zhangyx | 9:d03b1af2b8d8 | 36 | { |
zhangyx | 9:d03b1af2b8d8 | 37 | if (strcmp("System Volume Information", dirp->d_name)) |
zhangyx | 9:d03b1af2b8d8 | 38 | { |
zhangyx | 9:d03b1af2b8d8 | 39 | filenames.push_back(string(dirp->d_name)); |
zhangyx | 9:d03b1af2b8d8 | 40 | //push_backÊÇvector¶ÔÏóÖеÄÒ»¸ö·½·¨ |
zhangyx | 9:d03b1af2b8d8 | 41 | //ÓÃÓÚ½«ÔªËØÌí¼Óµ½vector¶ÔÏóĩβ |
zhangyx | 9:d03b1af2b8d8 | 42 | //ÕâÀïÊǽ«Ò»¸ödirentÀàÐ͵ĽṹÌå¶ÔÏóÖеÄd_name(ÎļþÃû)Ìí¼Óµ½filenamesµÄĩβ |
zhangyx | 9:d03b1af2b8d8 | 43 | //r2usb.printf("%d - %s\r\n", i++, dirp->d_name); |
zhangyx | 9:d03b1af2b8d8 | 44 | } |
zhangyx | 9:d03b1af2b8d8 | 45 | } |
zhangyx | 9:d03b1af2b8d8 | 46 | closedir(dp); |
zhangyx | 9:d03b1af2b8d8 | 47 | //2usb.printf("file names read\r\n"); |
zhangyx | 9:d03b1af2b8d8 | 48 | } |
zhangyx | 9:d03b1af2b8d8 | 49 | #endif // ENABLE_FILESYSTEM |
zhangyx | 9:d03b1af2b8d8 | 50 | |
zhangyx | 9:d03b1af2b8d8 | 51 | #ifdef ENABLE_ESP8266 |
zhangyx | 9:d03b1af2b8d8 | 52 | extern Serial ser2usb; |
zhangyx | 9:d03b1af2b8d8 | 53 | void mqtt_client_init( |
zhangyx | 9:d03b1af2b8d8 | 54 | Esp8266 & client, |
zhangyx | 9:d03b1af2b8d8 | 55 | const char* device_name, |
zhangyx | 9:d03b1af2b8d8 | 56 | const char* publish_topic[][2], |
zhangyx | 9:d03b1af2b8d8 | 57 | const char* subscribe_topic[][2] |
zhangyx | 9:d03b1af2b8d8 | 58 | ) |
zhangyx | 9:d03b1af2b8d8 | 59 | //³õʼ»¯mqtt¿Í»§¶ËµÄº¯Êý |
zhangyx | 9:d03b1af2b8d8 | 60 | //Ó¦ÊäÈ붩ÔÄÁбí |
zhangyx | 9:d03b1af2b8d8 | 61 | { |
zhangyx | 9:d03b1af2b8d8 | 62 | client.connect_mqtt_broker("192.168.12.1", device_name, publish_topic, subscribe_topic); |
zhangyx | 9:d03b1af2b8d8 | 63 | |
zhangyx | 9:d03b1af2b8d8 | 64 | //subscribe topic |
zhangyx | 9:d03b1af2b8d8 | 65 | /* |
zhangyx | 9:d03b1af2b8d8 | 66 | for (int i = 0; subscribe_topic[i][0] != NULL; i++) |
zhangyx | 9:d03b1af2b8d8 | 67 | { |
zhangyx | 9:d03b1af2b8d8 | 68 | ser2usb.printf("subscribe topic \"%s\"\r\n", subscribe_topic[i][0]); |
zhangyx | 9:d03b1af2b8d8 | 69 | client.subscribe_control(subscribe_topic[i][0]); |
zhangyx | 9:d03b1af2b8d8 | 70 | } |
zhangyx | 9:d03b1af2b8d8 | 71 | */ |
zhangyx | 9:d03b1af2b8d8 | 72 | } |
zhangyx | 9:d03b1af2b8d8 | 73 | void send_file_names(Esp8266 & client, vector<string> & filenames, const char * publish_topic) |
zhangyx | 9:d03b1af2b8d8 | 74 | { |
zhangyx | 9:d03b1af2b8d8 | 75 | //ser2usb.printf("-----Calling send_file_names-----\r\n"); |
zhangyx | 9:d03b1af2b8d8 | 76 | //er2usb.printf("filenames:\r\n"); |
zhangyx | 9:d03b1af2b8d8 | 77 | char filename[128]; |
zhangyx | 9:d03b1af2b8d8 | 78 | //std::stringstream ss; |
zhangyx | 9:d03b1af2b8d8 | 79 | int filenumber = 0; |
zhangyx | 9:d03b1af2b8d8 | 80 | client.publish_value(publish_topic, "_upload"); |
zhangyx | 9:d03b1af2b8d8 | 81 | wait(0.15); |
zhangyx | 9:d03b1af2b8d8 | 82 | for(vector<string>::iterator it = filenames.begin(); it < filenames.end(); it++) |
zhangyx | 9:d03b1af2b8d8 | 83 | /****************************** |
zhangyx | 9:d03b1af2b8d8 | 84 | ÕâÀïiteratorÊÇvectorÀàÖеĵü´úÆ÷¶ÔÏó |
zhangyx | 9:d03b1af2b8d8 | 85 | Ñ»·Àï´ÓvectorµÄµÚÒ»¸öÔªËصØÖ·¿ªÊ¼ |
zhangyx | 9:d03b1af2b8d8 | 86 | µü´úµ½×îºóÒ»¸ö |
zhangyx | 9:d03b1af2b8d8 | 87 | µü´úÆ÷µÄÆäËûÓ÷¨²Î¿´ |
zhangyx | 9:d03b1af2b8d8 | 88 | https://blog.csdn.net/yyangzhenjie/article/details/74518905 |
zhangyx | 9:d03b1af2b8d8 | 89 | ******************************/ |
zhangyx | 9:d03b1af2b8d8 | 90 | { |
zhangyx | 9:d03b1af2b8d8 | 91 | //ser2usb.printf("---loop %d---\r\n", filenumber); |
zhangyx | 9:d03b1af2b8d8 | 92 | // ss << filenumber << " - " << (*it) << "\r\n"; |
zhangyx | 9:d03b1af2b8d8 | 93 | sprintf(filename, "%d - %s", filenumber, it->c_str()); |
zhangyx | 9:d03b1af2b8d8 | 94 | |
zhangyx | 9:d03b1af2b8d8 | 95 | //ser2usb.printf("%s\r\n", filename); |
zhangyx | 9:d03b1af2b8d8 | 96 | client.publish_value("file_list", filename); |
zhangyx | 9:d03b1af2b8d8 | 97 | |
zhangyx | 9:d03b1af2b8d8 | 98 | filenumber++; |
zhangyx | 9:d03b1af2b8d8 | 99 | sprintf(filename, ""); |
zhangyx | 9:d03b1af2b8d8 | 100 | wait(0.15); |
zhangyx | 9:d03b1af2b8d8 | 101 | } |
zhangyx | 9:d03b1af2b8d8 | 102 | client.publish_value("file_list", "_end"); |
zhangyx | 9:d03b1af2b8d8 | 103 | //er2usb.printf("all sent. \r\n"); |
zhangyx | 9:d03b1af2b8d8 | 104 | } |
zhangyx | 9:d03b1af2b8d8 | 105 | #endif // ENABLE_ESP8266 |
zhangyx | 9:d03b1af2b8d8 | 106 |