hfp: rewrite parse sequence

This commit is contained in:
Milanka Ringwald 2015-08-14 15:09:57 +02:00
parent 211b60e2b1
commit ec2675afd6

View File

@ -529,8 +529,8 @@ static void hfp_parser_next_state(hfp_connection_t * context, uint8_t byte){
return;
}
switch (context->parser_state){
case HFP_PARSER_CMD_HEADER:
case HFP_PARSER_CMD_INDICATOR_NAME:
case HFP_PARSER_CMD_HEADER:
case HFP_PARSER_CMD_INDICATOR_MIN_RANGE:
case HFP_PARSER_SECOND_ITEM:
context->parser_state = (hfp_parser_state_t)((int)context->parser_state + 1);
@ -783,9 +783,17 @@ void hfp_parse(hfp_connection_t * context, uint8_t byte){
}
if (hfp_parser_buffer_empty(context)) break;
switch (context->command){
case HFP_CMD_INDICATOR:
if (context->retrieve_ag_indicators == 1){
strcpy((char *)context->ag_indicators[context->parser_item_index].name, (char *)context->line_buffer);
context->ag_indicators[context->parser_item_index].index = context->parser_item_index+1;
printf("Indicator %d: %s (", context->ag_indicators_nr+1, context->line_buffer);
}
break;
default:
break;
}
hfp_parser_next_state(context, byte);
break;
@ -796,8 +804,16 @@ void hfp_parse(hfp_connection_t * context, uint8_t byte){
}
if (hfp_parser_buffer_empty(context)) break;
switch (context->command){
case HFP_CMD_INDICATOR:
if (context->retrieve_ag_indicators == 1){
context->ag_indicators[context->parser_item_index].min_range = atoi((char *)context->line_buffer);
printf("%s, ", context->line_buffer);
}
break;
default:
break;
}
hfp_parser_next_state(context, byte);
break;
@ -808,10 +824,18 @@ void hfp_parse(hfp_connection_t * context, uint8_t byte){
}
if (hfp_parser_buffer_empty(context)) break;
switch (context->command){
case HFP_CMD_INDICATOR:
if (context->retrieve_ag_indicators == 1){
context->ag_indicators[context->parser_item_index].max_range = atoi((char *)context->line_buffer);
context->parser_item_index++;
context->ag_indicators_nr = context->parser_item_index;
printf("%s)\n", context->line_buffer);
}
break;
default:
break;
}
hfp_parser_next_state(context, byte);
break;