Hi all,
In my fastrack (firmware 6.55,open at v3.10) I want to realize a TCP client.
In OPEAN AT Sample I have read about FTP and HTTP_Server but I do not find samples that can help me.
You can help me?
Hi all,
In my fastrack (firmware 6.55,open at v3.10) I want to realize a TCP client.
In OPEAN AT Sample I have read about FTP and HTTP_Server but I do not find samples that can help me.
You can help me?
Hey man,
Try this code…(sorry about the comments, they are all in portuguese) and do not forget to change the parameters at Config function !!!
Good luck !!!
Gus
/**************************************************************************
PI Componentes - Gustavo Nunes
***************************************************************************/
/**************************************************************************
File : Appli.c
---------------------------------------------------------------------------
Data Criacao : 20-Out-2005
Ult. Modif. : 29-Out-2005
Descricao : Abre conexao TCP
***************************************************************************/
#include "adl_global.h"
#include "ed_gprs.h"
#include "ed_dialup.h"
#include "ed_smtp.h"
#include "ed_msgcodes.h"
#include "ed_socket.h" // For "TCP Socket" functions
#include "ed_common.h" // For "ed_Init" function
/***************************************************************************
Mandatory variables
----------------------------------------------------------------------------
wm_apmCustomStack
wm_apmCustomStackSize
----------------------------------------------------------------------------
****************************************************************************/
u32 wm_apmCustomStack [ 256 ];
const u16 wm_apmCustomStackSize = sizeof ( wm_apmCustomStack );
/***************************************************************************
Global variables
----------------------------------------------------------------------------
e_gprsSetupParams_t : Parameters for
ed_SocketSetupParams_t : Parameters for
----------------------------------------------------------------------------
****************************************************************************/
ed_gprsSetupParams_t ParamsGPRS; //Parametros para conexao GPRS
ed_SocketSetupParams_t ParamsSocket; // Parametros para Socket TCP
int a=0;
/***************************************************************************
functions
****************************************************************************/
void Config (){
// GPRS configuration
ParamsGPRS.Cid = 1; //Configura canal 1 de conexao (4 canais estao disponiveis)
ParamsGPRS.Mode = 1; //Configura o modem para conexao GPRS
wm_strcpy(ParamsGPRS.ApnServ,"tim.br"); //APN da servidora TIM
wm_strcpy(ParamsGPRS.ApnUn,"tim");
wm_strcpy(ParamsGPRS.ApnPw,"tim");
// Socket TCP configuration
ParamsSocket.TcpPort = 3000;
wm_strcpy(ParamsSocket.TcpServ,"200.234.31.71");
}
void HelloWorld_TimerHandler ( u8 ID )
{
char Saida[10];
/* Hello World */
//TRACE (( 1, "Embedded : Hello World" ));
//adl_atSendResponse ( ADL_AT_UNS, "\r\nHello World from Open-AT\r\n" );
//wm_strcpy(Saida,"Teste");
a++;
wm_sprintf(Saida,"%d", a);
ed_SendDataExt(Saida,wm_strlen(Saida),FALSE,ED_ID_TCPSOCKET_1);
}
void DataTXHandler (u16 MaxLen, TeDHandle id){
char msg[40];
wm_sprintf(msg,"TX Handler: %d\n\r", a);
adl_atSendResponse ( ADL_AT_UNS, msg);
}
u16 DataRXHandler (u16 DataLen, u8 * Data, TeDHandle id){
char msg[20];
char Saida[10];
adl_atSendResponse ( ADL_AT_UNS, "RX Handler: ");
wm_sprintf(msg,"%c", *Data);
adl_atSendResponse ( ADL_AT_UNS, msg);
adl_atSendResponse ( ADL_AT_UNS, "\n\r");
if (!wm_strncmp(msg,"0",1)){
adl_atSendResponse ( ADL_AT_UNS, "Opa!!!\n\r");
wm_strcpy(Saida,"G");
ed_SendDataExt(Saida,1,TRUE,ED_ID_TCPSOCKET_1);
}
}
void TCPHandler (s32 ResponseCode, TeDHandle id){
char msg[20];
adl_atSendResponse ( ADL_AT_UNS, "TCP Socket Handler: ");
sprintf(msg,"%d",ResponseCode);
adl_atSendResponse ( ADL_AT_UNS, msg);
adl_atSendResponse ( ADL_AT_UNS, "\r\n");
//Tratamento dos eventos de retorno
switch(ResponseCode)
{
case ED_INFO_WAITING_FOR_DATA:
adl_tmrSubscribe ( TRUE, 30, ADL_TMR_TYPE_100MS, HelloWorld_TimerHandler );
break;
}
}
void GPRSTimerHandler (u8 timerId){
s8 sreturnCode = ERROR;
ed_dialupGenInfos_t * Infos;
adl_atSendResponse ( ADL_AT_UNS, "GPRS Link: ");
ed_DialupGetGeneralInformations(&Infos);
adl_atSendResponse ( ADL_AT_UNS, "gg" );
}
void DialupHandler(s32 ResponseCode){
char msg[20];
s8 sreturnCode = ERROR;
switch (ResponseCode){
case ED_OK_GPRS_SESSION_SET: //GPRS conectado
adl_atSendResponse ( ADL_AT_UNS, "ED_OK_GPRS_SESSION_SET\n\r");
//adl_tmrSubscribe(TRUE,20,ADL_TMR_TYPE_100MS,GPRSTimerHandler);
sreturnCode = ed_SocketSetConfig(ED_ID_TCPSOCKET_1,&ParamsSocket);
if(sreturnCode==0){
//TCP Socket configurado
adl_atSendResponse ( ADL_AT_UNS, "TCP Socket configurado com sucesso\n\r");
sreturnCode = ERROR;
sreturnCode = ed_SocketTCPStart(ED_ID_TCPSOCKET_1,0,TCPHandler,DataRXHandler,DataTXHandler);
if(sreturnCode == 0){
adl_atSendResponse ( ADL_AT_UNS, "TCP Ok\r\n");
}else{
adl_atSendResponse ( ADL_AT_UNS, "Falha TCP: ");
switch (sreturnCode){
case ED_ERR_INVALID_ARG:
adl_atSendResponse ( ADL_AT_UNS, "ED_ERR_INVALID_ARG\r\n");
break;
default:
adl_atSendResponse ( ADL_AT_UNS, "Demais erros\r\n");
break;
}
}
}else{
//Falha na configuracao do Socket TCP
adl_atSendResponse ( ADL_AT_UNS, "Falha na configuracao do Socket TCP: ");
sprintf(msg,"%d",sreturnCode);
adl_atSendResponse ( ADL_AT_UNS, msg);
}
break;
default:
adl_atSendResponse ( ADL_AT_UNS, "Falha no link GPRS\n\r");
break;
}
}
void TimerHandler(u8 timerid){
char msg[20];
s8 sreturnCode;
sreturnCode = ed_DialupConnectionStart(DialupHandler);
if(sreturnCode == 0){
//GPRS Conectado
adl_atSendResponse ( ADL_AT_UNS, "GPRS Online\n\r");
}else{
//Falha na conexao GPRS
adl_atSendResponse ( ADL_AT_UNS, "GPRS Error: ");
sprintf(msg,"%d",sreturnCode);
adl_atSendResponse ( ADL_AT_UNS, msg);
}
}
bool GPRSHandler(adl_atResponse_t *paras){
s8 sreturnCode = ERROR;
char msg[20];
//adl_atSendResponse ( ADL_AT_UNS, paras->StrData);
if( !wm_strncmp(paras->StrData,"\r\nOK",4)){
//Comando AT+CGATT executado com sucesso
sreturnCode = ed_GprsSetConfig(&ParamsGPRS);
if (sreturnCode == 0){
//Parametros OK
adl_atSendResponse ( ADL_AT_UNS, "GPRS parameters are ok\n\r");
adl_tmrSubscribe(FALSE,10,ADL_TMR_TYPE_100MS,TimerHandler);
}else{
//Parametros com erro
adl_atSendResponse ( ADL_AT_UNS, "Errors trying to send GPRS parameters: ");
sprintf(msg,"%d",sreturnCode);
adl_atSendResponse ( ADL_AT_UNS, msg);
}
}else{
//Erro ao tentar usar o comando AT+CGATT
adl_atSendResponse ( ADL_AT_UNS, "Connection failed\n\r");
}
return TRUE;
}
void GPRSConnection (){
adl_atSendResponse ( ADL_AT_UNS, "Openning GPRS connection...");
adl_atCmdCreate("AT+CGATT=1",TRUE,GPRSHandler,"*",NULL);
}
/***************************************************************************
Function : SimCard
----------------------------------------------------------------------------
Description: Display the SimCard Events
----------------------------------------------------------------------------
Variable Name |IN |OUT|GLB| Utilisation
----------------------+---+---+---+-----------------------------------------
Event | | | | Sim Card Events
----------------------+---+---+---+-----------------------------------------
****************************************************************************/
void SimCard (u8 Event){
switch(Event){
//Normal Events
case ADL_SIM_EVENT_PIN_OK:
adl_atSendResponse ( ADL_AT_UNS, "PIN Code Ok\n\rConnecting...\n\r");
break;
case ADL_SIM_EVENT_REMOVED:
adl_atSendResponse ( ADL_AT_UNS, "SimCard Removed\n\r");
break;
case ADL_SIM_EVENT_INSERTED:
adl_atSendResponse ( ADL_AT_UNS, "SimCard Inserted\n\r");
break;
case ADL_SIM_EVENT_FULL_INIT:
adl_atSendResponse ( ADL_AT_UNS, "Modem on-line !\n\r");
GPRSConnection(); // Start the GPRS connection
break;
//Error Events
case ADL_SIM_EVENT_PIN_ERROR:
adl_atSendResponse ( ADL_AT_UNS, "PIN Code Incorreto\n\r");
break;
/*Erro quando se e necessario inserir o PIN Code.
Por comandos AT, insera o PIN Code usando
AT+CPIN="xxxx", onde xxxx e o codigo de 4 digitos*/
case ADL_SIM_EVENT_PIN_WAIT:
adl_atSendResponse ( ADL_AT_UNS, "Enter the PIN Code\n\r");
break;
}
}
/***************************************************************************
Function : adl_main
----------------------------------------------------------------------------
Description: Main function
----------------------------------------------------------------------------
Variable Name |IN |OUT|GLB| Utilisation
----------------------+---+---+---+-----------------------------------------
InitType | | | | Application start mode reason
----------------------+---+---+---+-----------------------------------------
****************************************************************************/
void adl_main ( adl_InitType_e InitType )
{
s8 sreturnCode;
u8 Teste;
char msg[20];
adl_atSendResponse ( ADL_AT_UNS, "TCP Socket Application\n\r");
TRACE (( 1, "Embedded Application : Main" ));
//Sim Card handler
adl_simSubscribe(SimCard,NULL);
sreturnCode = ed_Init(); //IP libraries inicialization
Config(); // Config the GPRS/TCP socket parameters
}
Hi gmnvh
Your sample will be very important to me
Hi gmnvh,
I am trying your code, I have opened a new project with Open At Project Wizard and after I have copied in appli.c your code.
But when I compile I read this error:
c:\Ex2\src\appli.c(18): fatal error C1083: “ed_gprs.h”: No such file or directory
I think that this error depends on one bad setting of my Visual C++.Net
Can you help me on the relative setting please?
ThanKs
Have you checked that the ed_gprs.h file is actually present on your hard drive?
Note that ed_gprs.h is the very first of the TCP/IP files included by the code:
/**************************************************************************
PI Componentes - Gustavo Nunes
***************************************************************************/
/**************************************************************************
File : Appli.c
---------------------------------------------------------------------------
Data Criacao : 20-Out-2005
Ult. Modif. : 29-Out-2005
Descricao : Abre conexao TCP
***************************************************************************/
#include "adl_global.h"
#include "ed_gprs.h"
#include "ed_dialup.h"
#include "ed_smtp.h"
#include "ed_msgcodes.h"
#include "ed_socket.h" // For "TCP Socket" functions
#include "ed_common.h" // For "ed_Init" function
Do you actually have the TCP/IP add-on?
Are you sure that it’s installed properly?
On my installation, they are in the C:\OpenAT\OtherLibs\TCPIP\v3.03\inc folder
Hi all,
I think to have resolved the problem.
I have controlled and after I have set up the property of my project in visual C++.Net.
I do not know if the procedure is corrected but I have executed the debug
Hi and thanks
Hi all,
Anyway…here is the procedure to add the TCP/IP library on Open At 3.10.
On “Open At Project Wizard” there is a field called “wmnew script additional options:”. Put the following text there:
-otherlib TCPIP
If you are doing that in an existing project do not forget to use Build All to compile the project.
Rgds,
Gus
Hi gmnvh,
A last question about "-otherlib TCPIP ":
It is valid for target mode too ?
Hi and thanks very much
Yeah man…U can add it to your project and compile for Debug and Target mode…
As I said, just remeber to use Rebuild All (just at the first time) if you add the library in a existing project…
Gus