SMS WITH BUTTON


#1

hi to all, I have begun today to use wireless cpu q2686, as first step I would want to be able to send a sms when I press a push-button, I have tried to read the several examples, but I have not resolved. someone you can help me? thanks


#2

What examples did you “try” to read?

In what way(s) are you still “not resolved” ?

It is difficult to help you if you don’t explain exactly what it is, exactly, that you require help with! :unamused:

You need to give a clear & complete description of:

  • What you tried
  • What you thought should happen
  • What actually happened
  • What thoughts and/or experiments you have made in an attempt to explain the difference!

#3

ok. sorry for being be little clear. the examples that I have seen are: sms_auto, telemetry I do not understand like setting up the keypad like input. I want that pressing a button of the keypad it sends a sms. I hope of being be clearer. sorry for my English :confused: …thanks


#4

If you just want one button, it’d probably be simpler to just use a GPIO…


#5

yes, I would want to try with a single button, I have found this example, but M2M does not compile it!

#include “adl_global.h”
const u16 wm_apmCustomStackSize = 1024;
const adl_ioConfig_t MyGpioConfig[1] = {ADL_IO_Q2686_GPIO_44,0,ADL_IO_INPUT};
u8 SMSHandle;
s32 GpioEventHandle;
u8 k;

void GpioEventHandler ( s32 GpioHandle, adl_ioEvent_e Event, u32 Size, void * Param )
{
switch (Event)
{
case ADL_IO_EVENT_INPUT_CHANGED:
{
if (k==0) // to filter the first ADL_IO_EVENT_INPUT_CHANGED received at astart up
{
k++;
}

        else
        {
            TRACE((1,"ADL_IO_EVENT_CHANGED"));
            TRACE((1,"state = %d", (((adl_ioRead_t *)Param) [0].eState)));
            if ((((adl_ioRead_t *)Param) [0].eState)) // check the state of the GPIO
                {
                    TRACE((1,"GPIO_44 is high"));
                    adl_smsSend( SMSHandle, "+333333333", "GPIO_44 switches to high", ADL_SMS_MODE_TEXT );    // Change the phone number please!
                }
            else
            {
                TRACE((1,"GPIO_44 is low"));
                adl_smsSend( SMSHandle, "+3333333333", "GPIO_44 switches to low", ADL_SMS_MODE_TEXT );
            }
        }
        break;
    }
}

}

void SmsCtrlHandler ( u8 Event, u16 Nb )
{
TRACE((1,“Evento = %d”, Event));
}
bool SmsHandler ( ascii * SmsTel, ascii * SmsTimeOrLength, ascii * SmsText )
{
return FALSE;
}
void SimHandleravnet(u8 Event)
{
TRACE((1,“SimHandleravnet = %d”, Event));
switch (Event)
{
case ADL_SIM_EVENT_FULL_INIT:
TRACE((1,“ADL_SIM_EVENT_FULL_INIT”));
SMSHandle = adl_smsSubscribe( SmsHandler, SmsCtrlHandler, ADL_SMS_MODE_TEXT );

    GpioEventHandle = adl_ioEventSubscribe ( GpioEventHandler );
    adl_ioSubscribe ( 1, MyGpioConfig, ADL_TMR_TYPE_100MS, 1, GpioEventHandle );
    break;
}

}
void adl_main ( adl_InitType_e InitType )
{
TRACE (( 1, “Embedded Application : Main” ));

adl_simSubscribe ( SimHandleravnet, NULL );

}


#6

OK…i resolved with

#include “adl_global.h”
#define GPIO_OUTPUT_PIN 22
#define GPIO_INPUT_PIN 4
// GPIO service handle
static s32 GPIOHandle_OUT;
static s32 GPIOHandle_IN;
s32 ReadValue;
adl_ioDefs_t GpioConfig_OUT = ADL_IO_GPIO | GPIO_OUTPUT_PIN | ADL_IO_DIR_OUT;
adl_ioDefs_t GpioConfig_IN = ADL_IO_GPIO | GPIO_INPUT_PIN | ADL_IO_DIR_IN;
const u16 wm_apmCustomStackSize = 1024*3;
s32 GpioEventHandle;
void GpioEventHandler ( s32 GpioHandle, adl_ioEvent_e Event, u32 Size, void * Param ){
s32 ReadValue_IN;
s32 ReadValue_OUT;
// Check event
switch ( Event ){
case ADL_IO_EVENT_INPUT_CHANGED :
ReadValue_IN = adl_ioReadSingle (GPIOHandle_IN, &GpioConfig_IN);
if (ReadValue_IN == 0){
adl_ioWriteSingle ( GPIOHandle_OUT, &GpioConfig_OUT, TRUE );
ReadValue = adl_ioReadSingle (GPIOHandle_IN, &GpioConfig_IN);
}
adl_ioWriteSingle ( GPIOHandle_OUT, &GpioConfig_OUT, FALSE );
}
}
void adl_main ( adl_InitType_e InitType ){
adl_ioWriteSingle ( GPIOHandle_OUT, &GpioConfig_OUT, FALSE );
adl_ioWriteSingle ( GPIOHandle_IN, &GpioConfig_IN, TRUE );
GpioEventHandle = adl_ioEventSubscribe (GpioEventHandler);
GPIOHandle_OUT = adl_ioSubscribe ( 1, &GpioConfig_OUT, 0, 0, 0 );
GPIOHandle_IN = adl_ioSubscribe ( 1, &GpioConfig_IN, 1, 1, GpioEventHandle );
}

thanks…