That is necessary, but not sufficient.
After adl_fcmSwitchV24State, you need to wait for the Event to confirm that the UART has actually switched to Data mode before you may call adl_fcmSendData
That is necessary, but not sufficient.
After adl_fcmSwitchV24State, you need to wait for the Event to confirm that the UART has actually switched to Data mode before you may call adl_fcmSendData
blackyblack if I do not subscribe to UART2 how can I handle FcmDataHandler & FcmCtrlHandler?
FcmDataHandler is responsible for sending any data received on UART2 to GSM.
I understand that adl_callAnswerExt (ADL_PORT_UART2 ) binds GSM to UART2… but still I need somehow to handle UART2
Yes, For debugging I send data before. I fixed, and remove all adl_atSendResponse(). Now I am using TRACE() macros.
Fine, but still I have a problem to send data from Hypertrm UART2 to Hypertrm on PC A.
Please have a look at my traces:
When I type on HyperTrm on PC A GSM_DATA_DataHandler is called:
bool GSM_DATA_DataHandler (u16 DataLen, u8 * Data)
{
s8 s8d1;
TRACE (( 1, "GSM_DATA_DataHandler -> Data Event %d", DataLen));
s8d1 = adl_fcmSendData(FCMHandler,Data, DataLen);
TRACE(( 1, "adl_fcmSendData Ret= %d", s8d1));
return TRUE;
}
When typing on UART2 FcmDataHandler is called:
bool FcmDataHandler (u16 DataLen, u8 * Data)
{
s8 s8d;
TRACE (( 1, "FcmDataHandler -> Data Event %d", DataLen));
s8d = adl_fcmSendData (GSM_DATA_Handle,Data,DataLen);
TRACE(( 1, "adl_fcmSendData Ret= %d", s8d));
return TRUE;
}
The trace for typing on PC A and on UART2 HyperTrm are following:
When I type on UART2 I got this:
HOw can I see what this message says?
I think that such a binding will pass all data from GSM flow to UART2 flow and vice versa. All external handling of data will be made with some host (eg PC connected to UART2).
Your traces seem to be OK to me. Are you sure that data you typed on UART2 did not pass to your PC terminal? Also try to enter AT command AT+CBST=71,0,1 before your next experiment (it will remain active until next module restart).
Thank you for reply, I am going to change back to UART1 and see how does it work on UART1. But there is another strange thing I have notice.
When I send ASCII character ‘u’ to UART2, it gives me back echo… Why? I don’t use any echo in my application? Is that default behavior of UART2 in Q2686?
[attachment=0]echo_on_wavecom.PNG[/attachment]
When the UART is in AT Commands mode, command echo is controlled by the ATE setting.
It still looks like you are not properly setting the UART into Data mode…
Problem solved, I am not using adl_callAnswer() calls anymore. I just switching to data state when DATA RING EVENT occures.
Thanks a lot for discussion!
Tom