FTP AT commands
This page describes FTP-related AT commands.
FTP client #XFTP
The #XFTP
command allows you to send FTP commands.
Set command
The set command allows you to send FTP commands.
Syntax
#AT#XFTP=<cmd>[,<param1>[<param2]..]]
The <cmd>
command is a string, and can be used as follows:
AT#XFTP="open",<username>,<password>,<hostname>[,<port>[,<sec_tag>]]
AT#XFTP="status"
AT#XFTP="ascii"
AT#XFTP="binary"
AT#XFTP="close"
AT#XFTP="verbose","on|off"
AT#XFTP="pwd"
AT#XFTP="cd",<folder>
AT#XFTP="ls"[,<options>[,<folder or file>]]
AT#XFTP="mkdir",<folder>
AT#XFTP="rmdir",<folder>
AT#XFTP="rename",<filename_old>,<filename_new>
AT#XFTP="delete",<file>
AT#XFTP="get",<file>
AT#XFTP="put",<file>[,<data>]
AT#XFTP="uput"[,<data>]
AT#XFTP="mput",<file>[,<data>]
The values of the parameters depend on the command string used.
When using the put
, uput
and mput
commands, if the <data>
attribute is not specified, SLM enters slm_data_mode
.
Note
The maximum size of the data that can be received when using the commands ls
and get
is limited by the size of the internal FTP buffer, which is 2048 bytes.
The size can be adjusted by modifying the declaration of ftp_data_buf
in src/ftp_c/slm_at_ftp.c
.
If more data than can be handled is received after issuing an ls
or get
command, the data will be truncated to the maximum supported size.
Response syntax
The response syntax depends on the commands used.
Examples
AT#XFTP="open",,,"speedtest.tele2.net"
220 (vsFTPd 3.0.3)
200 Always in UTF8 mode.
331 Please specify the password.
230 Login successful.
OK
AT#XFTP="status"
215 UNIX Type: L8
211-FTP server status:
Connected to ::ffff:202.238.218.44
Logged in as ftp
TYPE: ASCII
No session bandwidth limit
Session timeout in seconds is 300
Control connection is plain text
Data connections will be plain text
At session startup, client count was 38
vsFTPd 3.0.3 - secure, fast, stable
211 End of status
OK
AT#XFTP="ascii"
200 Switching to ASCII mode.
OK
AT#XFTP="binary"
200 Switching to Binary mode.
OK
AT#XFTP="close"
221 Goodbye.
OK
Read command
The read command is not supported.
Test command
The test command is not supported.
TFTP client #XTFTP
The #XTFTP
command allows you to send TFTP commands.
Set command
The set command allows you to send TFTP commands based on RFC1350.
Syntax
AT#XTFTP=<op>,<url>,<port>,<file_path>[,<mode>,<data>]
The
<op>
parameter can accept one of the following values:1
- TFTP read request using IP protocol family version 4.2
- TFTP write request using IP protocol family version 4.3
- TFTP read request using IP protocol family version 6.4
- TFTP write request using IP protocol family version 6.
The
<url>
parameter is a string. It indicates the hostname or the IP address of the TFTP server. Its maximum size is 128 bytes. When the parameter is an IP address, it supports both IPv4 and IPv6.The
<port>
parameter is an unsigned 16-bit integer (0 - 65535). It represents the TFTP service port on the remote server, which is usually port 69.The
<file_path>
parameter is a string. It indicates the file path on the TFTP server to read from or write to. Its maximum size is 128 bytes.The
<mode>
parameter is a string. It indicates the three modes defined in TFTP protocol. Valid values arenetascii
,octet
andmail
. The default valueoctet
is applied if this parameter is omitted.The
<data>
parameter is a string. When<op>
has a value of2
or4
, this is the data to be put to the remote server.Note
The maximum data size supported in WRITE request is 1024 bytes. The TFTP connection is terminated by writing less than 512 bytes, as defined in the protocol specification (RFC 1350).
Response syntax
#XTFTP: <size>, "success"
<data>
#XTFTP: <error>, "<error_msg>"
The
<size>
value is an integer. When positive, it indicates the size of data in bytes read from TFTP server.The
<data>
value is the arbitrary data read from TFTP server.The
<error>
value is an integer. It is a negative integer based on the type of error.The
<error_msg>
value is a string. It is the description that corresponds to the<error>
value.
Examples
AT#XTFTP=2,"tftp-server.com",69,"test_put_01.txt","octet","test send TFTP PUT"
#XTFTP: 18,"success"
OK
AT#XTFTP=1,"tftp-server.com",69,"test_put_01.txt"
test send TFTP PUT
#XTFTP: 18,"success"
OK
AT#XTFTP=2,"tftp-server.com",69,"test_put_02.txt""octet","012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789"
#XTFTP: 540,"success"
OK
AT#XTFTP=1,"tftp-server.com",69,"test_put_02.txt"
012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789
#XTFTP: 540,"success"
OK
AT#XTFTP=1,"tftp-server.com",69,"test_put_not_exist.txt"
#XTFTP: -4, "remote error"
ERROR
Read command
The read command is not supported.
Test command
The test command tests the existence of the command and provides information about the type of its subparameters.
Syntax
AT#XTFTP=?
Examples
AT#XTFTP=?
#XTFTP: (1,2,3,4),<url>,<port>,<file_path>,<mode>
OK