нужна помощь

MDV
Offline
Зарегистрирован: 08.08.2013

Всем доброго дня.

переписываю GSM библиотеку от модема М33G под свой модем SIM900. Возникли проблемы при обработке ответов от модема на АТ комманды. Ниже пример с выключением модема

s8 GSMClass::PowerOFF()
{
 GSM.WriteStr_P(PSTR("AT\r\n"));
 _delay_ms(500);
 UART0_rx_reset( );  
 UART0_setSearchString( OK_ );
 GSM.WriteStr_P(PSTR("\r\nAT$POWEROFF\r\n"));
 UART0_rx_on( );
 if( UART0_check_acknowledge( 256 ) > 0 )
 {
  return 1;
 }  
 else return -1;
}

ответ от М33 Ок от СИМ900 Normal power down естественно код цикликлится, так как функция PowerOFF() не принимает значение 1.

Вопрос, как происходит проверка ( UART0_check_acknowledge( 256 ) > 0 ), откуда может браться ответ от модема и как происходить сравнение с 0.

полная библиотека https://github.com/jt5/GSM

 

NeiroN
NeiroN аватар
Offline
Зарегистрирован: 15.06.2013

Модем отвечает не по стандарту "OK" а "будете сделано хозяина" то это проблемы модема а не библиотеки.  Смотрите функцию 

UART0_setSearchString( OK_ );

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

MDV
Offline
Зарегистрирован: 08.08.2013

в том то и дело что мне необходима помощь где нужно редактировать. как я понимаю по комманде

UART0_setSearchString( OK_ ); с приходом ответа от модема Ок программа двигается дальше, но в данном кусочке должно приходить два ответа Ок, а реально при Ок и все сделано хозяин.