Buffering of data received on stack


#1

I have successfully opened my TCP stack and changed over to UART mode. If I have two modems connected to hyper terminal and transmit data from one to the other, it works perfect. Whatever is typed on one is shown up on the other.
However when I connect one to an RS232 device which needs to receive the data and process it, it doesnot receive it. Instead the modem keeps it in memory until the modem is connected to hyper terminal. As soon as I connect to hyper terminal all the data that is in the buffer is printed.
What am I doing wrong?

The function where I receive my data is as follows

u16 tcpDataHandler(u16 dataLen, u8 * data, TeDHandle ID)
{
ascii * outputstring;
s8 returnCode;

if (dataLen > 0)
{
outputstring = adl_memGet(dataLen + 1);
returnCode = asl_fcmSendData(UartHandle, data, dataLen);
adl_memRelease(outputstring);
}

return dataLen;
}


#2

Hi,

I think this is not related to OpenAT, but flow control and DTR singalling. Your device cannot detect signal from computer RS-232 port and so data is buffered.
Try to look at the commands of disabling flow control and DTR signal


#3

Hi all, just some thoughts…

That would be the commands:

AT+IFC=0,0
AT&D0

.

But before you disable it you should check if your application really needs flow control. And if so, then you should [color=blue]enable it on your application instead. Or else you could risk loosing data…

Other things to put on the checklist is if the cable you use in application mode is fully equipped with all signals (if you use different cables in terminal mode and application mode)

If you use flowcontrol, then its important that control signals (in addition to RD, TD and SG) from both application and ME is connected (if your application uses them):
[color=blue]RTS and [color=blue]DTR (DTE signals from application)
[color=blue]CTS, [color=blue]DSR, [color=blue]DCD and [color=blue]RI (DCE signals from ME)

/Snoooze