Marcelo Rebonatto / Mbed 2 deprecated PM_COPIA

Dependencies:   EthernetInterface mbed-rtos mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers telnet_setparam.cpp Source File

telnet_setparam.cpp

00001 #include "TelnetServer.h"
00002 
00003 #include "Settings.h"
00004 
00005 char *wrong_args_msg_set = "Wrong number of arguments.\r\n\r\nUsage: setparam <parameter name> <parameter value>\r\n";
00006 char *param_not_found_msg_set = "Parameter not found.\r\n\r\n";
00007 char *bad_argument_set = "The parameter supplied does not have a valid format.\r\n\r\n";
00008 
00009 int TelnetServer::SetParamCommand(TCPSocketConnection *conn,char** argv,int argc)
00010 {
00011 
00012     if(argc != 3)
00013     {
00014         conn->send(wrong_args_msg_set,strlen(wrong_args_msg_set));
00015         return 0;
00016     }
00017 
00018 
00019     if(!strcmp(argv[1],"ipserver"))
00020     {
00021         ip_addr_t addr;
00022         if(ipaddr_aton(argv[2],&addr) != ERR_OK)
00023         {
00024             conn->send(bad_argument_set,strlen(bad_argument_set));
00025         }
00026         else
00027         {
00028             Settings::set_IpAddress(argv[2]);
00029             Settings::WriteFile();
00030         }
00031         return 0;
00032     }
00033 
00034     if(!strcmp(argv[1],"module"))
00035     {
00036         Settings::set_ModuleNumber(atoi(argv[2]));
00037         Settings::WriteFile();
00038         return 0;
00039     }
00040 
00041     int i;
00042     for(i=0;i<3;i++)
00043     {
00044         char b[12];
00045         sprintf(b,"outlet%d",i);
00046         if(!strcmp(argv[1],b))
00047         {
00048             Settings::set_Outlet(i,atoi(argv[2]));
00049             Settings::WriteFile();
00050             return 0;
00051         }
00052     }
00053     for(i=0;i<6;i++)
00054     {
00055         char b[12];
00056         sprintf(b,"gain%d",i);
00057         if(!strcmp(argv[1],b))
00058         {
00059             Settings::set_Gain(i,atof(argv[2]));
00060             Settings::WriteFile();
00061             return 0;
00062         }
00063 
00064         sprintf(b,"offset%d",i);
00065         if(!strcmp(argv[1],b))
00066         {
00067             Settings::set_Offset(i,atoi(argv[2]));
00068             Settings::WriteFile();
00069             return 0;
00070         }
00071 
00072         sprintf(b,"limit%d",i);
00073         if(!strcmp(argv[1],b))
00074         {
00075             Settings::set_Limit(i,atof(argv[2]));
00076             Settings::WriteFile();
00077             return 0;
00078         }
00079 
00080         sprintf(b,"outlet_number%d",i);
00081         if(!strcmp(argv[1],b))
00082         {
00083             Settings::set_OutletNumber(i,atoi(argv[2]));
00084             Settings::WriteFile();
00085             return 0;
00086         }
00087 
00088         sprintf(b,"purpose%d",i);
00089         if(!strcmp(argv[1],b))
00090         {
00091             Settings::set_Purpose(i,argv[2][0]);
00092             Settings::WriteFile();
00093             return 0;
00094         }
00095     }
00096 
00097     conn->send(param_not_found_msg_set,strlen(param_not_found_msg_set));
00098     return 0;
00099 
00100 }