Имеем Wavecom-овский GPRS-модем, например, Q24PL, со встроенным стеком TCP-IP (WIPSoft 3.01).
При открытом TCP сокете данные передаются командой AT+WIPDATA=2,1,1 после которой модем переходит в режим данных и гонит двоичные данные в сеть. Скорость работы УАРТа, по которому передаются данные (115200), выше скорости отдачи в сети GPRS (28 кбит/с, зависит от класса GPRS). Следовательно, довольно быстро происходит переполнение внутреннего буфера и модуль затыкается, связь с удаленным терминалом обрывается.
Вопрос в том, как получить от модуля подтверждение, что он "переварил" переданную ему порцию данных (размер внутреннего буфера известен) и можно отправлять следующую порцию?
Постоянно делать таймауты между посылками, рассчитывая на некоторую минимальную скорость отправки через GPRS - это не вариант.
|