sample program for Wi-Fi TANK.
Dependencies: EthernetNetIf mbed HTTPServer
main.cpp
00001 #include "mbed.h" 00002 #include "EthernetNetIf.h" 00003 #include "HTTPServer.h" 00004 #include "RPCFunction.h" 00005 00006 DigitalOut led1(LED1); 00007 DigitalOut led2(LED2); 00008 DigitalOut led3(LED3); 00009 DigitalOut led4(LED4); 00010 00011 DigitalOut motor1(p21); 00012 DigitalOut motor2(p22); 00013 DigitalOut motor3(p23); 00014 DigitalOut motor4(p24); 00015 00016 #if 1 00017 /* 00018 * Use DHCP 00019 */ 00020 EthernetNetIf ethif; 00021 #else 00022 /* 00023 * Use "static IP address" (Parameters:IP, Subnet mask, Gateway, DNS) 00024 */ 00025 EthernetNetIf ethif(IpAddr(xxx,xxx,xxx,xxx), IpAddr(xxx,xxx,xxx,xxx), IpAddr(xxx,xxx,xxx,xxx), IpAddr(xxx,xxx,xxx,xxx)); 00026 #endif 00027 00028 HTTPServer server; 00029 LocalFileSystem local("local"); 00030 void MotorSig(char *input,char *output); 00031 RPCFunction rpcFunc(&MotorSig, "MotorSig"); 00032 00033 int main(void) { 00034 00035 Base::add_rpc_class<DigitalOut>(); 00036 00037 00038 if (ethif.setup()) { 00039 error("Ethernet setup failed."); 00040 return 1; 00041 } 00042 IpAddr ethIp=ethif.getIp(); 00043 00044 led1=1; 00045 wait(1); 00046 server.addHandler<SimpleHandler>("/hello"); 00047 server.addHandler<RPCHandler>("/rpc"); 00048 FSHandler::mount("/local", "/"); 00049 server.addHandler<FSHandler>("/"); 00050 server.bind(80); 00051 while (1) { 00052 Net::poll(); 00053 } 00054 return 0; 00055 } 00056 00057 00058 void MotorSig(char *input , char *output) 00059 { 00060 00061 //text--------------------------- 00062 int length = 0; 00063 char str[] = "abcd"; 00064 00065 //get input data length 00066 for (length = 0; input[length] != '\0'; length++); 00067 00068 //check data 00069 printf("length = %d : input = %s\n", length, input); 00070 00071 if (strcmp(input,str) == 0){ 00072 printf("input OK!\n"); 00073 } 00074 //------------------------------- 00075 00076 led1=!led1; 00077 if(*input == 'a'){ 00078 led2 =! led2; 00079 } 00080 if(*input == 'F'){ 00081 led3 =! led3; 00082 } 00083 00084 00085 switch(*input){ 00086 case 'F': 00087 motor1 = 0; 00088 motor2 = 1; 00089 motor3 = 1; 00090 motor4 = 0; 00091 00092 led1 = 0; 00093 led2 = 1; 00094 led3 = 1; 00095 led4 = 0; 00096 break; 00097 00098 case 'L': 00099 motor1 = 1; 00100 motor2 = 0; 00101 motor3 = 1; 00102 motor4 = 0; 00103 00104 led1 = 1; 00105 led2 = 0; 00106 led3 = 1; 00107 led4 = 0; 00108 break; 00109 00110 case 'R': 00111 motor1 = 0; 00112 motor2 = 1; 00113 motor3 = 0; 00114 motor4 = 1; 00115 00116 led1 = 0; 00117 led2 = 1; 00118 led3 = 0; 00119 led4 = 1; 00120 break; 00121 00122 case 'B': 00123 motor1 = 1; 00124 motor2 = 0; 00125 motor3 = 0; 00126 motor4 = 1; 00127 00128 led1 = 1; 00129 led2 = 0; 00130 led3 = 0; 00131 led4 = 1; 00132 break; 00133 00134 case 'S': 00135 motor1 = 0; 00136 motor2 = 0; 00137 motor3 = 0; 00138 motor4 = 0; 00139 00140 led1 = 0; 00141 led2 = 0; 00142 led3 = 0; 00143 led4 = 0; 00144 break; 00145 00146 00147 } 00148 } 00149
Generated on Sat Jul 30 2022 18:22:17 by 1.7.2