Piszę program do czujnika zliczającego stan licznika gazu i wysyłającego dane na serwer w losowych odstępach czasu. Problemem jest fragment kodu:
Generalnie pomysł jest taki, że co sekundę timer zwiększa wartość zmiennej tick_1s i gdy jest ona równa wartości wyslij_teraz uruchamiana jest procedura wysyłki danych na serwer. Wartość ta wynosi 9minut plus kolejna (pseudolosowa) wartość z tablicy. Gdy odwołuję się do tablicy wpisując bezpośrednio numer elementu, tak jak teraz wszystko jest ok. Jak tylko zamiast liczby dam tak zmienną (linijka z komentarzem) program zachowuje się dziwnie.
Każda procedura wysyłająca wywoływana jest 3 razy. Za pierwszym razem przesyłane są poprawne dane, a za dwoma kolejnymi śmieci (pogrubione linijki). Transmisja na pewno jest ok, bo sumy CRC16 się zgadzają. Wygląda na to, że złe dane są przekazywane jako argumenty funkcji. Tylko, że one nie zależą od zmiennej seq, której użycie powoduje problem.
I jeszcze jedna ciekawostka, jeśli odwołam się do tablicy przez podanie liczby i dodam w procedurze wysyłającej odczytam dane z tablicy przy użyciu zmiennej np.
to problem znów występuje -objawy są takie same.
Nie mam debugera więc mam trochę utrudnione zadanie. Pewnie to jakiś szkolny błąd. Czy może ktoś zerknąć i zobaczyć, gdzie jest błąd? Cały kod w załączniku. Serdecznie dziękuję za sugestie
Kod: C / C++
Generalnie pomysł jest taki, że co sekundę timer zwiększa wartość zmiennej tick_1s i gdy jest ona równa wartości wyslij_teraz uruchamiana jest procedura wysyłki danych na serwer. Wartość ta wynosi 9minut plus kolejna (pseudolosowa) wartość z tablicy. Gdy odwołuję się do tablicy wpisując bezpośrednio numer elementu, tak jak teraz wszystko jest ok. Jak tylko zamiast liczby dam tak zmienną (linijka z komentarzem) program zachowuje się dziwnie.
Kod: C / C++
Kod: C / C++
Kod: C / C++
Kod: C / C++
Każda procedura wysyłająca wywoływana jest 3 razy. Za pierwszym razem przesyłane są poprawne dane, a za dwoma kolejnymi śmieci (pogrubione linijki). Transmisja na pewno jest ok, bo sumy CRC16 się zgadzają. Wygląda na to, że złe dane są przekazywane jako argumenty funkcji. Tylko, że one nie zależą od zmiennej seq, której użycie powoduje problem.
I jeszcze jedna ciekawostka, jeśli odwołam się do tablicy przez podanie liczby i dodam w procedurze wysyłającej odczytam dane z tablicy przy użyciu zmiennej np.
Kod: C / C++
to problem znów występuje -objawy są takie same.
Nie mam debugera więc mam trochę utrudnione zadanie. Pewnie to jakiś szkolny błąd. Czy może ktoś zerknąć i zobaczyć, gdzie jest błąd? Cały kod w załączniku. Serdecznie dziękuję za sugestie
