serveur WEB sur carte SD pour TestBed , lit des tensions les met dans un fichier htm et l\'envoie . on peut agir sur les ES .
myrpc.cpp
00001 // myrpc.cpp 00002 #include "myrpc.h" 00003 #ifdef MBED_RPC 00004 #include "rpc.h" 00005 #endif 00006 00007 #include "SNTPClient.h" 00008 00009 extern int gDebug; 00010 00011 namespace mbed { 00012 myrpc::myrpc(PinName pin, const char *name) : Base(name), _pin(pin) {} 00013 00014 void myrpc::debug(int val) 00015 { // 00016 gDebug=val; 00017 printf("Debug is %s\r\n", gDebug ? "ON" : "OFF"); 00018 } 00019 00020 void myrpc::blink(int n) 00021 {// ... led/blink,1 n fois 00022 for (int i=0; i<n; i++) { 00023 _pin = 1; //_pin ? 00024 wait(0.2); 00025 _pin = 0; 00026 wait(0.2); 00027 } 00028 } 00029 00030 char *myrpc::echo(const char * in) { 00031 printf("DEBUG myrpc::echo() IN=%s\r\n",in); 00032 sprintf(_buffer, "%s", in); 00033 return _buffer; 00034 } 00035 00036 void myrpc::settime(const char *t) { 00037 time_t seconds = time(NULL); 00038 if (seconds == (unsigned)-1 || seconds == 0) { 00039 seconds = 1256729737; // Set RTC time to Wed, 28 Oct 2009 11:35:37 00040 } 00041 // set_time(seconds); 00042 SNTPSetTime(seconds); 00043 strftime(_buffer, sizeof(_buffer), "%A %m/%d/%Y %H:%M:%S", localtime(&seconds)); 00044 printf("settime(%s) seconds=%d datetime=%s\r\n", t, seconds, _buffer); 00045 } 00046 char *myrpc::gettime(const char *fmt="%A %m/%d/%Y %H:%M:%S") { 00047 // time_t seconds = time(NULL); 00048 time_t seconds = SNTPTime(); 00049 //printf("Time as seconds since January 1, 1970 = %d\r\n", seconds); 00050 //printf("Time as a basic string = %s\r\n", ctime(&seconds)); 00051 if (!fmt || !fmt[0]) 00052 fmt = "%A %m/%d/%Y %H:%M:%S"; 00053 strftime(_buffer, sizeof(_buffer), fmt, localtime(&seconds)); 00054 return _buffer; 00055 } 00056 00057 #ifdef MBED_RPC 00058 const rpc_method *myrpc::get_rpc_methods() { 00059 static const rpc_method rpc_methods[] = { 00060 { "debug", rpc_method_caller<myrpc, int, &myrpc::debug> }, 00061 { "blink", rpc_method_caller<myrpc, int, &myrpc::blink> }, 00062 { "echo", rpc_method_caller<char *, myrpc, const char *, &myrpc::echo> }, 00063 { "settime", rpc_method_caller<myrpc, const char *, &myrpc::settime> }, 00064 { "gettime", rpc_method_caller<char *, myrpc, const char *, &myrpc::gettime> }, 00065 RPC_METHOD_SUPER(Base) 00066 }; 00067 return rpc_methods; 00068 } 00069 rpc_class *myrpc::get_rpc_class() { 00070 static const rpc_function funcs[] = { 00071 "new", rpc_function_caller<const char*, PinName, const char*, &Base::construct<myrpc,PinName,const char*> >, 00072 RPC_METHOD_END 00073 }; 00074 static rpc_class c = { "myrpc", funcs, NULL }; 00075 return &c; 00076 } 00077 #endif 00078 00079 } // namespace mbed
Generated on Tue Jul 12 2022 16:36:45 by
1.7.2