adl_atCmdSubscribe and Whitespace separated parameters?

Hi community,

I’m new in the OAT world and search a solution for parsing “non standard” AT commands:

We use commands with whitespace separated parameters on other products (eg. ISDN modems), like “Timer 0 Start M5”.
If these commands are entered over a serial link, they are prefixed with “AT*C”.
If these commands are issued over other paths (SMS, V.110 link etc), the prefix is not used.

So over a serial link the structure looks like AT*C param1 [param2 [param3]] .

As we need to be command compatible with those products, I tried to capture these AT*C commands with adl_atCmdSubscribe().

Any command option other than ADL_CMD_TYPE_ROOT produces ERROR responses.

With the ADL_CMD_TYPE_ROOT command option, I get the parameters with “useless spaces” (word-by-word WaveCom) removed, making “AT*CTimer0StartM5” unparsable :angry:

The only way seems to quote the command trailer after the "ATC" prefix - which makes large software adpations necessary in all front-end programs using the ATC commands.

Do you have any suggestions ?
Is there any undocumented bit combination in the adl_atCmdSubscribe() command options to tell the WaveCom parser to leave the spaces untouched ?
Is that an idea for an ADL API improvement ?

Thomas

If things like “Timer” and “Start” are fixed tokens, then it is parsable - not so easy, but possible.

I don’t think so.

However, instead of using the Wavecom parser, you could put the UART into Data mode to capture the “raw” text - then use your own parser.
Presumably you alreayd have your own parser for those other products…?

Our existing parsing routines repeatedly isolate the first token (until whitespace) and compare it against a list of string constants.

I was afraid of that effort…
Per aspera ad astra :confused:

Thomas