DataMaxToReceiveFromV24

We are using OpenAT 2.10, Q2406B module.
According to the <<Open At 2.10 Development Guide>>

It is too small! The problem appear when some device does not support Flow Control. Some data just lost.
In our case it is nesessary to encode data from V24, ( 3DES, it is about 16 Kb per second). And during this time V24 buffer overflow.

How can I change V24 buffer size? Any changes in OpenAT 3.x?

Hello,

Question:

Do you mean 16 “kilo bit per second” or “16 kilo bytes per second”?

My comments:

I don’t think its possible to change buffer size, I’ve never seen anything about that…

And unfortunately, it looks the same in 3.x too…

But if you take a look at the ADL documentation (v 3.x), there’s written that the DATA segment MAXSIZE is also 120 byte in the UART1 flow but if there’s more data, then the handler will be called several times…
so then it should only be to buffer the received data and wait until the next block arrives, until enough data is collected for further processing.

Or maybe I got the application wrong, then please explain more…

/Snoooze

Thanks, snoooze

16 kilo bytes per second

serial speed 115200, flow control disabled
120 bytes buffer can overflow on 100 msec. So, if some function works longer then 100 msec some data lost (641_q2406b firmware), or come corrupted (643_q2406b.dwl firmware).
The problem doesn’t occur with flow control enabled.

Hello,

No, not 100 milliseconds, 120 bytes on 115200 bit/second takes only 10,4 milliseconds…

…and thats not too long time but if you just copy the data into a larger buffer and then return until the data stream is finished and you have time to process it… or maybe your application doesn’t work that way?

/Snoooze

ups, of corse it takes about 10 msec

You are right, I process the data immediately, in callback function.
I’ll try to rewrite the code. Thank you for idea.

Hello,

How can i setup this block size using ADL library (less than 120 bytes)? I’ve found that in case of Open AT Basic library this is the second parameter of wm_fcmOpen function. (wm_fcmOpen(wm_fcmFlow_e FlowID, u16 DataMaxToReceive)).