Hi Everyone,
In the following code, i’m having trouble to Subscribe multiple gpio’s.
Please do verify the code and comment.
/**************************************************************************/
/ GPIO PIN constants /
/**************************************************************************/
#define GPS_EN_PIN (ADL_IO_GPIO | 2)
#define SDB_232_PIN (ADL_IO_GPIO | 4)
#define EN1_232_PIN (ADL_IO_GPIO | 5)
#define RS485_EN_PIN (ADL_IO_GPIO | 6)
#define RS485_RX_EN_PIN (ADL_IO_GPIO | 7)
#define EN2_232_PIN (ADL_IO_GPIO | 9)
#define RS485_TX_EN_PIN (ADL_IO_GPIO | 8 )
/**************************************************************************/
/ GPIO Declaration /
/**************************************************************************/
adl_ioDefs_t GPS_EN_GpioConfig[1] = { GPS_EN_PIN | ADL_IO_DIR_OUT};
adl_ioDefs_t SDB_232_GpioConfig[1] = { SDB_232_PIN | ADL_IO_DIR_OUT};
adl_ioDefs_t EN1_232_GpioConfig[1] = { EN1_232_PIN | ADL_IO_DIR_OUT };
adl_ioDefs_t RS_485_EN_GpioConfig[1] = { RS485_EN_PIN | ADL_IO_DIR_OUT };
adl_ioDefs_t EN_485_RX_GpioConfig[1] = { RS485_RX_EN_PIN | ADL_IO_DIR_OUT };
adl_ioDefs_t EN2_232_GpioConfig[1] = { EN2_232_PIN | ADL_IO_DIR_OUT};
adl_ioDefs_t RS_485_TX_EN_GpioConfig[1] = { RS485_TX_EN_PIN | ADL_IO_DIR_OUT};
/**************************************************************************/
/ Global Variable Declaration /
/**************************************************************************/
s32 SDB_232_GpioHandle,EN1_232_GpioHandle,EN2_232_GpioHandle,GPS_EN_GpioHandle;
s32 RS_485_EN_GpioHandle, EN_485_RX_GpioHandle,RS_485_TX_EN_GpioHandle;
/*******************************************************************/
/ Function : cbMtInit /
/-------------------------------------------------------------------------/
/ Object : Subscribe to the AT+WDU command /
/ /
/ Return : None /
/-------------------------------------------------------------------------/
/ Variable Name |IN |OUT|GLB| Utilization /
/--------------------±–±--±–±---------------------------------------/
/ | | | | /
/--------------------±–±--±–±---------------------------------------/
/***************************************************************************/
void cbMtInit ( void )
{
s16 Ret = OK;
adl_InitType_e adlInitType = adl_InitGetType ();
TRACE ( ( UA_MAINTASK_TRACEID, "OK - cbMtInit" ) );
TRACE ( ( UA_MAINTASK_TRACEID, __DATE__ ) );
TRACE ( ( UA_MAINTASK_TRACEID, __TIME__ ) );
/* GPS_EN_PIN Subscribe */
GPS_EN_GpioHandle = adl_ioSubscribe ( 1, GPS_EN_GpioConfig, 0, 0,0 );
TRACE ( ( 1, “Subscribe to GPS_EN[%X] %d error code %X”,
( GPS_EN_GpioConfig[0] & ADL_IO_LABEL_MSK ),
GPS_EN_GpioHandle, ( GPS_EN_GpioConfig[0] & ADL_IO_ERR_MSK ) ) );
/* SDB_232_PIN Subscribe */
SDB_232_GpioHandle = adl_ioSubscribe ( 1, SDB_232_GpioConfig, 0, 0,0 );
TRACE ( ( 1, "Subscribe to SDB_232[%X] %d error code %X",
( SDB_232_GpioConfig[0] & ADL_IO_LABEL_MSK ),
SDB_232_GpioHandle, ( SDB_232_GpioConfig[0] & ADL_IO_ERR_MSK ) ) );
/* EN1_232_PIN Subscribe */
EN1_232_GpioHandle = adl_ioSubscribe ( 1, EN1_232_GpioConfig, 0, 0,0 );
TRACE ( ( 1, "Subscribe to EN_232[%X] %d error code %X",
( EN1_232_GpioConfig[0] & ADL_IO_LABEL_MSK ),
EN1_232_GpioHandle, ( EN1_232_GpioConfig[0] & ADL_IO_ERR_MSK ) ) );
/* RS_485_EN_PIN Subscribe */
RS_485_EN_GpioHandle = adl_ioSubscribe ( 1, RS_485_EN_GpioConfig, 0, 0,0 );
TRACE ( ( 1, "Subscribe to RS_485_EN[%X] %d error code %X",
( RS_485_EN_GpioConfig[0] & ADL_IO_LABEL_MSK ),
RS_485_EN_GpioHandle, ( RS_485_EN_GpioConfig[0] & ADL_IO_ERR_MSK ) ) );
/* EN_485_RX_PIN Subscribe */
EN_485_RX_GpioHandle = adl_ioSubscribe ( 1, EN_485_RX_GpioConfig, 0, 0,0 );
TRACE ( ( 1, "Subscribe to EN_485_RX[%X] %d error code %X",
( EN_485_RX_GpioConfig[0] & ADL_IO_LABEL_MSK ),
EN_485_RX_GpioHandle, ( EN_485_RX_GpioConfig[0] & ADL_IO_ERR_MSK ) ) );
/* EN2_232_PIN Subscribe */
EN2_232_GpioHandle = adl_ioSubscribe ( 1, EN2_232_GpioConfig, 0, 0,0 );
TRACE ( ( 1, "Subscribe to EN2_232[%X] %d error code %X",
( EN2_232_GpioConfig[0] & ADL_IO_LABEL_MSK ),
EN2_232_GpioHandle, ( EN2_232_GpioConfig[0] & ADL_IO_ERR_MSK ) ) );
/* RS_485_TX_EN_PIN Subscribe */
RS_485_TX_EN_GpioHandle = adl_ioSubscribe ( 1, RS_485_TX_EN_GpioConfig, 0, 0,0 );
TRACE ( ( 1, "Subscribe to RS_485_TX_EN_[%X] %d error code %X",
( RS_485_TX_EN_GpioConfig[0] & ADL_IO_LABEL_MSK ),
RS_485_TX_EN_GpioHandle, ( RS_485_TX_EN_GpioConfig[0] & ADL_IO_ERR_MSK ) ) );
/* Subscription to the +WDU AT command */
Ret = adl_atCmdSubscribe ( ( ascii* ) CmdString, cbDirectUartCmdHandler,
( ADL_CMD_TYPE_PARA | UA_WDU_CMD_PARAM_CONFIG ) );
UA_ASSERT ( Ret );
if ( Ret == OK )
{
adl_atSendResponse ( ADL_AT_RSP, Warning );
adl_atSendResponse ( ADL_AT_RSP, CmdHelp1 );
adl_atSendResponse ( ADL_AT_RSP, CmdHelp2 );
}
else
{
adl_atSendResponse ( ADL_AT_RSP, CmdHelp3 );
TRACE ( ( UA_MAINTASK_TRACEID, " adl_atCmdSubscribe Returns : %d",
Ret ) );
}
}
Following is the trace available
2014/01/09;19:00:44:383;001;ADL;1;Binary header at 002A0000
2014/01/09;19:00:44:383;002;ADL;1;OK - cbMtInit
2014/01/09;19:00:44:384;001;ADL;1;Jan 9 2014
2014/01/09;19:00:44:384;002;ADL;1;18:39:11
2014/01/09;19:00:44:388;001;ADL;1;Subscribe to GPS_EN[3002] 403114376 error code 0
2014/01/09;19:00:44:389;001;ADL;1;Subscribe to SDB_232[3004] -11 error code 20000000
2014/01/09;19:00:44:390;001;ADL;1;Subscribe to EN_232[3005] -11 error code 20000000
2014/01/09;19:00:44:390;002;ADL;1;Subscribe to RS_485_EN[3006] -11 error code 20000000
2014/01/09;19:00:44:392;001;ADL;1;Subscribe to EN_485_RX[3007] -11 error code 20000000
2014/01/09;19:00:44:394;001;ADL;1;Subscribe to EN2_232[3009] -11 error code 20000000
2014/01/09;19:00:44:395;001;ADL;1;Subscribe to RS_485_TX_EN_[3008] -11 error code 20000000
2014/01/09;19:00:44:395;002;ADL;3;[cbUART1Rx] Task Context [1]
2014/01/09;19:00:44:395;003;ADL;3;cbUART1Rx [180709a8]
2014/01/09;19:00:44:404;001;ADL;3;Wait for a Received Data…
2014/01/09;19:00:44:404;002;ADL;4;[cbUART2Rx] Task Context [2]
2014/01/09;19:00:44:404;003;ADL;4;cbUART2Rx [1806f678]
2014/01/09;19:00:44:405;001;ADL;4;Wait for a Received Data…