mirror of git://git.sysmocom.de/ofono
gatsyntax: support short prompt for permissive
This commit is contained in:
parent
57faa0c931
commit
b6d6282158
|
@ -53,6 +53,8 @@ enum GSM_PERMISSIVE_STATE {
|
|||
GSM_PERMISSIVE_STATE_GUESS_PDU,
|
||||
GSM_PERMISSIVE_STATE_PDU,
|
||||
GSM_PERMISSIVE_STATE_PROMPT,
|
||||
GSM_PERMISSIVE_STATE_GUESS_SHORT_PROMPT,
|
||||
GSM_PERMISSIVE_STATE_SHORT_PROMPT,
|
||||
};
|
||||
|
||||
static void gsmv1_hint(GAtSyntax *syntax, GAtSyntaxExpectHint hint)
|
||||
|
@ -242,6 +244,8 @@ static void gsm_permissive_hint(GAtSyntax *syntax, GAtSyntaxExpectHint hint)
|
|||
{
|
||||
if (hint == G_AT_SYNTAX_EXPECT_PDU)
|
||||
syntax->state = GSM_PERMISSIVE_STATE_GUESS_PDU;
|
||||
else if (hint == G_AT_SYNTAX_EXPECT_SHORT_PROMPT)
|
||||
syntax->state = GSM_PERMISSIVE_STATE_GUESS_SHORT_PROMPT;
|
||||
}
|
||||
|
||||
static GAtSyntaxResult gsm_permissive_feed(GAtSyntax *syntax,
|
||||
|
@ -306,6 +310,27 @@ static GAtSyntaxResult gsm_permissive_feed(GAtSyntax *syntax,
|
|||
syntax->state = GSM_PERMISSIVE_STATE_RESPONSE;
|
||||
return G_AT_SYNTAX_RESULT_UNSURE;
|
||||
|
||||
case GSM_PERMISSIVE_STATE_GUESS_SHORT_PROMPT:
|
||||
if (byte == '\n')
|
||||
/* ignore */;
|
||||
else if (byte == '\r')
|
||||
syntax->state =
|
||||
GSM_PERMISSIVE_STATE_SHORT_PROMPT;
|
||||
else
|
||||
syntax->state = GSM_PERMISSIVE_STATE_RESPONSE;
|
||||
break;
|
||||
|
||||
case GSM_PERMISSIVE_STATE_SHORT_PROMPT:
|
||||
if (byte == '\n') {
|
||||
syntax->state = GSM_PERMISSIVE_STATE_IDLE;
|
||||
i += 1;
|
||||
res = G_AT_SYNTAX_RESULT_PROMPT;
|
||||
goto out;
|
||||
}
|
||||
|
||||
syntax->state = GSM_PERMISSIVE_STATE_RESPONSE;
|
||||
return G_AT_SYNTAX_RESULT_UNSURE;
|
||||
|
||||
default:
|
||||
break;
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue