нужна помощь
- Войдите на сайт для отправки комментариев
Втр, 29/10/2013 - 11:39
Всем доброго дня.
переписываю 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
Модем отвечает не по стандарту "OK" а "будете сделано хозяина" то это проблемы модема а не библиотеки. Смотрите функцию
возможно придется выяснить этот вопрос по всем командам и исправить ожидаемый ответ об успешном выполнении.
в том то и дело что мне необходима помощь где нужно редактировать. как я понимаю по комманде
UART0_setSearchString( OK_ ); с приходом ответа от модема Ок программа двигается дальше, но в данном кусочке должно приходить два ответа Ок, а реально при Ок и все сделано хозяин.