Hi.
I have Q24PL001 device, act as Serial to TCP gateway.
When transaction data from serial (I use FCM data mode) to TCP is litte (less than 3000 characters/bytes) modem is working correctly, but when transaction data growth more than 4000 characters/bytes modem is not responding for a few seconds then restarted by watchdog timer.
After browsing in the forum, I increase stack size into maximum value (based on my trial and error).
u32 wm_apmCustomStack [1024*15];
const u16 wm_apmCustomStackSize = sizeof(wm_apmCustomStack);
Then I try to increase my data buffer
#define MAX_DATA_BUFF_LEN 102400
This is my code
#define MAX_INTERCHARACTER_TIMEOUT 2;
u32 interCharacterTimeout = 0;
u8 fcm_data_to_gprs[MAX_DATA_BUFF_LEN];
bool fcm_data_handler(u16 len, u8 *data) {
TRACE((4, "FCM DATA HANDLER"));
/* buffer incoming data into variable */
wm_memcpy(&fcm_data_to_gprs[fcm_index_counter], data, len);
fcm_index_counter += len;
/* TRACE incoming SERIAL DATA */
wm_sprintf(buff, "FCM DATA HANDLER : fcm_data_to_gprs = %s, length = %d", fcm_data_to_gprs, len);
TRACE((4, buff));
/* change FLAG */
rcvDataComplete = TRUE;
return (TRUE);
}
void send_to_gprs_timer_event_handler(u8 id) {
if (rcvDataComplete == TRUE) {
if (interCharacterTimeout < MAX_INTERCHARACTER_TIMEOUT) {
interCharacterTimeout++;
} else {
nwrite = wip_write(tcpChannel, fcm_data_to_gprs, fcm_index_counter);
if (nwrite > 0) {
wm_sprintf(buff, "SEND TO GPRS TIMER HANDLER : serial Data (%d bytes) Sent = SUCCESS", nwrite);
TRACE((10, buff));
} else {
wm_sprintf(buff, "SEND TO GPRS TIMER HANDLER : serial Data (%d bytes) Sent = FAILED", nwrite);
TRACE((10, buff));
}
/* reset fcm_data buffer */
wm_memset(fcm_data_to_gprs, 0, fcm_index_counter);
/* reset buffer counter index */
fcm_index_counter = 0;
/* change FLAG */
rcvDataComplete = FALSE;
}
}
return;
}
Hardware & Firmware version
ATI3
657e09gg.Q24PL001 1961548 103107 17:56
AT+WDWL?
+WDWL: V02.1G
AT+WOPEN=2
+WOPEN: 2,"AT v03.12","AT v03.14"
Backtrace
Watch dog reset. Tsk 26
Unknown function (0)
Unknown function (0)
I have try to upgrade firmware to 657h, but no luck.
FYI, problem appear if using baudrate 9600 (this is mandatory requirement), and no problem found with baudrate 115200.
Any suggestion ?
Regards.