Module is GC864.
When sending JPEG
images I’m finding that sometimes the image gets chopped at the end
even though the image has been sent at the module end. Is this a network
Hi Ed, how do you send the image? FTP, SMTP, HTTP upload? Python or external host?
Both FTP and HTTP POST using an external controller.
Are you using hardware flow control? How do you check all data was sent/leaved the module? Are you using the latest firmware?
Yes, hardware flow control. There is a delay of 7 seconds and DCD is checked before finally closing the connection. The data has been sent but somewhere along the network link it is being truncated for some reason. I originally thought I was prematurely closing the connection, hence the 7 sec delay before checking DCD.
I would check, to be sure of the size of sent data, in the case of HTTP POST, socket info with #SI just before and after image is sent out.
I suppose FTP type and HTTP data encoded are correctly.
All data is encoded correctly, this is not a constant fault it only happens occasionally.
I suppose the question is what guarantee do we have that the network end has correctly received the data, is it possible that the network has simply lost the data or disconnected for some reason after the module has sent the data? How likely is this? If I know that the network has not received the data then I can resend it but the module is not sending this indication so I don’t resend.
TCP is supposed to guarantee delivery.
And more, TCP ensures data integrity, so is very unlikely something wrong happens during transport, wrong packets are re-transmitted. Something must happen in one end.
Safest way will be to check then the size of the actual file on server, AT#FTPFSIZE for FTP method, and for HTTP implement a check around HEAD HTTP command.
Not a very satisfactory method of checking file transfer.
Anyway, you can close the thread and I’ll try to work around it.
Thanks for the input.
Just an update on the incomplete transmission of data over GPRS.
The problem was mine, I had assumed I could relax my data trasnmission timeouts once a connection was established so I used a timeout of 5 seconds, for most data packets this was fine but obviously the network was not always consistent and I found that the 5 seconds ws sometimes exceeded so I stopped the transmission on timeout. So now I use much longer timeouts even on sending data once a connection is established. This might be useful for other developers.
Thank you Edward, useful indeed, much appreciated.
Hit enter to search or ESC to close
Knowledge Base & Download Zone