Przesłanie struct przez UDP - Wersja do druku +- Arduino Polska Forum (https://forum.arduinopolska.pl) +-- Dział: Korzystanie z Arduino (https://forum.arduinopolska.pl/dzial-korzystanie-z-arduino) +--- Dział: Piaskownica (https://forum.arduinopolska.pl/dzial-piaskownica) +--- Wątek: Przesłanie struct przez UDP (/watek-przes%C5%82anie-struct-przez-udp) |
Przesłanie struct przez UDP - pele - 08-07-2018 Z innej aplikacji przesyłam przez UDP strukturę danych Kod: typedef struct Łącznie jest to 34 bajty. Te bajty odbieram prawidłowo: Kod: int packetSize = UDPTestServer.parsePacket(); Przykładowy ciąg bajtów: 373231363338333501020304050000000000f8030000000000000000cd0000ff00e2 I teraz chciałbym ten ciąg przypisać do zmiennych w strukturze: Szukałem różnych przykładów, np memcpy(pakiet, incomingPacket, sizeof(pakiet)) ale przypisuje mi jakieś bajty z kosmosu. Nic się nie zgadza. na przykład do zmiennej strefy przypisuje 33383335123450 a powinno być 01020304050000000000 (tablica 10 bajtów) Nie wiem co robię źle. Poradzicie coś jak to najłatwiej zrobić? Ewentualnie mogę rozbić ten ciąg znaków w kilku krokach podając początek i ilość bajtów do skopiowania. Przy okazji jeszcze jedno pytanie. Jaki tym danych mam użyć dla typu data czas + milisekundy. RE: Przesłanie struct przez UDP - es2 - 08-07-2018 A przez UDP wysyłasz dane Ascii czy bin? RE: Przesłanie struct przez UDP - Robson Kerman - 09-07-2018 Cytat:Nie wiem co robię źle. A możesz napisać, co w ogóle robisz? Cytat: do zmiennej strefy przypisuje 33383335123450 a powinno być 01020304050000000000 (tablica 10 bajtów) Na jakiej podstawie twierdzisz, że tak powinno być? P.S. Zmienna Timestamp, to jest może podana w czasie Unix? RE: Przesłanie struct przez UDP - kaczakat - 09-07-2018 Nie widziałem takiej konstrukcji, jeszcze pewnie wiele nie więc zapytam: czemu wszędzie są w strukturze po trzy słowa a w tej linijce ze stamp tylko dwa? RE: Przesłanie struct przez UDP - pele - 10-07-2018 unsigned oraz unsigned int jest równoznaczne. I to właśnie było problemem, ponieważ z tego innego programu, timestamp wychodził jako 8 bajtów i podstawiając je do struktury było przesunięcie (unsigned int ma mniej bajtów). Zamieniłem to na tablicę 8 bajtów. |