QAQ ==!
Dependencies: mbed QEI-1 nRF24L01P xiugai
useful_func.cpp
- Committer:
- AlexQian
- Date:
- 2019-12-14
- Revision:
- 15:934289377f7a
- Parent:
- 9:d03b1af2b8d8
File content as of revision 15:934289377f7a:
#include "useful_func.h" #include <stdio.h> #ifdef ENABLE_FILESYSTEM extern Serial ser2usb; void read_file_names(const char *dir, vector<string> & filenames) //Õâ¸öº¯ÊýºóÆÚ¿ÉÒÔÖØÔسɴøÒ»¸öÊäÈëvector<string>ÒýÓöÔÏóµÄ·½·¨ //ÕâÑùÕâ¸övector¿ÉÒÔ²»ÓÃÉùÃ÷³ÉÈ«¾Ö±äÁ¿ //already reload { //ser2usb.printf("-----Calling read_file_names-----\r\n"); filenames.clear(); //ser2usb.printf("reading files...\r\n"); DIR *dp;//Ò»¸öÎļþµØÖ·¶ÔÏóÖ¸Õë struct dirent *dirp; //ÏÂÃæÊÇdirentµÄ¶¨Òå //struct dirent //{ // long d_ino; // off_t d_off; // unsigned short d_reclen; // char d_name [NAME_MAX+1]; //} /**************************************************************** ÕâÀïµÄdirent.hÊÇlinuxϵij£ÓÃÍ·Îļþ ʹÓ÷½·¨²Î¿´ https://blog.csdn.net/dream_allday/article/details/75243818 *****************************************************************/ int i = 0; dp = opendir(dir); //read all directory and file names in current directory into filename vector while((dirp = readdir(dp)) != NULL) { if (strcmp("System Volume Information", dirp->d_name)) { filenames.push_back(string(dirp->d_name)); //push_backÊÇvector¶ÔÏóÖеÄÒ»¸ö·½·¨ //ÓÃÓÚ½«ÔªËØÌí¼Óµ½vector¶ÔÏóĩβ //ÕâÀïÊǽ«Ò»¸ödirentÀàÐ͵ĽṹÌå¶ÔÏóÖеÄd_name(ÎļþÃû)Ìí¼Óµ½filenamesµÄĩβ //r2usb.printf("%d - %s\r\n", i++, dirp->d_name); } } closedir(dp); //2usb.printf("file names read\r\n"); } #endif // ENABLE_FILESYSTEM #ifdef ENABLE_ESP8266 extern Serial ser2usb; void mqtt_client_init( Esp8266 & client, const char* device_name, const char* publish_topic[][2], const char* subscribe_topic[][2] ) //³õʼ»¯mqtt¿Í»§¶ËµÄº¯Êý //Ó¦ÊäÈ붩ÔÄÁбí { client.connect_mqtt_broker("192.168.12.1", device_name, publish_topic, subscribe_topic); //subscribe topic /* for (int i = 0; subscribe_topic[i][0] != NULL; i++) { ser2usb.printf("subscribe topic \"%s\"\r\n", subscribe_topic[i][0]); client.subscribe_control(subscribe_topic[i][0]); } */ } void send_file_names(Esp8266 & client, vector<string> & filenames, const char * publish_topic) { //ser2usb.printf("-----Calling send_file_names-----\r\n"); //er2usb.printf("filenames:\r\n"); char filename[128]; //std::stringstream ss; int filenumber = 0; client.publish_value(publish_topic, "_upload"); wait(0.15); for(vector<string>::iterator it = filenames.begin(); it < filenames.end(); it++) /****************************** ÕâÀïiteratorÊÇvectorÀàÖеĵü´úÆ÷¶ÔÏó Ñ»·Àï´ÓvectorµÄµÚÒ»¸öÔªËصØÖ·¿ªÊ¼ µü´úµ½×îºóÒ»¸ö µü´úÆ÷µÄÆäËûÓ÷¨²Î¿´ https://blog.csdn.net/yyangzhenjie/article/details/74518905 ******************************/ { //ser2usb.printf("---loop %d---\r\n", filenumber); // ss << filenumber << " - " << (*it) << "\r\n"; sprintf(filename, "%d - %s", filenumber, it->c_str()); //ser2usb.printf("%s\r\n", filename); client.publish_value("file_list", filename); filenumber++; sprintf(filename, ""); wait(0.15); } client.publish_value("file_list", "_end"); //er2usb.printf("all sent. \r\n"); } #endif // ENABLE_ESP8266