assert(nb<MAXPARAM);
ADM_assert(nb<MAXPARAM);
ASC_ERROR ADS_execCommand(char *cmd, int nb, Arg *arg,uint8_t fake){int found=-1;int candidate=-1;	assert(nb<MAXPARAM);	// First go to lowercase	LowerCase(cmd);	// 1- lookup the command	//_______________________	for(int i=sizeof(myCommands)/sizeof(admCommand)-1;i>=0;i--)	{		if(!strcmp(cmd,myCommands[i].command))		{			candidate=i;			if(myCommands[i].nbArgs>=0x100)			{				if(nb>=(myCommands[i].nbArgs&0xff))				{					found=i;					break;				}			}			else			{				if(nb==myCommands[i].nbArgs)				{					found=i;					break;				}			}					}	}	if(found==-1)	{				if(candidate==-1)			return ASC_UNKNOWN_FUNC;		else			return ASC_BAD_NUM_PARAM;	}		// 3- check parameters type	//_________________________	uint32_t check;	check=myCommands[found].nbArgs;	if(check>0x100)	{		check=check & 0xff;	}	else		check=nb;	for(int i=0;i<check;i++)	{		if(arg[i].type!=myCommands[found].args[i])		{						return ASC_BAD_PARAM;		}		}	// 4- Exec	//___________________________		if(fake)		return ASC_OK;	if( myCommands[found].func(nb,arg))		return ASC_OK;	else		return ASC_EXEC_FAILED;}