2019-06-05

Dependencies:   DataStorage NetworkManager IR_Manager WheelManager RestAPI_Manager

Committer:
asaewing
Date:
Wed Jun 05 07:57:11 2019 +0000
Revision:
5:aaab7ef5dccf
Parent:
1:dc6fd86fb7f9
1.0

Who changed what in which revision?

UserRevisionLine numberNew contents of line
asaewing 1:dc6fd86fb7f9 1 #if !FEATURE_LWIP
asaewing 1:dc6fd86fb7f9 2 #error [NOT_SUPPORTED] LWIP not supported for this target
asaewing 1:dc6fd86fb7f9 3 #endif
asaewing 1:dc6fd86fb7f9 4
asaewing 1:dc6fd86fb7f9 5 #include "module_for_all.h"
asaewing 1:dc6fd86fb7f9 6
asaewing 1:dc6fd86fb7f9 7 #define PORT 8080
asaewing 1:dc6fd86fb7f9 8
asaewing 1:dc6fd86fb7f9 9 #define IP1 "192.168.20.101"
asaewing 1:dc6fd86fb7f9 10 #define IP2 "192.168.20.102"
asaewing 1:dc6fd86fb7f9 11 #define IP3 "192.168.20.103"
asaewing 1:dc6fd86fb7f9 12 #define IP4 "192.168.20.104"
asaewing 1:dc6fd86fb7f9 13 #define GATEWAY "192.168.20.1"
asaewing 1:dc6fd86fb7f9 14 #define MASK "255.255.255.0"
asaewing 1:dc6fd86fb7f9 15
asaewing 1:dc6fd86fb7f9 16 const char* ip = 0;
asaewing 1:dc6fd86fb7f9 17 const char* mac = 0;
asaewing 1:dc6fd86fb7f9 18 Thread threadMain00;
asaewing 1:dc6fd86fb7f9 19 DataStorage ds_manager("");
asaewing 1:dc6fd86fb7f9 20
asaewing 1:dc6fd86fb7f9 21 //DigitalIn IP_Select2(PG_2);
asaewing 1:dc6fd86fb7f9 22
asaewing 1:dc6fd86fb7f9 23 //DigitalIn Test_Mode(PC_14);
asaewing 1:dc6fd86fb7f9 24
asaewing 1:dc6fd86fb7f9 25 NetworkManager net_manager(IP1, GATEWAY, MASK, PORT);
asaewing 1:dc6fd86fb7f9 26 RestAPI_Manager restAPI_manager(&ds_manager, &threadMain00, IP1, "1");
asaewing 1:dc6fd86fb7f9 27
asaewing 1:dc6fd86fb7f9 28 //NetworkManager net_manager();
asaewing 1:dc6fd86fb7f9 29 //RestAPI_Manager restAPI_manager();
asaewing 1:dc6fd86fb7f9 30
asaewing 1:dc6fd86fb7f9 31 bool EventLoop() {
asaewing 1:dc6fd86fb7f9 32 while (true) {
asaewing 1:dc6fd86fb7f9 33 printf("$$ EventLoop New\r\n");
asaewing 1:dc6fd86fb7f9 34
asaewing 1:dc6fd86fb7f9 35 Thread threadMain01;
asaewing 1:dc6fd86fb7f9 36 restAPI_manager.changeThread(&threadMain01);
asaewing 1:dc6fd86fb7f9 37
asaewing 1:dc6fd86fb7f9 38 printf("$$ EventLoop Change Thread\r\n");
asaewing 1:dc6fd86fb7f9 39
asaewing 1:dc6fd86fb7f9 40 LED_NetWait();
asaewing 1:dc6fd86fb7f9 41
asaewing 1:dc6fd86fb7f9 42 printf("$$ EventLoop Waiting\r\n");
asaewing 1:dc6fd86fb7f9 43
asaewing 1:dc6fd86fb7f9 44 net_manager.AcceptEvent();
asaewing 1:dc6fd86fb7f9 45 //printf("$$ EventLoop run Response\r\n");
asaewing 1:dc6fd86fb7f9 46 LED_NetProcess();
asaewing 1:dc6fd86fb7f9 47
asaewing 1:dc6fd86fb7f9 48 std::string http_method = net_manager.getHttpMethod();
asaewing 1:dc6fd86fb7f9 49 std::string api_command = net_manager.getApiCommand();
asaewing 1:dc6fd86fb7f9 50
asaewing 1:dc6fd86fb7f9 51 std::string response = restAPI_manager.runCommand(http_method, api_command);
asaewing 1:dc6fd86fb7f9 52
asaewing 1:dc6fd86fb7f9 53 net_manager.SendResponseEvent(response);
asaewing 1:dc6fd86fb7f9 54 printf("$$ EventLoop Finish\r\n");
asaewing 1:dc6fd86fb7f9 55 }
asaewing 1:dc6fd86fb7f9 56
asaewing 1:dc6fd86fb7f9 57 //printf("$$ EventLoop ALL Finish\r\n");
asaewing 1:dc6fd86fb7f9 58 return false;
asaewing 1:dc6fd86fb7f9 59 }
asaewing 1:dc6fd86fb7f9 60
asaewing 1:dc6fd86fb7f9 61 /* Main function */
asaewing 1:dc6fd86fb7f9 62 int main(){
asaewing 1:dc6fd86fb7f9 63
asaewing 1:dc6fd86fb7f9 64 DigitalIn IP_Select1(PD_7);
asaewing 1:dc6fd86fb7f9 65 DigitalIn IP_Select2(PD_6);
asaewing 1:dc6fd86fb7f9 66
asaewing 1:dc6fd86fb7f9 67 //DigitalIn IP_Select21(PC_15);
asaewing 1:dc6fd86fb7f9 68 //DigitalIn IP_Select22(PH_1);
asaewing 1:dc6fd86fb7f9 69
asaewing 1:dc6fd86fb7f9 70 printf("mbed Power Start\r\n");
asaewing 1:dc6fd86fb7f9 71 LED_PowerStart();
asaewing 1:dc6fd86fb7f9 72
asaewing 1:dc6fd86fb7f9 73 /*if (IP_Select2.read() == 1){
asaewing 1:dc6fd86fb7f9 74 net_manager.SetConfig(IP2, GATEWAY, MASK, PORT);
asaewing 1:dc6fd86fb7f9 75 restAPI_manager.SetConfig(IP2, "2");
asaewing 1:dc6fd86fb7f9 76 printf("mbed 02 Start\r\n");
asaewing 1:dc6fd86fb7f9 77
asaewing 1:dc6fd86fb7f9 78 } else {
asaewing 1:dc6fd86fb7f9 79 net_manager.SetConfig(IP1, GATEWAY, MASK, PORT);
asaewing 1:dc6fd86fb7f9 80 restAPI_manager.SetConfig(IP1, "1");
asaewing 1:dc6fd86fb7f9 81 printf("mbed 01 Start\r\n");
asaewing 1:dc6fd86fb7f9 82 }*/
asaewing 1:dc6fd86fb7f9 83
asaewing 1:dc6fd86fb7f9 84 int ipSelect = 1;
asaewing 1:dc6fd86fb7f9 85
asaewing 1:dc6fd86fb7f9 86 if (IP_Select1.read() == 1){
asaewing 1:dc6fd86fb7f9 87 ipSelect += 1;
asaewing 1:dc6fd86fb7f9 88 }
asaewing 1:dc6fd86fb7f9 89
asaewing 1:dc6fd86fb7f9 90 if (IP_Select2.read() == 1){
asaewing 1:dc6fd86fb7f9 91 ipSelect += 2;
asaewing 1:dc6fd86fb7f9 92 }
asaewing 1:dc6fd86fb7f9 93
asaewing 1:dc6fd86fb7f9 94 char* tmp_IP = 0;
asaewing 1:dc6fd86fb7f9 95
asaewing 1:dc6fd86fb7f9 96 switch(ipSelect) {
asaewing 1:dc6fd86fb7f9 97 case 1:
asaewing 1:dc6fd86fb7f9 98 tmp_IP = IP1;
asaewing 1:dc6fd86fb7f9 99 break;
asaewing 1:dc6fd86fb7f9 100 case 2:
asaewing 1:dc6fd86fb7f9 101 tmp_IP = IP2;
asaewing 1:dc6fd86fb7f9 102 break;
asaewing 1:dc6fd86fb7f9 103 case 3:
asaewing 1:dc6fd86fb7f9 104 tmp_IP = IP3;
asaewing 1:dc6fd86fb7f9 105 break;
asaewing 1:dc6fd86fb7f9 106 case 4:
asaewing 1:dc6fd86fb7f9 107 tmp_IP = IP4;
asaewing 1:dc6fd86fb7f9 108 break;
asaewing 1:dc6fd86fb7f9 109 }
asaewing 1:dc6fd86fb7f9 110
asaewing 1:dc6fd86fb7f9 111 std::string tmp_IP_s = intToString(ipSelect);
asaewing 1:dc6fd86fb7f9 112
asaewing 1:dc6fd86fb7f9 113
asaewing 1:dc6fd86fb7f9 114 net_manager.SetConfig(tmp_IP, GATEWAY, MASK, PORT);
asaewing 1:dc6fd86fb7f9 115 restAPI_manager.SetConfig(tmp_IP, tmp_IP_s);
asaewing 1:dc6fd86fb7f9 116
asaewing 1:dc6fd86fb7f9 117 printf("mbed %d Start\r\n", ipSelect);
asaewing 1:dc6fd86fb7f9 118
asaewing 1:dc6fd86fb7f9 119 wait(1);
asaewing 1:dc6fd86fb7f9 120
asaewing 1:dc6fd86fb7f9 121 /*int kk = 0;
asaewing 1:dc6fd86fb7f9 122 while(1){
asaewing 1:dc6fd86fb7f9 123 if (!net_manager.ServerInit()){
asaewing 1:dc6fd86fb7f9 124 break;
asaewing 1:dc6fd86fb7f9 125 }
asaewing 1:dc6fd86fb7f9 126 wait(4);
asaewing 1:dc6fd86fb7f9 127 kk++;
asaewing 1:dc6fd86fb7f9 128 printf("## again %d n\r\n", kk);
asaewing 1:dc6fd86fb7f9 129 }*/
asaewing 1:dc6fd86fb7f9 130
asaewing 1:dc6fd86fb7f9 131 net_manager.ServerInit();
asaewing 1:dc6fd86fb7f9 132 printf("ServerInit\r\n");
asaewing 1:dc6fd86fb7f9 133
asaewing 1:dc6fd86fb7f9 134 if (net_manager.OpenServer()) return 0;
asaewing 1:dc6fd86fb7f9 135 printf("OpenServer\r\n");
asaewing 1:dc6fd86fb7f9 136
asaewing 1:dc6fd86fb7f9 137 if (net_manager.BindPort()) return 0;
asaewing 1:dc6fd86fb7f9 138 printf("BindPort\r\n");
asaewing 1:dc6fd86fb7f9 139
asaewing 1:dc6fd86fb7f9 140 if (net_manager.ListenConnections()) return 0;
asaewing 1:dc6fd86fb7f9 141 printf("ListenConnections\r\n");
asaewing 1:dc6fd86fb7f9 142
asaewing 1:dc6fd86fb7f9 143 if (EventLoop()) {
asaewing 1:dc6fd86fb7f9 144 return 0;
asaewing 1:dc6fd86fb7f9 145 }
asaewing 1:dc6fd86fb7f9 146 }