GPRS <> FTP (SIM900)



                                            


    SIM900 ("AT+CGEREP=0,0");      SIN STOK DE MENSAGES 
            
    SIM900 ("AT+CIPMUX=1");          MULTI IP ACTIVO
                 
    SIM900 ("AT+CREG?");                SISTEMA OK?
                   
    SIM900 ("AT+CGATT?");              CONECTIVIDAD OK ?
                 
    SIM900 ("AT+CSTT=\"claro.com.br\",\"claro \",\"claro\"");           APN,USUARIO,CLAVE 
                  
    SIM900 ("AT+CIPSRIP=1");         IP
                   
    SIM900 ("AT+CIICR");                 CONECTO A RED VIA  APN 
                
    SIM900 ("AT+CIFSR");                RECUPERO MI IP "CAMBIA A CADA CONECCION"


>>>>>>>>>>>>>>  ESTA CONECTADO !




                 SIM900(sprintf(Set_TC_IP,"AT+CIPSTART=0,\"TCP\",\"ftp.xpg.com.br\",\"21\"\r\n"));                     
                  CONECTO SEVER FTP


              FTP_COMMAND_0("USER vwvwvwvw");
                         
               do{
                      if(Num_Max)                                        LIMITE DE USUARIOS LOGADOS ?
                        {Salir_del_modo();  return; }

                           if(CLOSED_0)                                ERROR DE NOMBRE O CONECCION?
                             {SHUT_DOWN();  return; }

                     }while(!PASS_REQ);                            RECONOCIDO?


             FTP_COMMAND_0("PASS mwmwmw");                      
                        
              do{
                      if(CLOSED_0)                                 //  LOGIN RECHAZADO?
                        {SHUT_DOWN();  return; }
                  }while(!LOGADO);                               //  LOGIN ASEPTADO? 


OK ESTAMOS EN EL SERVIDOR !
PIDO SEGUNDA PUERTA PARA TRANSFERENCIA DE DATOS  


    FTP_COMMAND_0("PASV");                                    
                        while(!pasive){};                          // AGUARDA RESPUETA PASV
                  
    FTP_01X_IP (Set_TCF_IPP);     // CONFIGURO Y ENVIO RESPUESTA RECIBIDA


                  do{
                        if(CONNECT_FAILF)                 // FALLA ?
                         { Salir_del_modo();return;}
                       }while(!CONNECT);                     // CONECTADOS ? 




                                                   <     opciones     >
     BAJA_ARCHIVO ("/ABC.TXT");   ||    SUBE_ARCHIVO ("NOMBRE","CONTENIDO")

                AGUARDAMOS CONFIRMACION ...  
                DESCONECCION AUTOMATICA VUELTA AL MODO AT COMMAND FULL . 
.........................................................................................................................................................




void BAJA_ARCHIVO (char *nombre_archivo)
{
              FTP_COMMAND_0 ("RETR /ABC.TXT");    // PIDO UN ARCHIVO
                   do{
                       if (Not_Alowed)                                        // NO EXISTE O DIRECTORIO ERRADO 
                         { Salir_del_modo();
                            return ;}
                    }while(!TRANSMITIR_PEMITIDO || !COMMAND_OK);          // OK?
                   return;
}

void SUBE_ARCHIVO (char *nombre_archivo, char *contenido)
{
   FTP_COMMAND_0 ("STOR /ABC.TXT");
           do{
               if (Not_Alowed)                                        // OPERACION NO PERMITIDA?
               { Salir_del_modo();
                    return ;}
                 }while(!TRANSMITIR_PEMITIDO || !COMMAND_OK);             OK?
  FTP_STORE_DATA (" TEXTO DE MI ARCHIVO ABC.TXT, ES ESTE ! ");          // ENVIO >>
         return;
}

TRATATAMIENTO DE RESPUESTA DE PASS >

   ,H1,H2,H3,H4, =   IP ASIGNADO POR SERVIDOR EN MODO PASSSIVE ;
      (P1 x 256)+P2=  PUERTA DEL IP ASIGNADO


  int PA = atoi(P1);
  int PB = atoi(P2);
  int PORTi = (PA * 256)+ PB;


 extern char Set_TCF_IPP[50];
              sprintf(Set_TCF_IPP,"AT+CIPSTART=1,\"TCP\",\"%s.%s.%s.%s\",\"%i\"\r\n",H1,H2,H3,H4,PORTi); 


2 comentarios:

  1. hola tengo una pregunta, as transferido archivos que pesen 1 Megabyte, que velocidad de transmision as medido, yo e transmitido archivos pero la velocidad de transmision es muy baja de apenas 200byte/seg, hay alguna manera de aumentar la velocidad

    ResponderBorrar
    Respuestas
    1. hola , he transmitido si .mas siempreen el contexto de paquetes y subiendo a servidores FTP entonces la velocidad es mayor aunque no sabria cuantificarte con exactitud de cuanto mas.

      Borrar