Cellular interface CGREG parsing

Hi !

i have error when the URC CGREG is parsed… (and propably also CEREG & CREG)
the modem (Telit ME310) send an URC like:
+CGREG: 5, “E488”,“9344908”,8,“C0”

and definition for this frame is:
+CGREG:[,,[,,]]
at the 5th value is “rac” which is hexa byte

but in the lib parse source we have:
CELLULAR_REG_POS_REJ_TYPE
and is decoded as integer, so this can’t work… and returns an error.

where came from this item (reject type & reject cause) ?

thank for help

Hi @rickou,
Thank you for bringing this matter to our attention. We greatly appreciate your keen observation, which appears to be accurate.

We’d like to clarify that the reject type/cause is derived from the 3GPP specification. However, you are absolutely correct in noting that we are missing the part for RAC.

We acknowledge this oversight and are committed to addressing it promptly. Our team is currently working on a solution, and we anticipate providing a patch to resolve this issue within the next few days.

+CGREG in 3GPP TS 27.007 V19.0.0:

when < n >=0, 1, 2 or 3 and command successful:
+CGREG: < n >,< stat >[,[< lac >],[< ci >],[< AcT >],[< rac >][,< cause_type >,< reject_cause >]]

when <n>=4 or 5 and command successful:
+CGREG: < n >,< stat >[,[< lac >],[< ci >],[< AcT >],[< rac >][,[< cause_type >],[< reject_cause >][,[< Active-Time >],[< Periodic-RAU >],[< GPRS-READY-timer >]]]]

Thank you.

Hi @rickou,
Sorry for late response. The PR#182 is created for handling +CGREG correctly. Could you try test with this PR?

Thank you.

2 Likes

Hello !

I applyed the modifications to my project and it seems to work fine !
(no more errors until now)

Thank you !