00001
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048 #include <string.h>
00049
00050 #include "compiler.h"
00051 #include "FreeRTOS.h"
00052
00053 #include "datalog.h"
00054 #include "shell.h"
00055 #include "board.h"
00056 #include "supervisor.h"
00057 #include "cptime.h"
00058 #include "actuator.h"
00059 #include "cpled.h"
00060
00061
00062
00063
00064
00065
00066
00067 const signed portCHAR *const CPLED_OFF_STR = (signed portCHAR *)"off";
00068 const signed portCHAR *const CPLED_ON_STR = (signed portCHAR *)"on";
00069
00070 extern int sprintf(char *out, const char *format, ...);
00071
00072
00073
00081 Bool b_ledm1_get_value( xLogDef *pxLog )
00082 {
00083
00084 if( LED_Test( LEDM1 ) )
00085 pxLog->pcStringLog = (char *)CPLED_ON_STR;
00086 else
00087 pxLog->pcStringLog = (char *)CPLED_OFF_STR;
00088 pxLog->pfFreeStringLog = NULL;
00089
00090 return( TRUE );
00091 }
00092
00093
00101 Bool b_ledm2_get_value( xLogDef *pxLog )
00102 {
00103
00104 if( LED_Test( LEDM2 ) )
00105 pxLog->pcStringLog = (char *)CPLED_ON_STR;
00106 else
00107 pxLog->pcStringLog = (char *)CPLED_OFF_STR;
00108 pxLog->pfFreeStringLog = NULL;
00109
00110 return( TRUE );
00111 }
00112
00113
00121 Bool b_ledb1_get_value( xLogDef *pxLog )
00122 {
00123
00124 pxLog->pcStringLog = pvPortMalloc( 8*sizeof( char ) );
00125 if( NULL == pxLog->pcStringLog )
00126 {
00127 return( FALSE );
00128 }
00129 pxLog->pfFreeStringLog = vPortFree;
00130
00131
00132 sprintf( pxLog->pcStringLog, "%d,%d", LED_Get_Intensity( LEDB1G ),
00133 LED_Get_Intensity( LEDB1R ) );
00134
00135 return( TRUE );
00136 }
00137
00138
00146 Bool b_ledb2_get_value( xLogDef *pxLog )
00147 {
00148
00149 pxLog->pcStringLog = pvPortMalloc( 8*sizeof( char ) );
00150 if( NULL == pxLog->pcStringLog )
00151 {
00152 return( FALSE );
00153 }
00154 pxLog->pfFreeStringLog = vPortFree;
00155
00156
00157 sprintf( pxLog->pcStringLog, "%d,%d", LED_Get_Intensity( LEDB2G ),
00158 LED_Get_Intensity( LEDB2R ) );
00159
00160 return( TRUE );
00161 }
00162
00163
00164
00165
00166
00167
00168
00169
00170
00171
00172
00173
00174
00175
00176
00177
00178
00179
00180
00181
00182
00183 eExecStatus e_ledm1_set_value( eModId xModId, int ac, signed portCHAR *av[],
00184 signed portCHAR **ppcStringReply )
00185 {
00186
00187
00188 if( ( 2 > ac ) || ( 4 < ac ) )
00189 {
00190 *ppcStringReply = (signed portCHAR *)ACTUATOR_ERRMSG_SETVAL_SYNTAXERROR;
00191 return( SHELL_EXECSTATUS_KO );
00192 }
00193
00194
00195 if( strcmp( (char *)av[0], "state" ) )
00196 {
00197 *ppcStringReply = (signed portCHAR *)ACTUATOR_ERRMSG_SETVAL_SYNTAXERROR;
00198 return( SHELL_EXECSTATUS_KO );
00199 }
00200
00201
00202
00203 if( 4 == ac )
00204 {
00205 return( e_actuator_ScheduleCmdSet( CPTIME_SCHEDCMDID_SETLEDM1VAL, ac, av, ppcStringReply ) );
00206 }
00207
00208 if( !strcmp( (char *)av[1], (char *)CPLED_ON_STR ) )
00209 {
00210 LED_On( LEDM1 );
00211 }
00212 else if( !strcmp( (char *)av[1], (char *)CPLED_OFF_STR ) )
00213 {
00214 LED_Off( LEDM1 );
00215 }
00216 else
00217 {
00218 *ppcStringReply = (signed portCHAR *)ACTUATOR_ERRMSG_SETVAL_SYNTAXERROR;
00219 return( SHELL_EXECSTATUS_KO );
00220 }
00221 return( SHELL_EXECSTATUS_OK );
00222 }
00223
00224
00245 eExecStatus e_ledm2_set_value( eModId xModId, int ac, signed portCHAR *av[],
00246 signed portCHAR **ppcStringReply )
00247 {
00248
00249
00250 if( ( 2 > ac ) || ( 4 < ac ) )
00251 {
00252 *ppcStringReply = (signed portCHAR *)ACTUATOR_ERRMSG_SETVAL_SYNTAXERROR;
00253 return( SHELL_EXECSTATUS_KO );
00254 }
00255
00256
00257 if( strcmp( (char *)av[0], "state" ) )
00258 {
00259 *ppcStringReply = (signed portCHAR *)ACTUATOR_ERRMSG_SETVAL_SYNTAXERROR;
00260 return( SHELL_EXECSTATUS_KO );
00261 }
00262
00263
00264
00265 if( 4 == ac )
00266 {
00267 return( e_actuator_ScheduleCmdSet( CPTIME_SCHEDCMDID_SETLEDM2VAL, ac, av, ppcStringReply ) );
00268 }
00269
00270 if( !strcmp( (char *)av[1], (char *)CPLED_ON_STR ) )
00271 {
00272 LED_On( LEDM2 );
00273 }
00274 else if( !strcmp( (char *)av[1], (char *)CPLED_OFF_STR ) )
00275 {
00276 LED_Off( LEDM2 );
00277 }
00278 else
00279 {
00280 *ppcStringReply = (signed portCHAR *)ACTUATOR_ERRMSG_SETVAL_SYNTAXERROR;
00281 return( SHELL_EXECSTATUS_KO );
00282 }
00283 return( SHELL_EXECSTATUS_OK );
00284 }
00285
00286
00287
00309 eExecStatus e_ledb1_set_value( eModId xModId, int ac, signed portCHAR *av[],
00310 signed portCHAR **ppcStringReply )
00311 {
00312
00313
00314 if( ( 4 > ac ) || ( 6 < ac ) )
00315 {
00316 *ppcStringReply = (signed portCHAR *)ACTUATOR_ERRMSG_SETVAL_SYNTAXERROR;
00317 return( SHELL_EXECSTATUS_KO );
00318 }
00319
00320
00321 if( strcmp( (char *)av[0], "green" ) || strcmp( (char *)av[2], "red" ))
00322 {
00323 *ppcStringReply = (signed portCHAR *)ACTUATOR_ERRMSG_SETVAL_SYNTAXERROR;
00324 return( SHELL_EXECSTATUS_KO );
00325 }
00326
00327
00328
00329 if( 6 == ac )
00330 {
00331 return( e_actuator_ScheduleCmdSet( CPTIME_SCHEDCMDID_SETLEDB1VAL, ac, av, ppcStringReply ) );
00332 }
00333
00334
00335 LED_Set_Intensity( LEDB1G, atoi( (char *)av[1] ) );
00336 LED_Set_Intensity( LEDB1R, atoi( (char *)av[3] ) );
00337
00338 return( SHELL_EXECSTATUS_OK );
00339 }
00340
00341
00363 eExecStatus e_ledb2_set_value( eModId xModId, int ac, signed portCHAR *av[],
00364 signed portCHAR **ppcStringReply )
00365 {
00366
00367
00368 if( ( 4 > ac ) || ( 6 < ac ) )
00369 {
00370 *ppcStringReply = (signed portCHAR *)ACTUATOR_ERRMSG_SETVAL_SYNTAXERROR;
00371 return( SHELL_EXECSTATUS_KO );
00372 }
00373
00374
00375 if( strcmp( (char *)av[0], "green" ) || strcmp( (char *)av[2], "red" ))
00376 {
00377 *ppcStringReply = (signed portCHAR *)ACTUATOR_ERRMSG_SETVAL_SYNTAXERROR;
00378 return( SHELL_EXECSTATUS_KO );
00379 }
00380
00381
00382
00383 if( 6 == ac )
00384 {
00385 return( e_actuator_ScheduleCmdSet( CPTIME_SCHEDCMDID_SETLEDB2VAL, ac, av, ppcStringReply ) );
00386 }
00387
00388
00389 LED_Set_Intensity( LEDB2G, atoi( (char *)av[1] ) );
00390 LED_Set_Intensity( LEDB2R, atoi( (char *)av[3] ) );
00391
00392 return( SHELL_EXECSTATUS_OK );
00393 }