MCPcopy Create free account
hub / github.com/RT-Thread/rt-thread / at_check_args

Function at_check_args

components/net/at/src/at_server.c:266–322  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

264}
265
266static rt_err_t at_check_args(const char *args, const char *args_format)
267{
268 rt_size_t left_sq_bracket_num = 0, right_sq_bracket_num = 0;
269 rt_size_t left_angle_bracket_num = 0, right_angle_bracket_num = 0;
270 rt_size_t comma_mark_num = 0;
271 rt_size_t i = 0;
272
273 RT_ASSERT(args);
274 RT_ASSERT(args_format);
275
276 for (i = 0; i < strlen(args_format); i++)
277 {
278 switch (args_format[i])
279 {
280 case AT_CMD_L_SQ_BRACKET:
281 left_sq_bracket_num++;
282 break;
283
284 case AT_CMD_R_SQ_BRACKET:
285 right_sq_bracket_num++;
286 break;
287
288 case AT_CMD_L_ANGLE_BRACKET:
289 left_angle_bracket_num++;
290 break;
291
292 case AT_CMD_R_ANGLE_BRACKET:
293 right_angle_bracket_num++;
294 break;
295
296 default:
297 break;
298 }
299 }
300
301 if (left_sq_bracket_num != right_sq_bracket_num || left_angle_bracket_num != right_angle_bracket_num
302 || left_sq_bracket_num > left_angle_bracket_num)
303 {
304 return -RT_ERROR;
305 }
306
307 for (i = 0; i < strlen(args); i++)
308 {
309 if (args[i] == AT_CMD_COMMA_MARK)
310 {
311 comma_mark_num++;
312 }
313 }
314
315 if ((comma_mark_num + 1 < left_angle_bracket_num - left_sq_bracket_num)
316 || comma_mark_num + 1 > left_angle_bracket_num)
317 {
318 return -RT_ERROR;
319 }
320
321 return RT_EOK;
322}
323

Callers 1

at_cmd_processFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected