I can not correctly receive unsolicited responses from AT+WGPSNMEA command.
I subscribe to $GPGGA unsolicited response. When it fires, first 16 to 27 bytes (variable) are passed to OAT application, all others are forwarded to UART, allthough explicitly programmed not to do so.
void adl_main ( adl_InitType_e InitType )
{
TRACE (( 1, "Embedded Application : Main" ));
adl_atCmdCreate("AT+WGPSNMEA=1,0", FALSE, GpsCmdNMEAHandler, "*", NULL);
adl_atUnSoSubscribe("$GPGGA", GpsNMEAHandler);
}
bool GpsCmdNMEAHandler(adl_atResponse_t * Param) {
TRACE ((1, "<CMDNMEA>: %d", Param->RspID));
return(FALSE);
}
bool GpsNMEAHandler(adl_atUnsolicited_t * Param) {
ascii ss[100];
sprintf(ss, "<NMEA>: %d,%d,>%s<", Param->RspID, Param->StrLength, Param->StrData);
TRACE ((1, ss));
return(FALSE);
}
The response in debugger:
6086.656 Trace CUS4 1 Embedded Application : Main
6087.297 Trace CUS4 1 <CMDNMEA>: 1
6087.417 Trace CUS4 1 <NMEA>: 0,19,>$GPGGA,,,,,,0,0,99<
6088.500 Trace CUS4 1 <NMEA>: 0,26,>$GPGGA,212936.27,,,,,0,0,<
6089.500 Trace CUS4 1 <NMEA>: 0,26,>$GPGGA,212937.27,,,,,0,0,<
The leftover on terminal emulator:
.99,,,,,,*78
99.99,,,,,,*5E
99.99,,,,,,*5F
I use:
OAT 3.02
OS 6.51
Q2501
In target mode the behaviour is the same.
Any hints? Can someone reproduce the problem?