Several FTP Questons

15 thoughts on “Several FTP Questons

  1. Hi All,

    I am using FTP transfer (GE865-QUAD and GL865-DUAL both with 10.00.xx5  FW), controlled by Python script. FTP is working well, but I need to improve some things.

     

    In all my applications, FTP transfer as well as all GPRS-related communications are using MDM2 command parser. MDM command parser is used as a general purpose – to check socket status, for voice call, SMS, network status, etc.

     

    BTW, when the device is in GPRS connection and is sending data to UDP server and someone is calling to device – after opening the line, GSM module gives information that it is not registered to the network indepenedently that I can see that the UDP-packets are sent and received and bidirectional voice call is held. Same is after sending SMS.

     

    Now, about http://FTP. 

    1. After AT#FTPOPEN=… (in active mode), AT#FTPTYPE=1 (ASCII), and AT#FTPCWD=… (to upload file to related folder on FTP sever), AT#FTPPUT=filename, and receiving CONNECT, GSM starts sending the file row-by row using MDM2.send(row).

    What answer (URC) to MDM2 (or probably to MDM) will be received if the connection is broken during file sending? NO CARRIER or something else. I am checking res value (res = MDM2.send(row)), and if res==1 command is succesful.

    2. After the end of file transfer (all data uploaded, delay of 3 sec, ‘+++’, another delay of 3 sec and after receiving od NO CARRIER), I want to check file size on the FTP server.

    According to the AT-command reference guide:

    AT#FTPFSIZE=<span lang=

    1. Hi Nikolay,

       

      1. indeed NO CARRIER is the message signaling the connection is closed; in the case of a graceful close the indication is prompt but in the case of a broken, stale connection it might take time to notice.

       

      2. please complete the question. Isn’t the size reported accurately? What if you let some time before checking, several seconds/tens of seconds?

       

       

      1. Sorry Cosmin!

        In p.2 I mean that before checking uploaded file size I have to set binary format with FTPTYPE=0 and after that to send AT#FTPSIZE=filename. What answer to expect. it is not clear… 

         

          1. It was not clear for me because no any explanation of answer syntax.

            Uploaded file contains the text: "hallo world"

             

            AT#FTPFSIZE=filename

             

             #FTPFSIZE: 11

             

            Everything is OK, Just Telit people have to add command answer in FTP section of AT commands.

             

            It will be great to separate AT commands for SELINT2 mode from others and to remove old and useless commads. It will be easier to navigate and will encourage new users of Telit modules. We have customers that hesitate to use Telit modules taking in mind that At commands guide includes more than 500 pages. 

          2. I agree about cleaning up the AT manual by splitting it into two issues, SELINT 2 and another issue for old commands. And for many commands, it would be helpful to have even simple examples of usage.

             

            Br, Tom

  2. I have a related issue. We receive FTP data from a standard FTP server. The data stream is broken into 32k blocks and after each block we calculate the size and a checksum. In two modules we are using out of a batch of more than 100, this works correctly. On all other modules we loose about 70 bytes per 32k block. Each module is initialized the same way, same network, same system code, same antenna etc. 

    The fault is consistent and repeatable, 2 work and the rest don’t. We did find when we started this development that we had to set the high bit on all data before sending or the Telit would strip out and try to interpret the data stream ( which I believe it shouldn’t in binary mode) and once this was done the 2 units worked as expected – but the rest dont. We are using firmware 10.00.154 on a quad865

     Any thoughts? 

    1. I sent you a download link to 10.00.156 firmware version,  try it please.

      That trick  with the significant bit should not be needed for binary files, did you set this mode? Are you using hardware flow control? Try sending packets under 4KB with pauses between.

       

      1. Thanks – please send link again – I only got the forum notice of your reply.

         

        I didi set the binary mode, no hardware flow control just streaming to a PIC 32 running at 80 Mhz. Packets at around 1,5K seem to work – but this is too small for us to use ? We have a small pause between blocks, but we will try a larger delay. 

  3. For no hardware flow control smaller blocks and pauses are required and still there is no warranty data will not be lost: what if the network gets low on resources or even stops transmitting?

     

    The link sent again.

     

     

    Edit: I read and understood now you have problems receiving, in which case the data can be lost at the PIC in. Hardware control will be the only help in this case, to have the GE buffer and delay receiving further packets. 

    1. Normally I woudl agree, however it works consistently with more than 1 device – and then fails on others.

       

      PS. where did you send the link to – stil;l nothing ?

      1. The links were sent to the email address you registered in forum – check spam/junk folders.

  4. Hi all,

      I am using GL868 modem. I have implemented ftp, in command mode, for data logging.

     

    Now I want to log data on ftp server which is SSL protected i.e. "FTPS" . So how do I implement this.

     

    what AT commands I need to refer, & what  changes i’ll have to make in my program?

     

    Thanks in advance. 

    1. See the FTPSEn parameter of the AT#FTPCFG command; you must configure SSL and store the keys, read about this inthe SSL/TLS User Guide document.