| | |
| | | *.tar |
| | | *.tar.gz |
| | | .vscode/ |
| | | build/ |
| | |
| | | ## éè¡ç®æ³è°ç¨è¯´æ |
| | | |
| | | |
| | | ### 1. 代ç è°ç¨ |
| | | ``` |
| | | /** |
| | | * 第ä¸ä¸ªåæ°@points ç»æè§æµåºåçå½¼æ¤ç¸é»çç¹ |
| | | * 第äºä¸ªåæ°@_keepTime ä¿ææ¶é´ |
| | | * 第ä¸ä¸ªåæ°@_direction æ£ç¡®è¡è¿çæ¹åæ¹å |
| | | */ |
| | | IndirectAlg indirectAlg((std::initializer_list<Point>){{0.0, 0.0}, {1000.0, 0.0}, {1000.0, 1000.0}, {0.0, 1000.0} }, 5, {1, 1}); |
| | | |
| | | //å ä¸ºæ°æ®æ¶æµæ°æ®ï¼ä¸é¢çè°ç¨åºè¯¥æ¶å¨ä¸ä¸ªå¾ªç¯éé¢ï¼å¤çå®ä¸æ¡æ¥çå¤çä¸ä¸æ¡ |
| | | //æå»ºä¼ å
¥çæ°æ® |
| | | Record record; |
| | | record.id = 1; //ç®æ ID |
| | | record.timestamp = time(0); //æ¶é´æ³ |
| | | record.coordinate = {2.0, 3.0}; // åæ |
| | | //夿æ¯å¦éè¡ |
| | | indirectAlg.isRetrograde(record) |
| | | |
| | | ``` |
| | | |
| | | ### 2 æµè¯ç¨ä¾ |
| | | test_right_walk2.c |
| | | |
| | | ```test_right_walk2.c |
| | | #include <usg_common.h> /* cos */ |
| | | #include <graph.h> |
| | | #include <IndirectAlg.h> |
| | | using namespace std; |
| | | |
| | | int test2() { |
| | | // IndirectAlg indirectAlg({ {{0.0, 0.0}, {1000.0, 0.0}}, {{1000.0, 0.0}, {1000.0, 1000.0}}, {{1000.0, 1000.0}, {0.0, 1000.0}}, {{0.0, 1000.0}, {0.0, 0.0}} }, 5, {1, 1}); |
| | | /** |
| | | * 第ä¸ä¸ªåæ°@points ç»æè§æµåºåçå½¼æ¤ç¸é»çç¹ |
| | | * 第äºä¸ªåæ°@_keepTime ä¿ææ¶é´ |
| | | * 第ä¸ä¸ªåæ°@_direction æ£ç¡®è¡è¿çæ¹åæ¹å |
| | | */ |
| | | IndirectAlg indirectAlg((std::initializer_list<Point>){{0.0, 0.0}, {1000.0, 0.0}, {1000.0, 1000.0}, {0.0, 1000.0} }, 5, {1, 1}); |
| | | |
| | | int i = 0; |
| | | // time_t start_time; |
| | | srand((unsigned) time(0)); |
| | | |
| | | double rx, ry; |
| | | bool isRetrograde; |
| | | //èµ·ç¹ |
| | | Point start = {0, 0}; |
| | | //ä¼ å
¥çæµæ°æ®è®°å½ä¿¡æ¯Record |
| | | Record record; |
| | | record.id = 1; //ç®æ ID |
| | | record.timestamp = time(0); //æ¶é´æ³ |
| | | record.coordinate = start; // åæ |
| | | // time(&start_time); |
| | | //夿æ¯å¦éè¡ |
| | | while(!(isRetrograde = indirectAlg.isRetrograde(record)) ) { |
| | | rx = ((double)(rand()%10))/100000; |
| | | ry = ((double)(rand()%10))/100000; |
| | | |
| | | //std::cout << timestamp << ":" << << "isRetrograde" << isRetrograde; |
| | | // err_msg(0, "%ld : {%f, %f} %d\n", record.timestamp, record.coordinate.x, record.coordinate.y, isRetrograde); |
| | | record.timestamp = time(0); |
| | | |
| | | //if (difftime(time(0), start_time) > 1) |
| | | if (i > 10) |
| | | { |
| | | record.coordinate = {record.coordinate.x - rx , record.coordinate.y - ry}; |
| | | } else { |
| | | record.coordinate = {record.coordinate.x + rx , record.coordinate.y + ry}; |
| | | } |
| | | |
| | | if (i > 100) |
| | | break; |
| | | |
| | | sleep(1); |
| | | i++; |
| | | } |
| | | printf("return %ld : {%f, %f} %d\n", record.timestamp, record.coordinate.x, record.coordinate.y, isRetrograde); |
| | | return 0; |
| | | } |
| | | |
| | | |
| | | int main() { |
| | | test2(); |
| | | |
| | | } |
| | | ``` |
| | | |
| | | ### 3 ç¼è¯ |
| | | |
| | | å®è£
好soå
åï¼ç¨å¦ä¸çæ¹å¼ç¼è¯ï¼algæ¯éè¡ç®æ³å
ï¼usgcommonæ¯ç®æ³ç¨ççå
Œ
±å
ï¼pthreadæ¯ç³»ç»ç线ç¨å
|
| | | ``` |
| | | g++ -std=c++11 test_right_walk2.c -o test_right_walk2 -lalg -lusgcommon -lpthread |
| | | ``` |
| | | |
| | |
| | | request.channel, |
| | | mktime(&start), |
| | | i); |
| | | // printf("%s\n", destfile); |
| | | |
| | | if(downloadByTime_wrapper(userid, request.channel, &start, &end, destfile) != -1) { |
| | | if(files != NULL) { |
| | | files->push_back(destfile); |
| | |
| | | } |
| | | |
| | | |
| | | Json::Value response; |
| | | Json::Value payload; |
| | | response["code"] = rv; |
| | | response["msg"] = rmsg; |
| | | // Json::Value response; |
| | | // Json::Value payload; |
| | | // response["code"] = rv; |
| | | // response["msg"] = rmsg; |
| | | |
| | | // Json::Value filelist; |
| | | // for(std::string f : files) { |
| | | // filelist.append(f); |
| | | // } |
| | | // payload["filelist"] = filelist; |
| | | // response["payload"] = payload; |
| | | |
| | | Json::Value request; |
| | | request["method"] = "downloadByTimeCallBack"; |
| | | Json::Value arguments; |
| | | Json::Value filelist; |
| | | for(std::string f : files) { |
| | | filelist.append(f); |
| | | } |
| | | payload["filelist"] = filelist; |
| | | response["payload"] = payload; |
| | | std::string str = response.toStyledString(); |
| | | arguments["fileList"] = filelist; |
| | | arguments["loginUUID"] = drequest.loginUUID; |
| | | |
| | | request["arguments"] = arguments; |
| | | std::string str = request.toStyledString(); |
| | | |
| | | std::cout << "download finished, call back" << std::endl; |
| | | std::cout << str << std::endl; |
| | |
| | | |
| | | |
| | | int handleDownloadByTimeAsync(nng_socket sock, Json::Value request) { |
| | | std::cout << "accepted handleDownloadByTime request" << std::endl; |
| | | std::cout << "received downloadByTime request" << std::endl; |
| | | int rv; |
| | | char rmsg[MAXLINE]; |
| | | strcpy(rmsg, "received"); |
| | | strcpy(rmsg, "received downloadByTime request"); |
| | | // char *buf; |
| | | |
| | | Json::Value arguments = request["arguments"]; |
File was renamed from message_define.md |
| | |
| | | ``` |
| | | { |
| | | code: 0, // 0表示æåï¼å
¶ä»å¼ä»£è¡¨ç¸åºçé误ç |
| | | msg: "success", //æåæå
¶ä»éè¯¯ä¿¡æ¯ |
| | | payload: { |
| | | loginUUID: "11111" |
| | | } |
| | |
| | | |
| | | |
| | | ## 2ãä¸è½½ |
| | | |
| | | 请æ±ä½ |
| | | ``` |
| | | { |
| | |
| | | |
| | | } |
| | | ``` |
| | | ä¸è½½éç¨å¼æ¥çæ¹å¼ãè§é¢æå¡æ¶å°è¯·æ±åç«å³è¿åä¸ä¸ªååºè¡¨ç¤ºæ¶å°äºè¯·æ±ï¼ä½å¹¶ä¸è¡¨ç¤ºä¸è½½å®æã |
| | | ååºä½ |
| | | |
| | | ``` |
| | | { |
| | | code: 0, // 0表示æåï¼å
¶ä»å¼ä»£è¡¨ç¸åºçé误ç |
| | | payload: { |
| | | msg: "success", //æåæå
¶ä»éè¯¯ä¿¡æ¯ |
| | | payload: { |
| | | } |
| | | |
| | | } |
| | | ``` |
| | | |
| | | è§é¢æå¡å®æä¸è½½ååè°å¯¹æ¹çæå¡ï¼åè¯å¯¹æ¹ä¸è½½å®æï¼å¹¶æä¸è½½å®æçæä»¶å表åéç»å¯¹æ¹ã è¿æ¶è§é¢æå¡æ¯ä½ä¸ºè¯·æ±æ¹ã |
| | | |
| | | 请æ±ä½ |
| | | ``` |
| | | { |
| | | method: "downloadByTimeCallBack", |
| | | arguments: { |
| | | //宿ä¸è½½çæä»¶çå表 |
| | | filelist: [ |
| | | fileList: [ |
| | | "/Downloads/1.mp3", |
| | | "/Downloads/2.mp3", |
| | | "/Downloads/3.mp3" |
| | | ] |
| | | } |
| | | |
| | | } |
| | | |
| | | ``` |
| | | |
| | | ## 3. ç»åº |
| | | 请æ±ä½ |
| | | ``` |
| | | { |
| | | method: "logout", |
| | | arguments: { |
| | | loginUUID: "1" |
| | | } |
| | | |
| | | |
| | | } |
| | | ``` |
| | | 对æ¹è¦è¿åä¸ä¸ªååºï¼è¡¨ç¤ºæ¥åå°äºã |
| | | ååºä½ |
| | | |
| | | ``` |
| | | { |
| | | code: 0 // 0表示æåï¼å
¶ä»å¼ä»£è¡¨ç¸åºçé误ç |
| | | code: 0, // 0表示æåï¼å
¶ä»å¼ä»£è¡¨ç¸åºçé误ç |
| | | msg: "success", //æåæå
¶ä»éè¯¯ä¿¡æ¯ |
| | | payload: { |
| | | |
| | | } |
| | | |
| | | } |
| | | |
| | | |
| | | ``` |
| | | |
| | | ## 4. è·åèµ·å§ééå· |
| | | ## 3. è·å设å¤ä¿¡æ¯ |
| | | 请æ±ä½ |
| | | ``` |
| | | { |
| | | method: "getStartChannel", |
| | | method: "getDeviceInfo", |
| | | arguments: { |
| | | loginUUID: "1" |
| | | } |
| | |
| | | ``` |
| | | { |
| | | code: 0, // 0表示æåï¼å
¶ä»å¼ä»£è¡¨ç¸åºçé误ç |
| | | msg: "success", //æåæå
¶ä»éè¯¯ä¿¡æ¯ |
| | | payload: { |
| | | startChanel: 1 |
| | | deviceInfo: { |
| | | startChannel: 1, //èµ·å§ééå· |
| | | maxChannels: 64 //æå¤§ééæ° |
| | | } |
| | | } |
| | | |
| | | } |
| | | ``` |
| | | |
| | | ## 5. è·åæå¤§ééå· |
| | | 请æ±ä½ |
| | | ``` |
| | | { |
| | | method: "getMaxChannels", |
| | | arguments: { |
| | | loginUUID: "1" |
| | | } |
| | | } |
| | | |
| | | ``` |
| | | |
| | | ååºä½ |
| | | |
| | | ``` |
| | | { |
| | | code: 0, // 0表示æåï¼å
¶ä»å¼ä»£è¡¨ç¸åºçé误ç |
| | | payload: { |
| | | maxChanel: 64 |
| | | } |
| | | |
| | | } |
| | | ``` |