[an error occurred while processing this directive]
|
только это для десятичной.
проверки всякие можно убрать.
/******************************************************************************
* DESCRIPTION:
*
* +CME ERROR: 10
* +CMS ERROR: 313
* +CMS ERROR: 34819
*****************************************************************************/
static u32_t AtReadNum(u8_t *p) {
REG_t u32_t res = 0;
REG_t u32_t cnt = 0;
REG_t u32_t b ;
RETIFNULL(p,ATANS_BADNUM);
while(1) {
b = *p++;
if (b < ' ') {
if (!cnt) {
return ATANS_BADNUM;
}
return res;
} else {
b -= '0';
if (b <= 9) {
res = 10 * res + b;
if (++cnt > 5) {
return ATANS_BADNUM;
}
}
else
if (b != (' ' - '0')) {
return ATANS_BADNUM;
}
}
}
}