Autor
|
Tema: ayuda con comparacion en sentencia (Leído 2,693 veces)
|
rod00x3
Desconectado
Mensajes: 21
|
hola como estan mi duda es sobre una funcion que usa un argumento como puntero en general para cada parametro de posible entrada uso (adl_ioDefs_t *)Param)[ 0 ]) (adl_ioDefs_t *)Param)[ 1 ]) (adl_ioDefs_t *)Param)[ n ])
Lo que quiero es saber si me pueden ayudar para en lugar de comparar caracter por caracter de la cadena pueda comparar toda una cadena, ejemplo:
if(((((adl_ioDefs_t *)Param)) & ADL_IO_LEV_HIGH)=="0011001")
el codigo actual que tengo es el siguiente:
if(((((adl_ioDefs_t *)Param)[ 7 ]) & ADL_IO_LEV_HIGH)==0)
{
adl_atSendResponse(ADL_AT_RSP,"\n detonado");
adl_smsSend(smshandle,"","accion",ADL_SMS_MODE_TEXT);
}
|
|
« Última modificación: 7 Enero 2013, 19:35 pm por rod00x3 »
|
En línea
|
|
|
|
BlackZeroX
Wiki
Desconectado
Mensajes: 3.158
I'Love...!¡.
|
|
|
|
En línea
|
The Dark Shadow is my passion.
|
|
|
rir3760
Desconectado
Mensajes: 1.639
|
Lo que quiero es saber si me pueden ayudar para en lugar de comparar caracter por caracter de la cadena pueda comparar toda una cadena [...]
el codigo actual que tengo es el siguiente:
if(((((adl_ioDefs_t *)Param)[ 7 ]) & ADL_IO_LEV_HIGH)==0){ adl_atSendResponse(ADL_AT_RSP,"\n detonado"); adl_smsSend(smshandle,"5543299041","ATM sucursal COSMOBIT a detonado",ADL_SMS_MODE_TEXT); } La condición es: 1) Convertir la variable "Param" al tipo "adl_ioDefs_t *" 2) Comparar ambos valores con el operador a nivel de bits AND. Y es verdadera si ningún par de bits esta a uno. Honestamente no creo que busques una comparación de cadenas. Aquí lo mejor es explicar en detalle la operación que deseas realizar en base al tipo "adl_ioDefs_t *" y la macro ADL_IO_LEV_HIGH. También indica el compilador, plataforma y bibliotecas que estas utilizando para el programa. Un saludo
|
|
|
En línea
|
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly. -- Kernighan & Ritchie, The C programming language
|
|
|
rod00x3
Desconectado
Mensajes: 21
|
Ok, es solo que pense que mi solucion seria a algo estandar de c, este es el codigo que tengo, es de un modulo de sierra wireless, lo que quiero es poder manipular los if de una manera mas simple, como enunciaba, cada param[n] es una entrada.
#include "adl_global.h" #include "generated.h" #include "adl_CmdHandler.h" #include "adl_sms.h" #include "adl_gpio.h"
bool SmsNuevo(ascii *telno,ascii *smstimelnth,ascii *smstex); void SmsEnviado(u8 Event, u16 Nb); void MyGpioEventHandler ( s32 GpioHandle, adl_ioEvent_e Event, u32 Size, void *Param );
u8 smshandle; //Guarda la informacion de los SMS. ascii buffer[200];
s32 myGpioOut_Handle;
#define NUM_GPIO_OUT 1
u32 My_Gpio_Label1 [ NUM_GPIO_OUT ] = {25};
adl_ioDefs_t Gpio_Out_Config [NUM_GPIO_OUT] = {ADL_IO_GPIO | 25 | ADL_IO_DIR_IN};
// Gpio Event Handle s32 MyGpioEventHandle;
/****************************************************************************************/ //Programa Principal void main_task ( void ) { adl_ioDefs_t Gpio_to_read1 = ADL_IO_GPIO | My_Gpio_Label1 [ 0 ] ; s32 ReadValue;
adl_atSendResponse(ADL_AT_RSP," \"PUSH REMOTO\" \r\n"); adl_atSendResponse(ADL_AT_RSP," AG ELECTRONICA S.A DE C.V \r\n");
smshandle=adl_smsSubscribe((adl_smsHdlr_f)SmsNuevo,(adl_smsCtrlHdlr_f)SmsEnviado,ADL_SMS_MODE_TEXT);
MyGpioEventHandle = adl_ioEventSubscribe ( MyGpioEventHandler );
myGpioOut_Handle = adl_ioSubscribe ( NUM_GPIO_OUT, Gpio_Out_Config, ADL_TMR_TYPE_100MS, 1, MyGpioEventHandle );
// Read inputs ReadValue = adl_ioReadSingle (myGpioOut_Handle, &Gpio_to_read1 ); } /****************************************************************************************/
/****************************************************************************************/ bool SmsNuevo(ascii *telno,ascii *smstimelnth,ascii *smstex){ //Rutina llamda por el sistema operativo cuando llega un SMS. //Los parametros son -> numero telefonico,longuitud del mensaje, texto del sms. ascii buffer[200]; //se delcara un buffer para organizar los datos.
wm_strcpy(buffer,"\n\r Nuevo mensaje ha llegado\r\n Numero telefonico: "); //se imprime en el buffer la cadena nuevo mensaje, numero telefonico: wm_strcat(buffer,telno); //se adjunta el numero telefonico wm_strcat(buffer,"\r\n Mensaje: "); //se adjunta el texto "mensaje" wm_strcat(buffer,smstex); //se adjunta el mensaeje de texto que llego. adl_atSendResponse(ADL_AT_RSP,buffer); //se imprime todo por el puerto serial. adl_atSendResponse(ADL_AT_RSP,"\n");
return(1); } /****************************************************************************************/
/****************************************************************************************/ void SmsEnviado(u8 Event, u16 Nb){ switch(Event){
case ADL_SMS_EVENT_SENDING_OK: adl_atSendResponse(ADL_AT_RSP,"\n\r Mensaje Enviado Correctamente\r\n"); break;
case ADL_SMS_EVENT_SENDING_ERROR: adl_atSendResponse(ADL_AT_RSP,"\n\r Error Al Enviar Mensaje\r\n"); break; } } /****************************************************************************************/
// GPIO event handler void MyGpioEventHandler ( s32 GpioHandle, adl_ioEvent_e Event, u32 Size, void *Param ) { // Check event switch ( Event ) { case ADL_IO_EVENT_INPUT_CHANGED : { if(((((adl_ioDefs_t *)Param)[ 0 ]) & ADL_IO_LEV_HIGH)==0) { adl_smsSend(smshandle,"","PUSH ACTIVADO",ADL_SMS_MODE_TEXT); //Se envia un mensaje de texto con los parametros "Numero Telefónico" y "Mensaje". } } break; } }
este es el codigo original, yo lo quiero modificar para 8 entradas, no entiendo del todo lo que pasa pero esto me funciono a medias: 1) incremente el numero del arreglo y la definicion de la entrada, y logre tener en el evento 8 entradas, pero cuando hay 2 simultaneas me envia ambos registros, y quiero que solo me envie la que mas reciente.
Segun yo con entender esa parte que postee de comparar lo que hay en param, ya esta. pero no tengo mucha idea.
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Sentencia Goto en Php , Salto de sentencia en Php
PHP
|
Graphixx
|
3
|
4,025
|
24 Mayo 2012, 17:46 pm
por Graphixx
|
|
|
Ayuda Comparacion de cadenas
Java
|
charmedever
|
3
|
2,215
|
16 Julio 2012, 05:19 am
por hucruz
|
|
|
Ayuda con la sentencia WHERE en VB.net
Programación General
|
airtraffic
|
2
|
2,144
|
19 Febrero 2013, 21:52 pm
por airtraffic
|
|
|
Ayuda con la comparacion de estructuras en C
Programación C/C++
|
GameX
|
3
|
2,658
|
17 Diciembre 2016, 15:58 pm
por engel lex
|
|
|
AYUDA URGENTE!! Comparacion de fechas en DEV C++
Programación C/C++
|
JonatanP
|
2
|
2,549
|
26 Mayo 2020, 20:12 pm
por Serapis
|
|