This is my first time writing here so excuse me if i did sometihing wrong.
I need help with "Decoding failed: zero tag" status.
I want to send array using ESP-NOW Here is my encoding side:
epostavke.baterija[0]=razina_baterije[0];
postavke.baterija[1]=razina_baterije[1];
postavke.baterija[2]=razina_baterije[2];
postavke.baterija[03]=razina_baterije[3];
postavke.baterija[4]=razina_baterije[4];
postavke.baterija[5]=razina_baterije[5];
pb_ostream_t stream = pb_ostream_from_buffer(buffer, sizeof(buffer));
pb_encode(&stream, Postavke_fields, &postavke);
esp_now_send(NULL, (uint8_t *) &buffer, sizeof(buffer));
and after encoding when I print :
Serial.println(postavke.baterija[0]);
Serial.println(postavke.baterija[1]);
it shows me right values - so it means that postavke.baterija[0] has value like postavke.baterija[1] , as example it shows me 87 ,85 it depends.
But problem is when I want to decode it. It shows me :"Decoding failed: zero tag" Here is code:
enter cod stream = pb_istream_from_buffer(buffer,sizeof(buffer));
bool status = pb_decode(&stream, Postavke_fields, &postavke);
if (!status)
{
printf("Decoding failed: %s\n", PB_GET_ERROR(&stream));
return ;
}
Serial.println("Stigli podaci, a oni glase: ");
Serial.println(postavke.znak);
Serial.println(postavke.vrijeme_trajanja);
Serial.println(postavke.vrijeme_odmora);
Serial.println(postavke.boja1);
Serial.println(postavke.boja2);
Serial.println(postavke.boja3);
Serial.println(postavke.broj_signala);
Serial.println(postavke.timer);
Serial.println(postavke.multicaster);
Serial.println(postavke.broj_propustenih);
Serial.println(postavke.random_odmor);
Serial.println(postavke.baterija[0]);
Serial.println(postavke.baterija[1]);
If i dont use this
`
if (!status)
{
printf("Decoding failed: %s\n", PB_GET_ERROR(&stream));
return ;
}
It decodes everything else but not `"postavke.baterija" array
Here is how I did it in .proto file
message Postavke {
required int32 ID=1;
required int32 znak=2;
required int32 vrijeme_trajanja=3;
required int32 vrijeme_odmora=4;
required int32 boja1=5;
required int32 boja2=6;
required int32 boja3=7;
required int32 broj_signala=8;
required int32 timer=9;
required int32 multicaster=10;
required int32 broj_propustenih=11;
required int32 random_odmor=12;
required int32 svjetlina=13;
repeated int32 baterija=14 ;
}
and here is my .options file
Postavke.baterija max_count:6;
Postavke.baterija max_size:6;
Please help me!! Where is mistake? Why doenst want to decode?
Thank you!