...
Including µC/FTPc Stack Source Code
As indicated in the Figure - FTPc Folder Tree, all the files in the "Source" folder of the µC/FTPc parent directory must be added to your project tree.
...
\Micrium\Software\uC-FTPc
...
Copy the file from the µC/FTPc configuration folder into your application as illustrated below.
Panel | ||
---|---|---|
| ||
Adding µC/FTPc Example Application Code
...
Note that some sections of the source code have been removed or modified to help focus on the µC/FTPc module use.
The example bellow demonstrates the µC/FTPc module capabilities in both standard and secure mode. The client connects to a remote FTP server in standard mode, perform file download and upload operations before closing the connection.
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
#define FTP_SERVER_IP_ADDR "192.168.1.101" #define FTP_SERVER_PORT 21 #define FTP_SERVER_PORT_SECURE 990 #define FTPc_USERNAME "anonymous" #define FTPc_PASSWORD "test123micrium" #define FTPs_COMMON_NAME "micrium.com" #define RX_FILE_REMOTE "file_remote_1" #define RX_FILE_LOCAL "\\file_local" #define TX_FILE_REMOTE "file_local" #define TX_FILE_LOCAL "\\file_remote_2" #define FTPc_BUF_LEN_MAX 4096 #if (NET_SECURE_CFG_EN == DEF_ENABLED) static FTPc_SECURE_CFG ftpc_secure_cfg; #endif static void AppTaskStart (void *p_arg) /* See Note #1. */ { FTPc_CONN conn; CPU_BOOLEAN result; FTPc_ERR err_ftpc; #if (FTPc_CFG_USE_FS != DEF_ENABLED) CPU_INT08U buf[FTPc_BUF_LEN_MAX]; CPU_INT32U file_size; #endif result = FTPc_Open(&conn, /* See Note #2. */ DEF_NULL, DEF_NULL, FTP_SERVER_IP_ADDR, FTP_SERVER_PORT, FTPc_USERNAME, FTPc_PASSWORD, &err_ftpc); if (result != DEF_OK) { printf("FTPc_Open() failed.\n\r"); return; } #if (FTPc_CFG_USE_FS == DEF_ENABLED) result = FTPc_RecvFile(&conn, /* See Note #3. */ RX_FILE_REMOTE, RX_FILE_LOCAL, &err_ftpc); if (result != DEF_OK) { printf("FTPc_RecvFile() failed.\n\r"); FTPc_Close(&conn, &err_ftpc); return; } result = FTPc_SendFile(&conn, /* See Note #4. */ TX_FILE_REMOTE, TX_FILE_LOCAL, DEF_FALSE, &err_ftpc); if (result != DEF_OK) { printf("FTPc_SendFile() failed.\n\r"); FTPc_Close(&conn, &err_ftpc); return; } #else result = FTPc_RecvBuf(&conn, /* See Note #3. */ RX_FILE_REMOTE, &buf[0], FTPc_BUF_LEN_MAX, &file_size, &err_ftpc); if (result != DEF_OK) { printf("FTPc_RecvBuf() failed.\n\r"); FTPc_Close(&conn, &err_ftpc); return; } result = FTPc_SendBuf(&conn, /* See Note #4. */ TX_FILE_REMOTE, &buf[0], file_size, DEF_NO, &err_ftpc); if (result != DEF_OK) { printf("FTPc_SendBuf() failed.\n\r"); FTPc_Close(&conn, &err_ftpc); return; } #endif result = FTPc_Close(&conn, &err_ftpc); /* See Note #5. */ if (result != DEF_OK) { printf("FTPc_Close() failed.\n\r"); return; } } |
Panel | ||
---|---|---|
| ||
|