Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: SDFileSystem mbed-rtos mbed
Revision 1:8dd592e91577, committed 2015-01-19
- Comitter:
- pravinmagar
- Date:
- Mon Jan 19 11:48:57 2015 +0000
- Parent:
- 0:001407b7f10c
- Commit message:
- 1 kb file send along with ftpget file and send same file again after every 1 hour properly fitted into code. to send multiple files through ftpget small change required in getftp function.
Changed in this revision
| main.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/main.cpp Sun Jan 18 12:54:35 2015 +0000
+++ b/main.cpp Mon Jan 19 11:48:57 2015 +0000
@@ -4,7 +4,7 @@
#define freq 1
-#define dur_sec 0.5
+#define dur_sec 1
Serial pc(USBTX, USBRX);
Serial gsm(D1, D0); //tx,rx
@@ -24,18 +24,9 @@
unsigned short DCdata[20000];
unsigned short DC_Detect_data[10];
-/*union Data
- {
- unsigned short datai[50000];
- char datac[100000];
- };
-union Data ACdata;
-union Data DCdata;*/
-
-
-unsigned short TC33temp;
-unsigned short TC50temp;
-unsigned short TCRLtemp;
+//unsigned short TC33temp;
+//unsigned short TC50temp;
+//unsigned short TCRLtemp;
char sitename[100] ="MODZ";
char filename[100] = "";
@@ -65,7 +56,7 @@
char ftpget[100];
int reset_time=120; //mins
int gsmerr=0;
-
+int count1=0;
//--------------------------------------------------------------------------------------------------//
// Module reset //
//--------------------------------------------------------------------------------------------------//
@@ -76,47 +67,6 @@
//--------------------------------------------------------------------------------------------------//
// Send AT Command (1 response) //
//--------------------------------------------------------------------------------------------------//
-int8_t sendATcommand3(char* ATcommand, char* expected_answer, unsigned int timeout)
-{
- uint8_t x=0,answer=0; //x=0 and answer=0, if not put, AT+CCLK?\r is not executed
- char response[100];
- // int time_previous;
- memset(response, '\0', 100); // Initialize the string
- wait_ms(100);
- while( gsm.readable() > 0) gsm.getc(); // Clean the input buffer
- gsm.printf("%s \r", ATcommand); // Send the AT command
- x = 0;
- previous = time(NULL);
- do // this loop waits for the answer
- {
- if(gsm.readable() != 0)
- {
- response[x] = gsm.getc(); // if there are data in the UART input buffer, reads it and checks for the asnwer
- pc.putc(response[x]);
- x++;
- if (strstr(response, expected_answer) != NULL) // check if the desired answer is in the response of the module
- {
- answer = 1;
- }
- }
- }while((answer == 0) && ((time(NULL) - previous) < timeout));
- FILE *fp9 = fopen("/sd/Record.txt", "a");
- if(fp9==NULL)
- {
- error("Could not open the file for write\r\n");
- }
- fprintf(fp9,"%s",response);
- fclose(fp9); // Waits for the asnwer with time out
- /* if(clk_flag == 1)
- {
- sprintf(timestamp,response); //copies response to timestamp for further processing }
- }*/
- return answer;
-}
-
-//--------------------------------------------------------------------------------------------------//
-// Send AT Command (1 response) //
-//--------------------------------------------------------------------------------------------------//
int8_t sendATcommand(char* ATcommand, char* expected_answer, unsigned int timeout, bool clk_flag)
{
uint8_t x=0,answer=0; //x=0 and answer=0, if not put, AT+CCLK?\r is not executed
@@ -354,7 +304,7 @@
}
}
fclose(fp2);
- pc.printf("\n storage done");
+ pc.printf("\n\r storage done \n\r");
osSignalSet(tid6, 0x1);
}
@@ -447,23 +397,38 @@
// FTP Send Function //
//--------------------------------------------------------------------------------------------------//
-void ftp_put(bool ftp_type)
+void ftp_put(bool ftp_type,int a)
{
char ftpfilename[30]="";
- char ftpfilepath[100]="";
- if (ftp_type ==0)
- {
- sprintf(ftpfilename,"%s",filenameAC);
- sprintf(ftpfilepath,"%s",pathAC);
- }
- else if (ftp_type ==1)
- {
- sprintf(ftpfilename,"%s",filenameDC);
- sprintf(ftpfilepath,"%s",pathDC);
- }
+ char ftpfilepath[100]="";
+
+ if(((ftp_type==0) || (ftp_type==1)) && (a==0));
+ {
+ if ((ftp_type ==0)&&(a==0))
+ {
+ pc.printf("@@@@");
+ sprintf(ftpfilename,"%s",filenameAC);
+ sprintf(ftpfilepath,"%s",pathAC);
+ }
+ else if((ftp_type==1) && (a==0))
+ {
+ pc.printf("###");
+ sprintf(ftpfilename,"%s",filenameDC);
+ sprintf(ftpfilepath,"%s",pathDC);
+ }
+ }
+ while(((ftp_type==0) && (a==1)))
+ {
+ pc.printf("\r\n##\r\n");
+ sprintf(ftpfilename,"%s","MODZ150119112458AC.txt");
+ sprintf(ftpfilepath,"%s",ftpget);
+ pc.printf("\r\n@@@\r\n");
+ break;
+ }
pc.printf("\r\nftp_put attempt\n\r");
char command1[40];
char result1[20];
+ pc.printf("\r\r--%s--",ftpfilename);
sprintf(command1,"%s\"%s\"", "AT+FTPPUTNAME=", ftpfilename);
sprintf(result1,"%s", "OK");
for(int putname_attempt=0; putname_attempt<3;putname_attempt++)
@@ -471,7 +436,7 @@
if(sendATcommand(command1,result1, 10,0))
{
// pc.printf("\n %p",ftpfilename);
- sendATcommand("AT+FTPPUTPATH=\"/Trial//\"", "OK", 5,0);
+ sendATcommand("AT+FTPPUTPATH=\"/Trial/\"", "OK", 5,0);
if(sendATcommand("AT+FTPPUT=1", "OK", 10,0))
{
// pc.printf("in loop");
@@ -492,6 +457,7 @@
gsm.printf("%c", fgetc(fp9));
}
+ pc.printf("file transfered succesfully");
break;
}
else
@@ -520,53 +486,47 @@
}
// pc.printf("\n\r %s\n\r","i am not able to send data");
}
-/*
+
//-----------------------------------------------------------------------------------------------------------------//
// FTP Get
//----------------------------------------------------------------------------------------------------------------//
void downloadFTP()
{
- char incoming_data[100];
-
+ Timer t;
+ char incoming_data[100]="";
//int data_size, aux;
-
int x = 0;
int attempt=0;
int allowed_attempt=4;
- sendATcommand3("AT+FTPGETNAME=\"abc.txt\"", "OK", 5);
- sendATcommand3("AT+FTPGETPATH=\"/\"", "OK", 5);
+ sendATcommand("AT+FTPGETNAME=\"abc.txt\"", "OK", 5,0);
+ sendATcommand("AT+FTPGETPATH=\"/\"", "OK", 5,0);
while(attempt<allowed_attempt)
{
- if (sendATcommand3("AT+FTPGET=1", "+FTPGET:1,1",20)==1)
+ if (sendATcommand("AT+FTPGET=1", "+FTPGET:1,1",20,0)==1)
{
-
-
- for(int i=0; i<4;i++)
+ for(int i=0; i<4;i++)
{
if (sendATcommand2("AT+FTPGET=2,70","+FTPGET:2,","+FTPGET:1,",10) == 1)
- {
-
+ {
//data_size = 0;
int previous = time(NULL);
-
-
- do{
- if(gsm.readable() == 1){
-
+ do{
+ if(gsm.readable() == 1)
+ {
incoming_data[x] = gsm.getc();
x++;
- }
+ }
}while((time(NULL) - previous) < 5);
-
-
+
pc.printf("Data is %s\r\n",incoming_data);
- // const char s[2] = "\n";
- //char *token;
- //int len=0;
- //token = strtok(incoming_data, s);
+ const char s[2] = "\n";
+ char *token;
+ token = strtok(incoming_data, s);
+ token= strtok(NULL,s);
//len = atoi(token);
- strncpy(ftpget,incoming_data+3,51);
+ //strncpy(ftpget,incoming_data+3,51);
+ sprintf(ftpget,token);
pc.printf("Data is %s",ftpget);
FILE *fp1 = fopen("/sd/Query.txt","w");
fprintf(fp1,"%s",ftpget);
@@ -585,14 +545,11 @@
{
attempt++;
}
-
}
- pc.printf("\n@@@");
-}
+
+}
-
- */
-
+
//--------------------------------------------------------------------------------------------------//
// FTP Function Thread //
//--------------------------------------------------------------------------------------------------//
@@ -603,15 +560,25 @@
while(true)
{
+
osSignalWait(0x1, osWaitForever);
+
if(ftp_connect())
- {
-
- ftp_put(0);
- ftp_put(1);
- // downloadFTP();
-
- }
+ {
+ // Timer t;
+ // t.start();
+ // ftp_put(0,0);
+ //ftp_put(1,0);
+ // t.stop();
+ // pc.printf("\n\r Time=%f",t.read());
+ if (count1==0)
+ { downloadFTP();
+ ftp_put(0,1);
+ int count1=0;
+ break;
+ }
+ count1++;
+ }
}
}
//--------------------------------------------------------------------------------------------------//
@@ -641,7 +608,7 @@
//pc.printf("\r\n%s",timestamp);
fclose(fp);
}
-
+
Thread thread1(sampling);
Thread thread3(store);
Thread thread6(FTP_Fun);