Dear Sirs,
I searched this forum and the Digi KB but I haven’t all information that we need.
I’m interested in Rabbit MiniCore RCM6700 module for performing the following operations:
- Web server for reading status, logs etc of a connected embedded controller (SPI)
- FTP client functionality for download/upload files from a connected embedded controller (SPI). For this operation I read your “Dynamic C TCP/IP Volume 2 User’s manual” at chapter 7 FTP CLIENT, and I found that for files larger than 32767 bytes it is necessary to write a custom data handler function.
My questions:
- Is there any example of how can I write the data handler function?
- Is it possible to expand the FTP client functionality with FTP commands such as “file listing”, “change folder” etc.?
- Is it possible to create a multi-thread software for both Web server and Ftp Client functionalities?
Thank you
Hello,
Under Dynamic C installation C:\DCRABBIT_10.72\Samples cpip\ftp, there is FTP_CLIENT.C application, it is implemented by using the data handler functions.
It seems,Dynamic C has only the, ftp server side commands(APIs) to process the request that comes from the ftp client. Check more details in the "“Dynamic C TCP/IP Volume 2 User’s manual”.
To the best of my knowledge, you can implement the multi-thread software for both Web server and Ftp Client functionalities.
Also I suggest that, Download the
“Dynamic Web Pages With The Embedded Web Server” under “GEneral Documentation”. it has sample webserver applications and some more information regarding the webserver implementation.You can find at the below location
http://www.digi.com/support/productdetail?pid=4978&type=documentation
I hope this helps you.
1 Like
It is definitely possible to do what you are proposing as I have done something similar with our GET-1032 data logger which uses a modified version of the Rabbit FTP client which is used to upload CSV data files from the logger and download new configuration files. For this I added support for deleting and renaming files so that the new config file could be removed or renamed after being processed.
I don’t have a web server implemented in our products but I use UCos II for the multitasking and have an FTP Client, an XML client, an SMTP client and a BACnet stack all using the TCP/IP libraries from separate tasks.
The samples\FTP_CLIENT.C file shows how to use the data handlers.
The only issue I had with the data handler when doing CSV files was that it deals with fixed size chunks and because I was creating my file on the fly I found it easier to pad lines at the end of a block with spaces rather than try to buffer lines and split them.
The other issue with the client functionality is that it does a single transfer per FTP session but it would be possible to modify it so that the session is started and terminated in such a way as to allow multiple transfers with a bit of work.
Some of the previous versions of the library were a bit lax in how they handled TCP/IP errors but the fixes I implemented for this were fed back to Digi and the latest version is much more robust (FTP over a GPRS link creates a very messy TCP/IP session and shows up the problems very quickly!).
Regards,
Peter
2 Likes
Thank you very much Peter!
I’m trying to download Dynamic C but after some minutes the download fail, maybe there are some problems in Digi website, i’ll try it later :-|.
In regards og the implementation of additional functionalities in FTP client (we need “File list” and “Change directory” to create a file Explorer…), do you have any suggestion on how to implement? Or any sample code?
Thank you again!
Alessandro
Also thanks to “cpigilam” of course for his soon reply!
The FTP client library does support the LIST command and indirectly the CWD command as you can provide a file name and a separate path which the client library will CDW to before starting the LIST/upload/download operation as appropriate.
Regards,
Peter