Hello,
is there a easy way to connect to a FTP Server with the Electron? I tried the ParticleFTPClient, but it dosen’t connect to the server. If I try it with AT Commands (u-blox at command examples) Cellular.command returns always -1 but it dosen’t connect.
Or ist there a possibility for debuging to ger directly access to the Sara Module without using the MCU and Cellular.command?
I tried to connect also with an Arduino and SIM800 module and this works. I really near to put the electron in a corner and go back to Arduino and SIM800.
PS. I use a 3th party sin card
The code I tested with is:
/* FTP
AT+CGDCONT?
AT+UFTP?
AT+UFTP=1,"ftp.u-blox.com"
AT+UFTP=2,"anonymous"
AT+UFTP=3,"user@somedomain.com"
AT+UFTP=6,1 //FTP Mode 0=Active 1=Passive
AT+UFTPC=1 //FTP Login
AT+UFTPC=14,"downloads" //List the files in the directory
AT+UFTPER
AT+UFTPC=13 //Information of a file in a directory
AT+UFTPC=13,"downloads"
AT+UFTPER
AT+UFTPC=8,"downloads" //Change the working directory
AT+UFTPC=4,"downloads/100Kb.bin","download.bin" //Recive the File from the FTP server
AT+ULSTFILE
AT+UFTPC=0 //FTP Logout
*/
//SYSTEM_MODE(MANUAL);
//#include "cellular_hal.h"
STARTUP(cellular_credentials_set("gprs.swisscom.ch", "", "", NULL));
int AT_TIMEOUT = 1000;
void setup() {
Serial.begin(9600);
Serial.println("Cellular started. Ready to receive AT commands.");
}
void loop() {
if (Serial.available() > 0) {
String input = Serial.readString();
Serial.println("Received input: "+input);
Serial.println("--BEGIN RESPONSE--");
int point;
int i = Cellular.command(parseResponse, &point, AT_TIMEOUT, input+"\r\n");
Serial.println(i);
Serial.println("--END RESPONSE--");
}
}
int parseResponse(int type, const char* buf, int len, int* point) {
char line[1024+64];
strncpy(line, buf, len);
line[len] = '\0';
String line_as_string = String(line);
Serial.println(line_as_string.trim());
if (type == TYPE_ABORTED) {
return RESP_ABORTED;
}
else if (type == TYPE_PROMPT) {
return RESP_PROMPT;
}
else if (type == TYPE_ERROR) {
return RESP_ERROR;
}
else if (type == TYPE_OK) {
return RESP_OK;
}
else {
return WAIT;
}
}