Fix: Introduce PPP data state

Some modems send PPP data introspersed along with the CONNECT final
response.  Fixup the parser so we can still detect the final response.
This commit is contained in:
Denis Kenzior 2010-03-31 18:48:52 -05:00
parent ee8084c0d0
commit 988b24adb0
1 changed files with 13 additions and 0 deletions

View File

@ -42,6 +42,7 @@ enum GSMV1_STATE {
GSMV1_STATE_PDU_CR,
GSMV1_STATE_PROMPT,
GSMV1_STATE_ECHO,
GSMV1_PPP_DATA,
};
enum GSM_PERMISSIVE_STATE {
@ -79,6 +80,8 @@ static GAtSyntaxResult gsmv1_feed(GAtSyntax *syntax,
case GSMV1_STATE_IDLE:
if (byte == '\r')
syntax->state = GSMV1_STATE_INITIAL_CR;
else if (byte == '~')
syntax->state = GSMV1_PPP_DATA;
else
syntax->state = GSMV1_STATE_ECHO;
break;
@ -199,6 +202,16 @@ static GAtSyntaxResult gsmv1_feed(GAtSyntax *syntax,
break;
case GSMV1_PPP_DATA:
if (byte == '~') {
syntax->state = GSMV1_STATE_IDLE;
res = G_AT_SYNTAX_RESULT_UNRECOGNIZED;
i += 1;
goto out;
}
break;
default:
break;
};