/*! * \brief Set the sensor config. * * \param ppcStringReply Input/Output. The response string. NEVER NULL AS INPUT. * \param ac Input. Number of args * \param av Input. pointer to args * * \return the status of the command execution. */ eExecStatus e_joystick_set_config( signed portCHAR **ppcStringReply, int ac, signed portCHAR *av[] ) { // set the field value if (config_file_set_value(SENSOR_JS_CONFIG_FILE, ac, av) != 0) { *ppcStringReply = (signed portCHAR *)SHELL_ERRMSG_CONFIGERROR; // return error return( SHELL_EXECSTATUS_KO ); } // alarm=on if (!strcmp((char *)av[1] , "on")) { bAlarm = pdTRUE; *ppcStringReply = (signed portCHAR *)SENSOR_MSG_ALARM_ON; return( SHELL_EXECSTATUS_OK_NO_FREE ); } // alarm=off else if (!strcmp( (char *)av[1], "off")) { bAlarm = pdFALSE; *ppcStringReply = (signed portCHAR *)SENSOR_MSG_ALARM_OFF; return( SHELL_EXECSTATUS_OK_NO_FREE ); } // error else { *ppcStringReply = (signed portCHAR *)SHELL_ERRMSG_CONFIGERROR; return( SHELL_EXECSTATUS_KO ); } }
/*! \brief set push button config command: set the config fields value of a sensor. * * \param bAlarm Input. The flag to set or clear. * \param filename Input. The configuration filename to update. * \param ppcStringReply Input/Output. The response string. * \param ac Input. The argument counter. For this command, should be 2. * \param av Input. The argument vector. * * \return the status of the command execution. */ static eExecStatus prv_e_pushb_set_config(bool * bAlarm, portCHAR * filename, signed portCHAR **ppcStringReply, int ac, signed portCHAR *av[] ) { if (config_file_set_value(filename, ac, av) != 0) { *ppcStringReply = (signed portCHAR *)SHELL_ERRMSG_CONFIGERROR; // return error return( SHELL_EXECSTATUS_KO ); } if (!strcmp((char *)av[1] , "on")) { *bAlarm = pdTRUE; *ppcStringReply = (signed portCHAR *)SENSOR_MSG_ALARM_ON; return( SHELL_EXECSTATUS_OK_NO_FREE ); } else if (!strcmp( (char *)av[1], "off")) { *bAlarm = pdFALSE; *ppcStringReply = (signed portCHAR *)SENSOR_MSG_ALARM_OFF; return( SHELL_EXECSTATUS_OK_NO_FREE ); } else { *ppcStringReply = (signed portCHAR *)SHELL_ERRMSG_CONFIGERROR; return( SHELL_EXECSTATUS_KO ); } }
/*! \brief The set smtp client config command: set the SMTP variables. * \verbatim * Takes 4 parameters : * port=ppppp * server=smtp.domain.com * [email protected] * [email protected] * \endverbatim * * \note This function must be of the type eExecStatus defined by the shell module. * * \param xModId Input. The module that is calling this function. * \param FsNavId Ignored. * \param ac Input. The argument counter. For this command, should be 1. * \param av Input. The argument vector. * \param ppcStringReply Input/Output. The response string. * If Input is NULL, no response string will be output. * Else a malloc for the response string is performed here; * the caller must free this string. * * \return the status of the command execution. */ eExecStatus e_smtpclient_cmd_set_config( eModId xModId, signed short FsNavId, int ac, signed portCHAR *av[], signed portCHAR **ppcStringReply ) { #if (SMTP_USED == 1) if (config_file_set_value(SMTP_CONFIG_FILE, ac, av) != 0) { *ppcStringReply = (signed portCHAR *)SHELL_ERRMSG_CONFIGERROR; // return error return( SHELL_EXECSTATUS_KO ); } if (!strcmp((char *)av[0] , "port")) { uiSMTPPort = atoi((char *)av[1]); *ppcStringReply = (signed portCHAR *)SHELL_MSG_CONFIG_SET; return( SHELL_EXECSTATUS_OK_NO_FREE ); } else if (!strcmp((char *)av[0] , "mailto")) { cMailTo[0]='\0'; strncat(cMailTo, (char *)av[1], Min(sizeof(cMailTo),strlen((char *)av[1]))); *ppcStringReply = (signed portCHAR *)SHELL_MSG_CONFIG_SET; return( SHELL_EXECSTATUS_OK_NO_FREE ); } else if (!strcmp((char *)av[0] , "mailfrom")) { cMailFrom[0]='\0'; strncat(cMailFrom, (char *)av[1], Min(sizeof(cMailFrom),strlen((char *)av[1]))); *ppcStringReply = (signed portCHAR *)SHELL_MSG_CONFIG_SET; return( SHELL_EXECSTATUS_OK_NO_FREE ); } else if (!strcmp((char *)av[0] , "server")) { cServerName[0]='\0'; strncat(cServerName, (char *)av[1], Min(sizeof(cServerName),strlen((char *)av[1]))); *ppcStringReply = (signed portCHAR *)SHELL_MSG_CONFIG_SET; return( SHELL_EXECSTATUS_OK_NO_FREE ); } else { *ppcStringReply = (signed portCHAR *)SHELL_ERRMSG_CONFIGERROR; return( SHELL_EXECSTATUS_KO ); } #else *ppcStringReply = (signed portCHAR *)SMTP_ERRMSG_CONFIGURESMTP; return( SHELL_EXECSTATUS_KO ); #endif }
/*! \brief The set webserver config command: set the http port. * Takes one parameter : port=ppppp * * \note This function must be of the type pfShellCmd defined by the shell module. * * \param xModId Input. The module that is calling this function. * \param FsNavId Ignored. * \param ac Input. The argument counter. For this command, should be 1. * \param av Input. The argument vector. * \param ppcStringReply Input/Output. The response string. * If Input is NULL, no response string will be output. * Else a malloc for the response string is performed here; * the caller must free this string. * * \return the status of the command execution. */ eExecStatus e_webserver_cmd_set_config( eModId xModId, signed short FsNavId, int ac, signed portCHAR *av[], signed portCHAR **ppcStringReply ) { if (config_file_set_value(HTTP_CONFIG_FILE, ac, av) != 0) { if(ppcStringReply != NULL) { *ppcStringReply = (signed portCHAR *)SHELL_ERRMSG_CONFIGERROR; } return( SHELL_EXECSTATUS_KO ); } if(ppcStringReply != NULL) { /* allocate a buffer for answer */ *ppcStringReply = (signed portCHAR *)pvPortMalloc( strlen( SHELL_MSG_REBOOT ) +1 ); // Alloc if( NULL != *ppcStringReply ) { strcpy( (char *)*ppcStringReply, SHELL_MSG_REBOOT ); } } return( SHELL_EXECSTATUS_OK ); }
/*! * \brief Set the sensor config. * * \param ppcStringReply Input/Output. The response string. NEVER NULL AS INPUT. * \param ac Input. Number of args * \param av Input. pointer to args * * \return the status of the command execution. */ eExecStatus e_temperature_set_config( signed portCHAR **ppcStringReply, int ac, signed portCHAR *av[] ) { portCHAR * token; if (config_file_set_value(SENSOR_TEMP_CONFIG_FILE, ac, av) != 0) { *ppcStringReply = (signed portCHAR *)SHELL_ERRMSG_CONFIGERROR; // return error return( SHELL_EXECSTATUS_KO ); } // alarm field if (!strcmp((char *)av[0] , "alarm")) { if (!strcmp((char *)av[1] , "on")) { b_temp_alarm = pdTRUE; *ppcStringReply = (signed portCHAR *)SENSOR_MSG_ALARM_ON; return( SHELL_EXECSTATUS_OK_NO_FREE ); } else if (!strcmp( (char *)av[1], "off")) { b_temp_alarm = pdFALSE; *ppcStringReply = (signed portCHAR *)SENSOR_MSG_ALARM_OFF; return( SHELL_EXECSTATUS_OK_NO_FREE ); } else { *ppcStringReply = (signed portCHAR *)SHELL_ERRMSG_CONFIGERROR; return( SHELL_EXECSTATUS_KO ); } } // lograte field else if (!strcmp((char *)av[0] , "lograte")) { ul_temp_lograte = atoi((char *)av[1]); *ppcStringReply = (signed portCHAR *)SENSOR_MSG_CONFIG_SET; return( SHELL_EXECSTATUS_OK_NO_FREE ); } // min field else if (!strcmp((char *)av[0] , "min")) { token = strpbrk((char *)av[1] , "C"); if (token != NULL) { *token = '\0'; } l_temp_min = atoi((char *)av[1]); *ppcStringReply = (signed portCHAR *)SENSOR_MSG_CONFIG_SET; return( SHELL_EXECSTATUS_OK_NO_FREE ); } // max field else if (!strcmp((char *)av[0] , "max")) { token = strpbrk((char *)av[1] , "C"); if (token != NULL) { *token = '\0'; } l_temp_max = atoi((char *)av[1]); *ppcStringReply = (signed portCHAR *)SENSOR_MSG_CONFIG_SET; return( SHELL_EXECSTATUS_OK_NO_FREE ); } // unknown field : error else { *ppcStringReply = (signed portCHAR *)SHELL_ERRMSG_CONFIGERROR; return( SHELL_EXECSTATUS_KO ); } }
/*! * \brief Set the sensor config. * * \param ppcStringReply Input/Output. The response string. NEVER NULL AS INPUT. * \param ac Input. Number of args * \param av Input. pointer to args * * \return the status of the command execution. */ eExecStatus e_potentiometer_set_config( signed portCHAR **ppcStringReply, int ac, signed portCHAR *av[] ) { portCHAR * token; if (config_file_set_value(SENSOR_POT_CONFIG_FILE, ac, av) != 0) { *ppcStringReply = (signed portCHAR *)SHELL_ERRMSG_CONFIGERROR; // return error return( SHELL_EXECSTATUS_KO ); } if (!strcmp((char *)av[0] , "alarm")) { if (!strcmp((char *)av[1] , "on")) { b_pot_alarm = pdTRUE; *ppcStringReply = (signed portCHAR *)SENSOR_MSG_ALARM_ON; return( SHELL_EXECSTATUS_OK_NO_FREE ); } else if (!strcmp( (char *)av[1], "off")) { b_pot_alarm = pdFALSE; *ppcStringReply = (signed portCHAR *)SENSOR_MSG_ALARM_OFF; return( SHELL_EXECSTATUS_OK_NO_FREE ); } else { *ppcStringReply = (signed portCHAR *)SHELL_ERRMSG_CONFIGERROR; return( SHELL_EXECSTATUS_KO ); } } else if (!strcmp((char *)av[0] , "lograte")) { ul_pot_lograte = atoi((char *)av[1]); *ppcStringReply = (signed portCHAR *)SENSOR_MSG_CONFIG_SET; return( SHELL_EXECSTATUS_OK_NO_FREE ); } else if (!strcmp((char *)av[0] , "min")) { token = strpbrk((char *)av[1] , "%"); if (token != NULL) { *token = '\0'; } ul_pot_min = atoi((char *)av[1]); *ppcStringReply = (signed portCHAR *)SENSOR_MSG_CONFIG_SET; return( SHELL_EXECSTATUS_OK_NO_FREE ); } else if (!strcmp((char *)av[0] , "max")) { token = strpbrk((char *)av[1] , "%"); if (token != NULL) { *token = '\0'; } ul_pot_max = atoi((char *)av[1]); *ppcStringReply = (signed portCHAR *)SENSOR_MSG_CONFIG_SET; return( SHELL_EXECSTATUS_OK_NO_FREE ); } else { *ppcStringReply = (signed portCHAR *)SHELL_ERRMSG_CONFIGERROR; return( SHELL_EXECSTATUS_KO ); } }