sending host for gprs
#include "D:\Adnan\GeneratorTM\C Source\1GTM.h"
#include "EXT_EE.c"
#include <float.h>
#include <stdlib.h>
#include <string.h>
#define CR 0x0D
#define c1E pin_e0
#define c2E pin_e1
#define DDin PIN_E2
void checkTime(void);
int1 resetModem(void);
int waitResponse(unsigned int16);
int sendData(void);
void getDataStr(void);
void reConnect(void);
void getWarSettings(void);
void setWarSettings(void);
void checkCommand();
void storeData_ExtE();
int1 modemResponding(void);
void hardResetModem();
void softResetModem();
void sendPING();
void readFreq();
int1 timeUpdatedFlg=0,warFlg=0, nMeFlg = 0, gprsCFLG = 0,tSyncFlg = 0,timeoutFlg=0,sendFlg=0,pingFlg=0;
char buf[240];
char sOK[] = {"OK"};
char sER[] = {"ERROR"};
char sCON[] = {"CONNECT OK"};
char sSen[] = {"SEND OK"};
char Servertime[] = {"01/01/01,12/00/00+00\0"};
Char CTime[]={"01/01/01,12/00/00+00\0"};
Char sACon[] = {"ALREADY CONNECT"};
Char nMe[] = {"88888888888888\0"}; //00923014217397
char dtstr[200]={"$D,"};
char IP[] = {"117.102.61.106\0"};
unsigned long dData = 0;
unsigned long aData[16],LWarLevel[16],HWarLevel[16];
unsigned long dWar,aWarL,aWarH,dWarEnabled=0,aWarEnabledL=0,aWarEnabledH=0;
int8 Index , RESFLG = 1, gprsConnected = 0,resetTries=0,pingTries=0,NforPINg=0; //Index variable for GSM response string
unsigned long Timeout = 1500,ExtE_Pointer,freq=0;
//void checkResponse(char*); //17 time interrupt = 1 min = 3.4sec * 17 = 57.8 >> +-2.2sec
/*#int_RTCC
void RTCC_isr(void)
{
aTS++;
}
*/
#INT_RDA
void RDA_isr(void)
{
INT C[2];
// disable_interrupts(INT_RDA);
Index = 0;
if(timeoutFlg==0 || TIMEOUT>31000){
timeout = 1500;
}
if(resFlg==0){
do
{
if (kbhit())
{
buf[index] = fgetc(GSM);
index++;
}
delay_ms(1);
TIMEOUT--;
}while(TIMEOUT > 0 && TIMEOUT < 31000 && index<220);
BUF[INDEX]='\0';
resflg = 1;
if(buf[2]=='+' && buf[3]=='C' && buf[4]=='P' && buf[5]=='B' && buf[6]=='R'){
if(strLen(buf)>20){
nME[0] = buf[12];//0
nME[1] = buf[13];//0
nME[2] = buf[14];//9
nME[3] = buf[15];//2
nME[4] = buf[16];//3
nME[5] = buf[17];//0
nME[6] = buf[18];//1
nME[7] = buf[19];//4
nME[8] = buf[20];//2
nME[9] = buf[21];//1
nME[10] = buf[22];//7
nME[11] = buf[23];//3
nME[12] = buf[24];//9
nME[13] = buf[25];//7
nME[14] = '\0';
nMeFlg = 1;
}else{
nMeFlg = 0;
}
}else if(buf[0]=='$' && buf[1] == 'R' && buf[2] == '1'){
ServerTime[0] = buf[4];ServerTime[1] = buf[5];ServerTime[2] = buf[6];
ServerTime[3] = buf[7];ServerTime[4] = buf[8];ServerTime[5] = buf[9];
ServerTime[6] = buf[10];ServerTime[7] = buf[11];ServerTime[8] = buf[12];
ServerTime[9] = buf[13];ServerTime[10] = buf[14];ServerTime[11] = buf[15];
ServerTime[12] = buf[16];ServerTime[13] = buf[17];ServerTime[14] = buf[18];
ServerTime[15] = buf[19];ServerTime[16] = buf[20];ServerTime[17] = buf[21];
serverTime[18] = buf[22];servertime[19] = buf[23];serverTime[20]='\0';
gprsCFlg = 1;
}else if(buf[0]=='$' && buf[1] == 'R' && buf[2] == '0'){
gprsCFlg = 0;
}
}
if (kbhit())
{
c[0] = fgetc(GSM);
}
//enable_interrupts(INT_RDA);
}
void main()
{
setup_adc( ADC_CLOCK_INTERNAL );
setup_adc_ports (RA0_ANALOG);
set_adc_channel(0);
setup_psp(PSP_DISABLED);
setup_spi(SPI_SS_DISABLED);
setup_wdt(WDT_OFF);
setup_timer_0 (RTCC_DIV_2|RTCC_EXT_L_TO_H);
setup_timer_1(T1_EXTERNAL|T1_DIV_BY_1);
setup_timer_2(T2_DISABLED,0,1);
setup_timer_3(T3_DISABLED|T3_DIV_BY_8);
init_ext_eeprom();
enable_interrupts(INT_RTCC);
enable_interrupts(INT_RDA);
enable_interrupts(GLOBAL);
set_Tris_C(0b10101101);
set_rtcc(0);
delay_ms(200);
getWarSettings();
fprintf(PGM,"START........\r");
DELAY_MS(1000);
resFlg = 0;
WHILE(GPRSCONNECTED == 0){
resetModem();
DELAY_MS(1000);
IF(!GPRSCONNECTED)
fprintf(PGM,"GPRS CONNECION FAILD !!\r");
}
fprintf(PGM,"GPRS CONNECTED OK $$\r");
delay_ms(1000);
// TODO: USER CODE!!
while(1){
getDataStr();
if(resFlg==1)
{
checkCommand();
fprintf(PGM,"STR = %S\r",BUF);
resFLG = 0;
}
if(WarFlg==1 || sendFlg == 1){
timeUpdatedFlg=0;
fprintf(GSM,"AT+CCLK?\r");
waitResponse(2000);
if(resFlg==1)
{
checkCommand();
resFLG = 0;
}
if(timeUpdatedFlg==1){
if(pingFlg==0){
storeData_EXTE();
}else{
pingFlg=0;
}
if(sendData()==0){
fprintf(PGM,"D-: Data Send Error..Modem Reconnecting Now\r");
reConnect();
if(gprsConnected !=1 || gprsCflg !=1){
fprintf(PGM,"D-: Modem Reconnect Error..Rest Modem\r");
resetModem();
}
}
}else if(ModemResponding()==0){
hardResetModem();
}
}
}
}//main()
int1 modemResponding(){
CHAR ctrlZ = 26;
fprintf(GSM,"AT\r");
waitResponse(1000);
fprintf(GSM,"+++%c",ctrlZ);
waitResponse(2000);
fprintf(GSM,"AT\r");
resFlg=0;
if(waitResponse(1000)==1){
return 1;
}else{
return 0;
}
}
void hardResetModem(){
fprintf(PGM,"D-: Modem Hard Reset Required...\r");
}
/*void checkTime(){ // ats = 17 equal to one minute, this method set the hours and minutes
if (aTS>15){
aTS = 0;
aTM ++;
if(aTM>59){
aTM = 0;
aTH++;
}
if(gRunningFLG==1){ // if generator running
rTM ++;
if(rTM>59){
rTM = 0;
rTH++;
}
}
}
}//checkTime()
*/
void reconnect(void){
CHAR C=34,ctrlZ = 26;
int resp=-1;
gprsconnected = 0;
gprsCflg = 0;
fprintf(GSM,"AT+CIPSTART=%Ctcp%C,%C%S%C,%C1001%C\r",c,c,c,ip,c,c,c);
RESFLG=0;
resp = waitresponse(30000);
if(resp!=5){ //not already connected then
if(resp==3 || resp==0 ){
fprintf(GSM,"AT+CIPSEND\r\n");
RESFLG=0;
waitResponse(1000);
if(nMEflG==1){
fprintf(GSM,"$REGISTER:%S*%C",nME,ctrlZ);
RESFLG=0;
if(waitResponse(2000)==4){
RESFLG=0;
waitResponse(6000);
if(gprsCFlg == 1){
gprsConnected = 1;
fprintf(GSM,"AT+CCLK=%C%S%C\r",c,ServerTime,c);
tSyncFlg=1;
resFlg=0;
waitResponse(2000);
}
}
}
}
}else{
gprsConnected = 1;
gprsCflg=1;
}
}
int1 resetModem(void){
CHAR C=34,ctrlZ = 26;
GPRSCONNECTED=0;
gprsCflg = 0;
if(resetTries>5){
resetTries = 0;
if(ModemResponding()==0){
hardResetModem();
}
}
resFlg=0;
fprintf(GSM,"ATE0\r");
waitResponse(1000);
fprintf(PGM,"ATE0 = %S\r",BUF);
fprintf(GSM,"+++%c",ctrlZ);
waitResponse(1000);
fprintf(PGM,"+++Z = %S\r",BUF);
fprintf(GSM,"AT+CIPSHUT\r");
waitResponse(3000);
fprintf(PGM,"CIPSHUT = %S\r",BUF);
fprintf(GSM,"AT\r");
waitResponse(1000);
fprintf(PGM,"AT = %S\r",BUF);
fprintf(GSM,"ATD 1;\r");
RESFLG=0;
waitResponse(10000);
fprintf(PGM,"ATD = %S\r",BUF);
RESFLG = 1;
fprintf(GSM,"ATh\r");
waitResponse(1000);
fprintf(PGM,"ATH = %S\r",BUF);
fprintf(GSM,"AT\r");
waitResponse(1000);
fprintf(PGM,"AT = %S\r",BUF);
RESFLG = 1;
fprintf(GSM,"ATE0\r");
waitResponse(2000);
fprintf(PGM,"ATE = %S\r",BUF);
fprintf(GSM,"AT+CPBR=1\r");
RESFLG=0;
waitResponse(2000);
fprintf(PGM,"CPBR = %S\r",BUF);
if(NmeFlg==0){
fprintf(PGM,"Error: Owner number not found\r");
return 0;
}
fprintf(GSM,"AT\r");
resFlg=0;
if(waitResponse(1000)==1){
fprintf(GSM,"AT+CGDCONT=1,%CIP%C,%CINTERNET%C\r",c,c,c,c);
RESFLG=0;
if(waitResponse(3000)==1){
fprintf(PGM,"D+: CGDCONT OK\r");
fprintf(GSM,"AT+CSTT=%CINTERNET%C,%CTelenor%C,%CTelenor%C\r",c,c,c,c,c,c);
RESFLG=0;
if(waitResponse(3000)==1){
fprintf(PGM,"D+: CSTT OK\r");
fprintf(GSM,"AT+CIICR\r");
RESFLG=0;
if(waitResponse(10000)==1){
fprintf(PGM,"D+: CIICR OK\r");
fprintf(GSM,"AT+CIFSR\r");
RESFLG=0;
if(waitResponse(3000)!=2){
fprintf(PGM,"D+: CIFSR OK\r");
fprintf(GSM,"AT+CIPSTART=%Ctcp%C,%C%S%C,%C1001%C\r",c,c,c,ip,c,c,c);
RESFLG=0;
if(waitResponse(20000)==3){
fprintf(PGM,"D+: CIPSTARTED CONNECTION OK\r");
fprintf(GSM,"AT+CIPSEND\r");
RESFLG=0;
waitResponse(1000);
if(nMEflG==1){
fprintf(GSM,"$REGISTER:%S*%C",nME,ctrlZ);
RESFLG=0;
if(waitResponse(2000)==4){
RESFLG=0;
waitResponse(5000);
if(gprsCFlg == 1){
gprsConnected = 1;
fprintf(GSM,"AT+CCLK=%C%S%C\r",c,ServerTime,c);
tSyncFlg=1;
resFlg=0;
waitResponse(2000);
fprintf(PGM,"D+: TIME SYCHRONIZED:1\r");
}
}else{
fprintf(GSM,"$REGISTER:%S*%C",nME,ctrlZ);
RESFLG=0;
if(waitResponse(2000)==4){
RESFLG=0;
waitResponse(5000);
if(gprsCFlg == 1){
gprsConnected = 1;
fprintf(GSM,"AT+CCLK=%C%S%C\r",c,ServerTime,c);
tSyncFlg=1;
resFlg=0;
waitResponse(2000);
fprintf(PGM,"D+: TIME SYCHRONIZED:2\r");
}
}else{
fprintf(GSM,"$REGISTER:%S*%C",nME,ctrlZ);
RESFLG=0;
if(waitResponse(2000)==4){
RESFLG=0;
waitResponse(5000);
if(gprsCFlg == 1){
gprsConnected = 1;
fprintf(GSM,"AT+CCLK=%C%S%C\r",c,ServerTime,c);
tSyncFlg=1;
resFlg=0;
waitResponse(2000);
fprintf(PGM,"D+: TIME SYCHRONIZED:3\r");
}
}else{
fprintf(GSM,"$REGISTER:%S*%C",nME,ctrlZ);
RESFLG=0;
if(waitResponse(2000)==4){
RESFLG=0;
waitResponse(5000);
if(gprsCFlg == 1){
gprsConnected = 1;
fprintf(GSM,"AT+CCLK=%C%S%C\r",c,ServerTime,c);
tSyncFlg=1;
resFlg=0;
waitResponse(2000);
fprintf(PGM,"D+: TIME SYCHRONIZED:4\r");
}
}else{
gprsConnected = 0;
}
}
}
}
}
}
}
}
}
}
}
if (gprsconnected==1){
return 1;
}else{
resetTries++;
return 0;
}
}
int waitResponse(unsigned int16 t){
int16 i=0,J=0;
int r;
TIMEOUT = T;
timeoutFlg = 1;
FOR(J=0;J<T;J++){
I=0;
while(i<1000 && TIMEOUT>0){
// delay_US(1);
i++;
}
}
r = 0 ;
if(Strstr(Buf,sAcon)>0){
r = 5;
}else if(STRstr(BUF,sSen)>0){
r = 4;
}else if(STRstr(BUF,SCON)>0){
r = 3;
}else if(STRstr(BUF,SER)>0){
r = 2;
}else if(STRstr(BUF,SOK)>0){
r = 1;
}
if(resFlg == 1 && r>0 ){
return r;
}else{
return 0;
}
}
int sendData(){
CHAR ctrlZ = 26;
fprintf(GSM,"AT\r");
waitResponse(1000);
fprintf(GSM,"AT+CIPSEND\r");
RESFLG=0;
waitResponse(1000); // no error.
fprintf(GSM,"%s",dtstr);
waitResponse(200);
RESFLG=0;
fprintf(GSM,"%c",ctrlZ);
fprintf(GSM,"%c",ctrlZ);
fprintf(GSM,"%c",ctrlZ);
if(waitResponse(5000)==4){
resflg = 1;
fprintf(GSM,"AT\r");
waitResponse(1000);
sendFlg = 0;
return 1;
}
return 0;
}
void storeData_ExtE(){
// timeUpdateFlg=0;
unsigned long addr=0,eAddr=0;
unsigned int sAddr=0,i=0;
fprintf(PGM,"%s\r",dtstr);
fprintf(PGM,"len = %ld\r",strLen(dtstr));
if(EXTE_Pointer < 230){
sAddr = 0b10100000;
addr = EXTE_Pointer * 140;
}else if(EXTE_Pointer < 460){
sAddr = 0b10100010;
addr = (EXTE_Pointer-230)* 140;
}else if(EXTE_Pointer < 690){
sAddr = 0b10100100;
addr = (EXTE_Pointer-460)* 140;
}else if(EXTE_Pointer < 920){
sAddr = 0b10100110;
addr = (EXTE_Pointer-690)* 140;
}else{
sAddr = 0b10100000;
EXTE_Pointer = 0;
addr = 0;
}
for(eAddr=addr;eAddr<addr+140;eAddr++)
{
write_ext_EEprom(eAddr,sAddr,dtStr);
delay_ms(5);
i++;
}
EXTE_Pointer++;
write_eeprom(254,make8(ExtE_Pointer,0));
write_eeprom(255,make8(ExtE_Pointer,1));
fprintf(PGM,"EXTE_Pointer = %lu\r",Exte_Pointer);
warFlg=0;
}
void getDataStr(){
unsigned int16 aData[16],cDwar=0,cAWarl=0,cAWarh=0,j=0;
unsigned int32 atemp;
int8 i,pins,genStatus = 5;
char astarik[3]={"*\0"};
char comma[3]={",\0"};
char tString[6];
dtstr[0]='$';
dtstr[1]='D';
dtstr[2]=',';
dtstr[3]='\0';
strcat(dtStr,nMe);
strcat(dtStr,comma);
readFreq();
if (Freq > 25){
genStatus = 0; //generator running
}else{
genStatus = 1;
}
itoa(genStatus,10,tString);
strcat(dtStr,tString);
strcat(dtStr,comma);
warFlg = 0;
output_low(c1e);
output_high(c2e);
dData=0;
delay_us(100);
for(pins=0;pins<16;pins++){
output_d(pins);
delay_us(25);
if(input(dDin)){
bit_set(dData,pins);
}else{
bit_clear(dData,pins);
}
// fprintf(PGM,"d[%d] = %d\r",pins,input(dDin));
}
itoa(dData,10,tString);
strcat(dtStr,tString);
strcat(dtStr,comma);
output_low(c2e);
output_high(c1e);
delay_ms(1);
for(pins=0;pins<16;pins++){
output_d(pins);
atemp=0;
for(j=1;j<=1000;j++){
delay_us(50);
atemp += read_adc();
}
aData[pins] = atemp/1000;
itoa(aData[pins],10,tString);
strcat(dtStr,tString);
strcat(dtStr,comma);
// fprintf(PGM,"a[%d] = %ld\r",pins,adata[pins]);
}
// fprintf(PGM,"war checking---\r");
for(i=0;i<16;i++){
if(bit_test(dWarEnabled,i)){
if(bit_test(dData,i) == 0){ // condition normally open/high
bit_set(cdwar,i);
// fprintf(pgm,"dwarning = %d\r",i);
}
}
}
for(i=0;i<16;i++){
if(bit_test(aWarEnabledL,i)){
if(aData<= LwarLevel){
bit_set(cAWarL,i);
// fprintf(PGM,"aLwarning = %d\r",i);
}
}
if(bit_test(aWarEnabledH,i)){
if(aData>= hwarLevel){
bit_set(cAWarH,i);
// fprintf(PGM,"aHwarning = %d\r",i);
}
}
}
if((dwar != cDwar)||(aWarL != cAwarL)||(aWarH != cAwarH)){
warFlg=1;
dWar = cDwar;
aWarL = cAwarL;
aWarH = cAwarH;
itoa(cdWar,10,tString);
strcat(dtStr,tString);
strcat(dtStr,comma);
itoa(caWarL,10,tString);
strcat(dtStr,tString);
strcat(dtStr,comma);
itoa(caWarH,10,tString);
strcat(dtStr,tString);
strcat(dtStr,comma);
readFreq();
itoa(Freq,10,tString);
strcat(dtStr,tString);
strcat(dtStr,comma);
strcat(dtStr,Astarik);
fprintf(PGM,"State Change or warning is there...\r%s\r",dtstr);
}else{
fprintf(PGM,"No warning is there....\r");
warFlg=0;
cDwar=0;
cAwarL=0;
CAwarH=0;
itoa(cdWar,10,tString);
strcat(dtStr,tString);
strcat(dtStr,comma);
itoa(caWarL,10,tString);
strcat(dtStr,tString);
strcat(dtStr,comma);
itoa(caWarH,10,tString);
strcat(dtStr,tString);
strcat(dtStr,comma);
readFreq();
itoa(Freq,10,tString);
strcat(dtStr,tString);
strcat(dtStr,comma);
strcat(dtStr,Astarik);
nforPing++;
if (nforPing > 6){
nforPing = 0;
sendPING();
sendFlg=1;
}
}
}
void setWarSettings(void){
unsigned int8 EEaddr=0;
char term[3], *ptr;
int i=0;
long val=0;
strcpy(term,",;");
ptr = strtok(buf,term);
ptr = strtok(0, term);
if(ptr!=0){
dwarEnabled = atol(ptr);
fprintf(PGM,"dwar = %ld\r",dwarEnabled);
ptr = strtok(0, term);
while(ptr!=0 && *ptr!=42){
i = atoi(ptr);
fputs(ptr,PGM);
ptr = strtok(0, term);
val = atol(ptr);
if(val>0){
bit_set(awarEnabledL,i);
LwarLevel = val;
fprintf(PGM,"L %d=%ld\r",i,val);
}else{
bit_clear(awarEnabledL,i);
LwarLevel = val;
fprintf(PGM,"L %d=%ld\r",i,val);
}
ptr = strtok(0, term);
val = atol(ptr);
if(val>0){
bit_set(awarEnabledH,i);
HwarLevel = val;
fprintf(PGM,"H %d=%ld\r",i,val);
}else{
bit_clear(awarEnabledH,i);
HwarLevel = val;
fprintf(PGM,"H %d=%ld\r",i,val);
}
ptr = strtok(0, term);
}
}
EEaddr = 0;
write_eeprom(EEaddr,make8(dwarEnabled,0));
write_eeprom(EEaddr+1,make8(dwarEnabled,1));
delay_ms(5);
EEaddr+=2;
write_eeprom(EEaddr,make8(awarEnabledL,0));
write_eeprom(EEaddr+1,make8(awarEnabledL,1));
delay_ms(5);
EEaddr+=2;
write_eeprom(EEaddr,make8(awarEnabledH,0));
write_eeprom(EEaddr+1,make8(awarEnabledH,1));
for(i = 0;i<16;i++){
delay_ms(5);
EEaddr+=2;
write_eeprom(EEaddr,make8(LwarLevel,0));
write_eeprom(EEaddr+1,make8(LwarLevel,1));
}
for(i = 0;i<16;i++){
delay_ms(5);
EEaddr+=2;
write_eeprom(EEaddr,make8(HwarLevel,0));
write_eeprom(EEaddr+1,make8(HwarLevel,1));
}
fprintf(pgm,"New warning settings have been programmed.\r");
}
void checkCommand(){
if(buf[0]=='$' && buf[1] == 'W' && buf[2] == 'S'){
setWarSettings();
}else if(buf[2]=='+' && buf[3]=='C' && buf[4]=='C' && buf[5]=='L' && buf[6]=='K'){
Ctime[0] = buf[10];Ctime[10] = buf[20];
Ctime[1] = buf[11];Ctime[11] = buf[21];
Ctime[2] = buf[12];Ctime[12] = buf[22];
Ctime[3] = buf[13];Ctime[13] = buf[23];
Ctime[4] = buf[14];Ctime[14] = buf[24];
Ctime[5] = buf[15];Ctime[15] = buf[25];
Ctime[6] = buf[16];Ctime[16] = buf[26];
Ctime[7] = buf[17];Ctime[17] = buf[27];
Ctime[8] = buf[18];Ctime[18] = buf[28];
Ctime[9] = buf[19];Ctime[19] = buf[29];
Ctime[20] = '\0';
strcat(dtStr,Ctime);
timeUpdatedFlg=1;
}else if(buf[0]=='$' && buf[1] == 'Q' && buf[2] == '-' && buf[3] == '1'){
sendFlg=1;
}else if(buf[0]=='$' && buf[1] == 'Q' && buf[2] == '-' && buf[3] == '2'){
sendFlg=1;
}else if(buf[0]=='$' && buf[1] == 'Q' && buf[2] == '-' && buf[3] == '3'){
sendFlg=1;
}
}
void getWarSettings(){//setting from eeprom.
int EEaddr=0,i;
dWarEnabled = make16(read_eeprom(EEaddr+1),read_eeprom(EEaddr));
fprintf(PGM,"ee1 = %lu\r",dwarEnabled);
EEaddr+=2;
aWarEnabledL = make16(read_eeprom(EEaddr+1),read_eeprom(EEaddr));
fprintf(PGM,"ee2 = %lu\r",awarEnabledL);
EEaddr+=2;
aWarEnabledH = make16(read_eeprom(EEaddr+1),read_eeprom(EEaddr));
fprintf(PGM,"ee3 = %lu\r",awarEnabledH);
for(i=0;i<16;i++){
EEaddr+=2;
LWarLevel = make16(read_eeprom(EEaddr+1),read_eeprom(EEaddr));
fprintf(PGM,"Lee[%d] = %lu\r",i,LwarLevel);
}
for(i=0;i<16;i++){
EEaddr+=2;
HWarLevel = make16(read_eeprom(EEaddr+1),read_eeprom(EEaddr));
fprintf(PGM,"Hee[%d] = %lu\r",i,HwarLevel);
}
EEaddr = 254;
ExtE_Pointer = make16(read_eeprom(EEaddr+1),read_eeprom(EEaddr));
fprintf(PGM,"Exte_pointer = %lu\r",ExtE_Pointer);
if(ExtE_Pointer > 1000){
ExtE_Pointer = 0;
write_eeprom(EEaddr,make8(ExtE_Pointer,0));
write_eeprom(EEaddr+1,make8(ExtE_Pointer,1));
}
}
///////////////////////////////
void sendPING(){
CHAR ctrlZ = 26;
int res=0;
dtstr[0]='$';
dtstr[1]='P';
dtstr[2]='I';
dtstr[3]='N';
dtstr[4]='G';
dtstr[5]='*';
dtstr[6]='\0';
PINGFlg=1;
/* resFlg = 0;
fprintf(GSM,"AT\r");
waitResponse(1000);
fprintf(GSM,"AT+CIPSEND\r");
RESFLG=0;
waitResponse(1000); // no error.
fprintf(GSM,"%s",dtstr);
waitResponse(200);
RESFLG=0;
fprintf(GSM,"%c",ctrlZ);
res = waitResponse(5000);
fprintf(PGM,"d: PINGSEND = %s\r",buf);
if(res !=4 && pingTries<4){
pingTries++;
resflg = 0;
fprintf(GSM,"AT\r");
waitResponse(1000);
}else if(res==4){
fprintf(PGM,"D+: PING Sent OK.\r");
pingtries = 0;
resflg=0;
fprintf(GSM,"AT\r");
//waitResponse(10000);
}else{
sendFlg=1;
}
resFlg = 0;
*/
}
void readFreq(){
long i=0;
SET_TIMER1(0);
for(i=1;i<1000;i++){
delay_ms(1);
}
freq = GET_TIMER1();
//fPRINTF(PGM,"F = %LD\r",freq);
}