ATParser could not support some strings very well.
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 45/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Ferma
- Stack tecnologico
- cpp
- Ambito
- embedded-iot
Direzione di ricerca
Inizia con l’implementazione di recv di ATParser e riproduci i casi tra virgolette e senza virgolette di verify_sscanf(), in particolare gli esempi BC95 che usano sscanf(). Confronta il numero di caratteri osservato e il valore di destinazione con i risultati attesi, quindi esegui i test pertinenti del parser oppure aggiungi una copertura che dimostri che entrambe le forme di input vengono analizzate correttamente senza introdurre regressioni nel caso ESP8266.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
I am working to integrate a NBIoT module and found that this ATParser could not support some strings.
After debugging, I found it is caused by the poor sscanf().
For example,
_parser.recv("\"%15[^\n]\"", dev_info.imsi); from ESP8266 driver as reference , it could work.
_parser.recv("%15[^\n]", dev_info.imsi); with no quotes does not work well. it will return the first char in the string to imsi.
Below is a simple test code, would you help to share comments if any idea?
void verify_sscanf()
{
//Verify the AT format for esp8266 with quotes
int count = -1;
char test[] = "0\"123456789\"";
char test1[] = "0\"%*9[^\n]\"%n0";
char test2[] = "0\"1234\"";
sscanf(test2, test1, &count);
printf("\nESP8266: expect -1 - count = %d\n", count);
count = -1;
sscanf(test, test1, &count);
printf("\nESP8266: expect 12 - count = %d\n", count);
//Verify the AT format for BC95 without quotes
char test_bc95[] = "0123456789";
char test1_bc95[] = "0%*9[^\n]%n0";
char test2_bc95[] = "01234";
count = -1;
sscanf(test2_bc95, test1_bc95, &count);
printf("\nBC95: expect -1 - count = %d\n", count);
count = -1;
sscanf(test_bc95, test1_bc95, &count);
printf("\nBC95: expect 10 BUT fail- count = %d\n", count);
}
- Lingua principale
- C++
- Stelle
- 39
- Fork
- 24
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di ARMmbed/ATParser
-
Parse responseAperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 30/100
-
Accessing a negative indexAperta
Difficoltà 3/5 1-2 giorni Idoneità per principianti 25/100
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 15/100
-
read() and write() do not behave as documentedForse di nuovo libera Una pull request per questa issue è stata chiusa senza essere unita. Apertaenhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 42/100
-
question
Difficoltà 3/5 1-2 giorni Idoneità per principianti 25/100
Tutte le issue di ARMmbed/ATParser
Issue simili
-
torch_ops/logprob.cu does not compile with the serving container's nvcc (13.3.73); check_torch_ops.py cannot run as shippedForse già presa Una pull request collegata a questa issue è aperta o già unita. Aperta
Difficoltà 2/5 Meno di un'ora Idoneità per principianti 72/100
ashhart/TensorFold#535 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno
-
agent:Windows bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno