Передача данных через GPRS

M

mousefish

Guest
Привет,
Я использую dspic30 ПИК контроллер и хотели бы его интерфейс с GPRS модуль для отправки и получения данных на сервере через HTTP протокол.Я могу подключиться к серверу с помощью АТ-команд.Я хочу спросить, как я буду иметь возможность передавать и получать данные, после подключения к серверу.Я кодирования на C. Любая помощь оценили.Спасибо.

 
Какой GPRS модуля вы используете>?
Ваш GPRS модуля имеют TCP / IP STACK встроенные?если да, то использование TCP клиент-сервер для передачи данных

 
mousefish писал:

Привет,

Я использую dspic30 ПИК контроллер и хотели бы его интерфейс с GPRS модуль для отправки и получения данных на сервере через HTTP протокол.
Я могу подключиться к серверу с помощью АТ-команд.
Я хочу спросить, как я буду иметь возможность передавать и получать данные, после подключения к серверу.
Я кодирования на C. Любая помощь оценили.
Спасибо.
 
Я также пытается отправить данные для пребывания на GPRS с PIC16F877A.Но я не могу подключиться моем модуль GSM для пребывания.Прежде всего,
я использую гипер терминал на моем компьютере, подключите его с сервера.Можете ли вы показать мне, как вы подключите модуль (или по телефону) с сервера?

Спасибо!

 
Привет всем,

Я также с нетерпением для работы на одно и то же, используя pIC16f877a и SIM300C GSM модем.То, что я хочу сделать, это дистанционное отчетности датчика данных через GPRS на сайт (PHP или любой).

Давайте сделаем Прикрепленная тема для finsh все проблемы, касающиеся передачи данных между ПК и микроконтроллера через GPRS.будет никому опытные помогают нам ..?

 
Привет cuongbkedu,

на мили, я использую IWOW TR800 модуль, который имеет bulit в TCP / IP стека.Он также имеет встроенный в команды, чтобы помочь соединиться с сервером, используя протокол TCP.

Для
М. И., я использовал эти команды установить TCP-соединение, после чего я установил модуль для работы в режиме данных, так что все данные, переданные в модуле отправляется на сервер.

Если вы работаете на HTTP-сервер, вам необходимо придерживаться HTTP протоколам, как, используя GET, POST метода.Выполнить поиск по протоколам HTTP для примера.

На стороне сервера, сервлеты или CGI скриптов могут быть использованы для получения данных,
в зависимости от уровня доступа к серверу вы используете.

Надеюсь, что это помогает мало.

 
Ok дорогого,

Я использовал SIM300C модуль с HyperTerminal на одном компьютере и используется TCP терминала на другой, который подключен к Интернету.Я использовал на команды GPRS для передачи данных от модема к другим ПК по нему IP-адрес, и результаты были ОК, данные получает ОК.
Если какие-то нужны подробности до этого момента PLZ спросить.,

Теперь мой следующий шаг заключается в том, чтобы сделать генератор телеметрические системы на основе ПОС, микро-и SIM300C.Я с нетерпением ожидаю иметь мнение у вас люди на architechutre этой системы.

Что я имею в моей голове.

Я develpe ПК стороне серверного программного обеспечения в VB, который будет прослушивать все генераторы данных через порт Tcpip и хранить данные в соответствующих databasiss.в то время как на стороне клиента приложения смогут увидеть указанного генератора данных с помощью этой базы данных.

Пожалуйста, выдвинутые вашего мнения о том, что должен быть способ для достижения максимальной эффективности работы системы.

На стороне компьютера я awear только в VB6.Если кто-то заинтересован в работе над этим проектом со мной, может мне час.

Привет

 
Дорогой Дани,
эта нить звук интересно мне Gimme могли бы вы немного подробнее о приложениях?Что такое цена за модуль?

Я разработки геомонторинга автоматических приборов, которые должны иметь IP подключения затем может быть этот модуль следует использовать для этой задачи.
То, что я думаю, это откроет GPRS / GSM связи, а затем используют протокол HTTP для обмена данными с модулем.В настоящее время я использую простой GPRS / GSM модем сделать все задачи, и я, используя пользовательский протокол для обмена данными между базовой станции (с программой закодированы в VB) и удаленной установки (которая оснащена встроенный компьютер работает WinXP, программного обеспечения на удаленном модуле также написана с VB).

Tnx
FF ака Powermos

 
"Я использовал SIM300C модуль с HyperTerminal на одном компьютере и используется TCP терминала на другой, который подключен к Интернету. Я использовал на команды GPRS для передачи данных от модема к другим ПК по нему IP-адрес, и результаты были ОК данных получения ОК ".

Дани,

Можете ли вы пост в команды для вашей установки.

Спасибо,
КСП

 
Привет дани,

Я делаю такой же проект.Я хотел бы сообщить B / W удаленном сервере и микроконтроллер с использованием GPRS модема на основе команды.Я, используя
в Motorola C168 мобильный как GPRS модем.Можете ли вы мне, пожалуйста сен программы / команды вы использовали для передачи данных в TCP-сервера с помощью команд в?мой почтовый идентификатор bikramjeet.waraich (AT) gmail.com

Благодаря, в ожидании.

Теплый Regards
Bikramjeet

 
Для imformation о передаче данных между GSM модуль
И серверу через GPRS,
см. мой пост на аналогичный вопрос по адресу: http://www.edaboard.com/viewtopic.php?t=347415&highlight =

 
# включить "D: \ Аднан \ GeneratorTM \ C Источник \ 1GTM.h"
# включить "EXT_EE.c"
# включить <float.h>
# включить <stdlib.h>
# включить <string.h>
# определить CR 0x0D

# определить C1E pin_e0
# определить c2E pin_e1
# определить DDin PIN_E2

checkTime недействительным (недействительными);
int1 resetModem (недействительными);
INT waitResponse (неподписанные int16);
INT sendData (недействительными);
getDataStr недействительным (недействительными);
восстановить недействительным (недействительными);
getWarSettings недействительным (недействительными);
setWarSettings недействительным (недействительными);
недействительным checkCommand ();
недействительным storeData_ExtE ();
int1 modemResponding (недействительными);
недействительным hardResetModem ();
недействительным softResetModem ();
недействительным sendPING ();
недействительным readFreq ();

int1 timeUpdatedFlg = 0, warFlg = 0, nMeFlg = 0, gprsCFLG = 0, tSyncFlg = 0, timeoutFlg = 0, sendFlg = 0, pingFlg = 0;
символ BUF [240];
символ SOK [] = ( "OK");
символ SER [] = ( "ERROR");
символ sCON [] = ( "CONNECT OK");
символ sSen [] = ( "SEND OK");
Servertime символ [] = ( "01/01/01, 12/00/00
00 \ 0");
Букв CTime []={" 01/01/01, 12/00/00
00 \ 0 ");
Букв sACon [] = ( "уже CONNECT");
Букв NMe [] = ( "88888888888888 \ 0") / / 00923014217397
символ dtstr [200 ]={"$ D ");
IP символ [] = ( "117.102.61.106 \ 0");
Неподписанный долго dData = 0;
Неподписанный долго aData [16], LWarLevel [16], HWarLevel [16];
Неподписанный долго dWar, aWarL, aWarH, dWarEnabled = 0, aWarEnabledL = 0, aWarEnabledH = 0;
int8 указатель, RESFLG = 1, gprsConnected = 0, resetTries = 0, pingTries = 0, NforPINg = 0; / / указатель на переменную GSM ответ строкой
Неподписанный долго Timeout = 1500, ExtE_Pointer, частота = 0;

/ / аннулируются checkResponse (символ *) / / 17 раз прерывать = 1 мин = 3.4sec * 17 = 57,8>> -2.2sec/ * # int_RTCC
RTCC_isr недействительным (недействительными)
(
САР ;

)
* /
# INT_RDA
RDA_isr недействительным (недействительными)
(
INT C [2];

/ / Disable_interrupts (INT_RDA);
Индекс = 0;
если (timeoutFlg == 0 | | TIMEOUT> 31000) (
Тайм-аут = 1500;
)

если (resFlg == 0) (
делать
(
если (kbhit ())
(
BUF [индекс] = fgetc (GSM);
Index ;
)
delay_ms (1);
TIMEOUT -;а) (TIMEOUT> 0
И И TIMEOUT <31000
И И индекс <220);BUF [Index] = '\ 0';
resflg = 1;

если (BUF [2 ]==' '
И И BUF [3] == 'C'
И И BUF [4] == 'P'
И И BUF [5] == 'B'
И И BUF [6] == 'R ') (

если (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;
() другое
nMeFlg = 0;
)), если другое (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;
), если другое (BUF [0 ]=='$'
И И BUF [1] == 'R'
И И BUF [2] =='0 ') (
gprsCFlg = 0;
)

)
если (kbhit ())
(
C [0] = fgetc (GSM);
)

/ / enable_interrupts (INT_RDA);
)недействительным 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 (глобальный);
set_Tris_C (0b10101101);
set_rtcc (0);
delay_ms (200);

getWarSettings ();fprintf (PGM, "СТАРТ ........ \ R");
Delay_ms (1000);
resFlg = 0;

WHILE (GPRSCONNECTED == 0) (
resetModem ();
Delay_ms (1000);
IF (! GPRSCONNECTED)
fprintf (PGM, "GPRS соединения FAILD!! \ R");
)fprintf (PGM, "GPRS СВЯЗАННЫХ OK $ $ \ R");delay_ms (1000);

/ / TODO: код пользователя!!
в то время как (1) (

getDataStr ();
если (resFlg == 1)
(
checkCommand ();
fprintf (PGM, "STR =% S \ R", BUF);
resFLG = 0;
)
если (WarFlg == 1 | | sendFlg == 1) (

timeUpdatedFlg = 0;
fprintf (GSM, "AT CCLK? \ R");
waitResponse (2000);
если (resFlg == 1)
(
checkCommand ();
resFLG = 0;
)
если (timeUpdatedFlg == 1) (
если (pingFlg == 0) (
storeData_EXTE ();
() другое
pingFlg = 0;
)

если (sendData () == 0) (
fprintf (PGM, "D-: Данные Отправить Ошибка .. Модем Повторное Теперь \ R");
восстановить ();
если (gprsConnected! = 1 | | gprsCflg! = 1) (
fprintf (PGM, "D-: Подключите модем Ошибка .. Отдых Модем \ R");
resetModem ();
)
)
), если другое (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;
если (waitResponse (1000) == 1) (
возврат 1;
() другое
возврат 0;
)

)

недействительным hardResetModem () (

fprintf (PGM, "D-: модем жесткий сброс обязательно ... \ R");

)

/ * недействительным checkTime () (/ / САР = 17 равна одной минуте, этот метод установки часов и минут

если (САР> 15) (
САР = 0;
ATM ;

если (ATM> 59) (
ATM = 0;
ATH ;
)
если (gRunningFLG == 1) (/ / если генератор работает
RTM ;
если (RTM> 59) (
RTM = 0;
RTH ;
)
)
)
) / / checkTime ()
* /

восстановить недействительным (недействительными) (
CHAR C = 34, ctrlZ = 26;
INT Респ =- 1;
gprsconnected = 0;
gprsCflg = 0;
fprintf (GSM, "AT CIPSTART CTCP =%% C,% C% S% C,%% C C1001 \ R", C, C, C, IP, C, C, C);
RESFLG = 0;
Респ = waitresponse (30000);
если (соответственно! = 5) (/ / еще не подключен затем
если (Респ == 3 | | Респ == 0) (
fprintf (GSM, "AT CIPSEND \ R \ N");
RESFLG = 0;
waitResponse (1000);
если (nMEflG == 1) (
fprintf (GSM, "$ РЕГИСТР:% S *% C", NME, ctrlZ);
RESFLG = 0;
если (waitResponse (2000) == 4) (
RESFLG = 0;
waitResponse (6000);
если (gprsCFlg == 1) (
gprsConnected = 1;
fprintf (GSM, "AT CCLK = C%% S% C \ R", C, Servertime, C);
tSyncFlg = 1;
resFlg = 0;
waitResponse (2000);
)
)
)
)
() другое
gprsConnected = 1;
gprsCflg = 1;
)
)int1 resetModem (недействительными) (
CHAR C = 34, ctrlZ = 26;
GPRSCONNECTED = 0;
gprsCflg = 0;

если (resetTries> 5) (
resetTries = 0;
если (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, "Движение" 1; \ R ");
RESFLG = 0;
waitResponse (10000);
fprintf (PGM, "Движение" =% 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);
если (NmeFlg == 0) (
fprintf (PGM, "Ошибка: владелец номера не найден \ R");
возврат 0;

)

fprintf (GSM, "AT \ R");
resFlg = 0;
если (waitResponse (1000) == 1) (
fprintf (GSM, "AT CGDCONT = 1, СИП%% C,%% CINTERNET C \ R", C, C, C, C);
RESFLG = 0;
если (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;
если (waitResponse (3000) == 1) (
fprintf (PGM, "D : CSTT OK \ R");
fprintf (GSM, "AT CIICR \ R");
RESFLG = 0;
если (waitResponse (10000) == 1) (
fprintf (PGM, "D : CIICR OK \ R");
fprintf (GSM, "AT CIFSR \ R");
RESFLG = 0;
если (waitResponse (3000)! = 2) (
fprintf (PGM, "D : CIFSR OK \ R");
fprintf (GSM, "AT CIPSTART CTCP =%% C,% C% S% C,%% C C1001 \ R", C, C, C, IP, C, C, C);
RESFLG = 0;
если (waitResponse (20000) == 3) (
fprintf (PGM, "D : CIPSTARTED СВЯЗИ OK \ R");
fprintf (GSM, "AT CIPSEND \ R");
RESFLG = 0;
waitResponse (1000);
если (nMEflG == 1) (
fprintf (GSM, "$ РЕГИСТР:% S *% C", NME, ctrlZ);
RESFLG = 0;
если (waitResponse (2000) == 4) (
RESFLG = 0;
waitResponse (5000);
если (gprsCFlg == 1) (
gprsConnected = 1;
fprintf (GSM, "AT CCLK = C%% S% C \ R", C, Servertime, C);
tSyncFlg = 1;
resFlg = 0;
waitResponse (2000);
fprintf (PGM, "D : ВРЕМЯ SYCHRONIZED: 1 \ R");
)
() другое
fprintf (GSM, "$ РЕГИСТР:% S *% C", NME, ctrlZ);
RESFLG = 0;
если (waitResponse (2000) == 4) (
RESFLG = 0;
waitResponse (5000);
если (gprsCFlg == 1) (
gprsConnected = 1;
fprintf (GSM, "AT CCLK = C%% S% C \ R", C, Servertime, C);
tSyncFlg = 1;
resFlg = 0;
waitResponse (2000);
fprintf (PGM, "D : ВРЕМЯ SYCHRONIZED: 2 \ R");
)
() другое
fprintf (GSM, "$ РЕГИСТР:% S *% C", NME, ctrlZ);
RESFLG = 0;
если (waitResponse (2000) == 4) (
RESFLG = 0;
waitResponse (5000);
если (gprsCFlg == 1) (
gprsConnected = 1;
fprintf (GSM, "AT CCLK = C%% S% C \ R", C, Servertime, C);
tSyncFlg = 1;
resFlg = 0;
waitResponse (2000);
fprintf (PGM, "D : ВРЕМЯ SYCHRONIZED: 3 \ R");
)
() другое
fprintf (GSM, "$ РЕГИСТР:% S *% C", NME, ctrlZ);
RESFLG = 0;
если (waitResponse (2000) == 4) (
RESFLG = 0;
waitResponse (5000);
если (gprsCFlg == 1) (
gprsConnected = 1;
fprintf (GSM, "AT CCLK = C%% S% C \ R", C, Servertime, C);
tSyncFlg = 1;
resFlg = 0;
waitResponse (2000);
fprintf (PGM, "D : ВРЕМЯ SYCHRONIZED: 4 \ R");
)
() другое
gprsConnected = 0;
)
)
)
)
)
)
)
)
)
)
)

если (gprsconnected == 1) (
возврат 1;
() другое
resetTries ;
возврат 0;
)
)INT waitResponse (неподписанные int16 т) (
int16 I = 0, J = 0;
INT R;
TIMEOUT = T;
timeoutFlg = 1;
FOR (J = 0; J <T; J ) (
I = 0;
в то время как (I <1000
И И TIMEOUT> 0) (
/ / Delay_US (1);
I ;
)
)

R = 0;
если (Strstr (BUF, sAcon)> 0) (
R = 5;
), если другое (STRstr (BUF, sSen)> 0) (
R = 4;
), если другое (STRstr (BUF, SCON)> 0) (
р = 3;
), если другое (STRstr (BUF, Сербия)> 0) (
R = 2;
), если другое (STRstr (BUF, SOK)> 0) (
R = 1;
)

если (resFlg == 1
И И Р> 0) (
вернуться R;
() другое
возврат 0;
)

)

INT sendData () (
CHAR ctrlZ = 26;
fprintf (GSM, "AT \ R");
waitResponse (1000);
fprintf (GSM, "AT CIPSEND \ R");
RESFLG = 0;
waitResponse (1000) / / нет ошибки.
fprintf (GSM, "% S", dtstr);
waitResponse (200);
RESFLG = 0;
fprintf (GSM, "% C", ctrlZ);
fprintf (GSM, "% C", ctrlZ);
fprintf (GSM, "% C", ctrlZ);
если (waitResponse (5000) == 4) (
resflg = 1;
fprintf (GSM, "AT \ R");
waitResponse (1000);
sendFlg = 0;
возврат 1;
)
возврат 0;
)

недействительным storeData_ExtE () (

/ / TimeUpdateFlg = 0;
Неподписанный длинный адрес = 0, eAddr = 0;
Неподписанный sAddr INT = 0, I = 0;
fprintf (PGM, "% S \ R", dtstr);
fprintf (PGM ", Len =% LD \ R", strLen (dtstr));
если (EXTE_Pointer <230) (
sAddr = 0b10100000;
Адр EXTE_Pointer = * 140;
), если другое (EXTE_Pointer <460) (
sAddr = 0b10100010;
адрес = (EXTE_Pointer-230) * 140;
), если другое (EXTE_Pointer <690) (
sAddr = 0b10100100;
адрес = (EXTE_Pointer-460) * 140;
), если другое (EXTE_Pointer <920) (
sAddr = 0b10100110;
адрес = (EXTE_Pointer-690) * 140;
() другое
sAddr = 0b10100000;
EXTE_Pointer = 0;
адрес = 0;
)
для (eAddr = адрес; eAddr <Адр 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;

)

недействительным getDataStr () (
Неподписанный int16 aData [16], cDwar = 0, cAWarl = 0, cAWarh = 0, J = 0;
Неподписанный int32 atemp;
int8 I, булавки, genStatus = 5;
символ astarik [3 ]={"* \ 0 ");
символ запятой [3 ]={", \ 0 ");
символ tString [6];
dtstr [0 ]='$';
dtstr [1] = 'D';
dtstr [2 ]=',';
dtstr [3] = '\ 0';
strcat (dtStr, NMe);
strcat (dtStr, запятая);
readFreq ();
если (Freq> 25) (
genStatus = 0; / / генератор работает
() другое
genStatus = 1;
)
itoa (genStatus, 10, tString);
strcat (dtStr, tString);
strcat (dtStr, запятая);

warFlg = 0;
output_low (C1E);
output_high (c2e);
dData = 0;
delay_us (100);

для (штырям = 0; штырям <16; штырям ) (
output_d (ПИН);
delay_us (25);
если (ввод (dDin)) (
bit_set (dData, штифты);
() другое
bit_clear (dData, штифты);
)

/ / Fprintf (PGM, "D [% D] =% D \ R", булавки, вход (dDin));
)
itoa (dData, 10, tString);
strcat (dtStr, tString);
strcat (dtStr, запятая);

output_low (c2e);
output_high (C1E);
delay_ms (1);

для (штырям = 0; штырям <16; штырям ) (
output_d (ПИН);
atemp = 0;
для (J = 1; J <= 1000; J ) (
delay_us (50);
atemp = read_adc ();
)
aData [штырям] = atemp/1000;

itoa (aData [штырям], 10, tString);
strcat (dtStr, tString);
strcat (dtStr, запятая);

/ / Fprintf (PGM ", а [% D] =% LD \ R", булавки, adata [штырям]);
)/ / Fprintf (PGM, "война проверке --- \ R");
для (i = 0; I <16; I ) (
если (bit_test (dWarEnabled, I)) (
если (bit_test (dData, I) == 0) (/ / условие, как правило, открытые / высокая
bit_set (cdwar, I);
/ / Fprintf (PGM ", dwarning =% D \ R", I);
)
)
)

для (i = 0; I <16; I ) (
если (bit_test (aWarEnabledL, I)) (
если (aData <= LwarLevel ) (
bit_set (cAWarL, I);
/ / Fprintf (PGM ", aLwarning =% D \ R", I);
)
)
если (bit_test (aWarEnabledH, I)) (
если (aData > = hwarLevel ) (
bit_set (cAWarH, I);
/ / Fprintf (PGM ", aHwarning =% D \ R", I);
)
)
)

если ((dwar! = cDwar) | | (aWarL! = cAwarL) | | (aWarH! cAwarH =)) (
warFlg = 1;
dWar = cDwar;
aWarL = cAwarL;
aWarH = cAwarH;
itoa (cdWar, 10, tString);
strcat (dtStr, tString);
strcat (dtStr, запятая);
itoa (caWarL, 10, tString);
strcat (dtStr, tString);
strcat (dtStr, запятая);
itoa (caWarH, 10, tString);
strcat (dtStr, tString);
strcat (dtStr, запятая);
readFreq ();
itoa (Freq, 10, tString);
strcat (dtStr, tString);
strcat (dtStr, запятая);
strcat (dtStr, Astarik);
fprintf (PGM, "государство изменении или предупреждение есть ... \ R% S \ R", dtstr);
() другое
fprintf (PGM, "Нет оповещения есть .... \ R");
warFlg = 0;
cDwar = 0;
cAwarL = 0;
CAwarH = 0;
itoa (cdWar, 10, tString);
strcat (dtStr, tString);
strcat (dtStr, запятая);
itoa (caWarL, 10, tString);
strcat (dtStr, tString);
strcat (dtStr, запятая);
itoa (caWarH, 10, tString);
strcat (dtStr, tString);
strcat (dtStr, запятая);
readFreq ();
itoa (Freq, 10, tString);
strcat (dtStr, tString);
strcat (dtStr, запятая);
strcat (dtStr, Astarik);
nforPing ;
если (nforPing> 6) (
nforPing = 0;
sendPING ();
sendFlg = 1;
)
))

setWarSettings недействительным (недействительными) (
Неподписанный int8 EEaddr = 0;
символ перспективе [3], * PTR;
INT I = 0;
длинный вал = 0;
вызов (термин ,",;");
PTR = strtok (BUF, срок);
PTR = strtok (0, срок);

если (PTR! = 0) (

dwarEnabled = atol (PTR);
fprintf (PGM ", dwar =% LD \ R", dwarEnabled);
PTR = strtok (0, срок);

а (PTR! = 0
И И * PTR! = 42) (

I = atoi (PTR);
fputs (PTR, PGM);
PTR = strtok (0, срок);
Вал = atol (PTR);
если (Val> 0) (
bit_set (awarEnabledL, I);
LwarLevel = Val;
fprintf (PGM, "L% D =% LD \ R", I, вальс);
() другое
bit_clear (awarEnabledL, I);
LwarLevel = Val;
fprintf (PGM, "L% D =% LD \ R", I, вальс);
)
PTR = strtok (0, срок);
Вал = atol (PTR);
если (Val> 0) (
bit_set (awarEnabledH, I);
HwarLevel = Val;
fprintf (PGM, "H% D =% LD \ R", I, вальс);
() другое
bit_clear (awarEnabledH, I);
HwarLevel = Val;
fprintf (PGM, "H% D =% LD \ R", I, вальс);
)

PTR = strtok (0, срок);
)
)
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));
для (i = 0; I <16; I ) (
delay_ms (5);
EEaddr = 2;
write_eeprom (EEaddr, make8 (LwarLevel , 0));
write_eeprom (EEaddr 1, make8 (LwarLevel , 1));
)
для (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, "Новое предупреждение параметры были запрограммированы. \ R");
)

недействительным checkCommand () (если (BUF [0 ]=='$'
И И BUF [1] == 'W'
И И BUF [2] == 'S') (
setWarSettings ();
), если другое (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;
), если другое (BUF [0 ]=='$'
И И BUF [1] == 'Q'
И И BUF [2] == '-'
И И BUF [3] =='1 ') (
sendFlg = 1;
), если другое (BUF [0 ]=='$'
И И BUF [1] == 'Q'
И И BUF [2] == '-'
И И BUF [3] =='2 ') (
sendFlg = 1;
), если другое (BUF [0 ]=='$'
И И BUF [1] == 'Q'
И И BUF [2] == '-'
И И BUF [3] =='3 ') (
sendFlg = 1;
)

)недействительным getWarSettings (){// настройки из 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);
для (i = 0; I <16; I ) (
EEaddr = 2;
LWarLevel = make16 (read_eeprom (EEaddr 1), read_eeprom (EEaddr));
fprintf (PGM ", Ли [% D] =% Lu \ R", I, LwarLevel );
)
для (i = 0; I <16; I ) (
EEaddr = 2;
HWarLevel = make16 (read_eeprom (EEaddr 1), read_eeprom (EEaddr));
fprintf (PGM, "Хи [% 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);
если (ExtE_Pointer> 1000) (
ExtE_Pointer = 0;
write_eeprom (EEaddr, make8 (ExtE_Pointer, 0));
write_eeprom (EEaddr 1, make8 (ExtE_Pointer, 1));
))

///////////////////////////////

недействительным sendPING () (
CHAR ctrlZ = 26;
INT Res = 0;
dtstr [0 ]='$';
dtstr [1] = 'P';
dtstr [2] = 'Я';
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) / / нет ошибки.
fprintf (GSM, "% S", dtstr);
waitResponse (200);
RESFLG = 0;
fprintf (GSM, "% C", ctrlZ);
Res = waitResponse (5000);
fprintf (PGM, "D: PINGSEND =% S \ R", BUF);
если (Res! = 4
И И pingTries <4) (
pingTries ;
resflg = 0;
fprintf (GSM, "AT \ R");
waitResponse (1000);
), если другое (Res == 4) (
fprintf (PGM, "D : PING Отосланное ОК. \ R");
pingtries = 0;
resflg = 0;
fprintf (GSM, "AT \ R");
/ / waitResponse (10000);
() другое
sendFlg = 1;
)

resFlg = 0;
* /
)

недействительным readFreq () (
длиной I = 0;
SET_TIMER1 (0);
для (i = 1; I <1000; I ) (
delay_ms (1);
)
частота = GET_TIMER1 ();
/ / fPRINTF (PGM, "F =% ЛД \ R", частота);

)

 

Welcome to EDABoard.com

Sponsor

Back
Top