atat: Cannot parse ATI - "ParseString" error

I’m on 0.8.4 at the moment and trying to parse the manufacturer revision information. I’ve tried working through serde_at/src/de/mod.rs to try and understand the failure but can’t quite grok it.

The request I’m sending:

#[derive(Clone, AtatCmd)]
#[at_cmd("I", responses::Ident)]
pub struct IdentificationInformation;

The response struct:

#[derive(Clone, Debug, AtatResp, Serialize)]
pub struct Ident {
    pub revision: String<consts::U128>,
}

The raw logs:

DEBUG [atat::client:112] Sending command: ""ATI""
DEBUG [atat::ingress_manager:118] Received response ""Quectel\r\nUC20\r\nRevision: UC20GQBR03A12E1G""

However, the ParseString error is always returned. Any ideas? I get the feeling the Quectel\r\nUC20\r\n section of the string is confusing the parser, as the modem doesn’t echo back the ATI first.

About this issue

  • Original URL
  • State: closed
  • Created 3 years ago
  • Comments: 20 (20 by maintainers)

Most upvoted comments

@mon Just to let you know, the log logging is now back, thx to @fkohlgrueber and #92

I would still like to investigate the ATI command & add a regression test, when i get time, so i will leave this issue open for now.

Sorry to hear you didn’t manage to make it work, but hey! Congratz on the new job & best of luck!

Apologies, but I’ve had to give up trying to port my serial ingest to the new atat - I’m leaving my current company and won’t be doing any more rust for the foreseeable future… Thank you for your time so far, it’s been a pleasure.