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 .

Dependencies:   mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers myrpc.cpp Source File

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