ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
19 мая
25434 Топик полностью
SeregaB (06.04.2005 18:10, просмотров: 1) ответил Guest на Кто может написать функцию, которая отправляет смс-сообщения
Ответ: Сильно ногами не пинать, написано в 2002 году SMS лежит в strGSM //****************************************************************************** char GSMmsgSend(void) { char *pnt; unsigned char output,input; unsigned int number; StartGSMmsgSend: WDTimerConst=WDT_GSMmsgSend; pnt=(char*)strCMGS; if (TrString2GSM(pnt)==0) {//ошибка передачи initATGSM(); goto StartGSMmsgSend; } do {//дождаться приглашения input=ReceiveByteGSM(); if(input==0) {//ошибка передачи initATGSM(); goto StartGSMmsgSend; } if(DebugPrint){TransmitBytePC(input);} } while (input!=0x20); pnt=(char*)strGSM; if (TrString2GSM(pnt)==0) {//ошибка передачи initATGSM(); goto StartGSMmsgSend; } _NOP(); TransmitByteGSM(0x1A); //Закончить передачу input=ReceiveByteGSM(); if(input==0) {//ошибка передачи _NOP(); initATGSM(); goto StartGSMmsgSend; } if(DebugPrint){TransmitBytePC(input);} _NOP(); WDTimerConst=125;//12.5 секунд do{ input=ReceiveByteGSM(); if(input==0) {//ошибка передачи initATGSM(); goto StartGSMmsgSend; } if(DebugPrint){TransmitBytePC(input);} }while ((input!=\'K\')&&(input!=\'R\')); _NOP(); WDTimerConst=WDT_GSMmsgSend;//нормальный тайм аут do{ output=ReceiveByteGSM(); if(output==0) {//ошибка передачи initATGSM(); goto StartGSMmsgSend; } if(DebugPrint){TransmitBytePC(output);} }while (output!=0x0A); if (input==\'R\') { for (output = 40; output > 0; output--) {//ошибка связи LEDR_ON; delay(); } } if (input==\'K\') {//связь прошла без ошибок LEDR_OFF; } // flagTxGSM=0; // WDTimerConst=5; return input; } //******************************************************************************