piotrd66 Napisano Wrzesień 20, 2020 Zgłoś Udostępnij Napisano Wrzesień 20, 2020 (edytowany) Witam! Chciałbym Was bardzo prosić o wytłumaczenie o co tu chodzi. Od kilku dni "studiuję" temat i o ile w teorii wydaje mi się zrozumiały, to w praktyce nie bardzo. Jest urządzenie (multimetr), które transmituje poprzez port szeregowy odczyt, wybrany zakres itd. Transmisja jest bitowa (tak mi się wydaje) i jakoś "zakodowana". Podsłuchałem port i wygląda to tak: 00 D0 E2 F1 18 2E 3B 4E 5B 6A 7D 8C 97 A0 B0 C0 .Đâń..;N[j}Ś— °Ŕ D0 E2 F1 18 2E 3B 4E 5B 6A 7D 8C 97 A0 B0 C0 D0 Đâń..;N[j}Ś— °ŔĐ E2 F1 18 2E 3B 4E 5B 6A 7D 8C 97 A0 B0 C0 D0 E2 âń..;N[j}Ś— °ŔĐâ F1 18 2E 3B 4E 5B 6A 7D 8C 97 A0 B0 C0 D0 E2 F1 ń..;N[j}Ś— °ŔĐâń 18 2E 3B 4E 5B 6A 7D 8C 97 A0 B0 C0 D0 E2 F1 18 ..;N[j}Ś— °ŔĐâń. 2E 3B 4E 5B 6A 7D 8C 97 A0 B0 C0 D0 E2 F1 18 2E .;N[j}Ś— °ŔĐâń.. 3B 4E 5B 6A 7D 8C 97 A0 B0 C0 D0 E2 F1 18 2E 3B ;N[j}Ś— °ŔĐâń..; itd. Mam od źródłowy aplikacji, którą kiedyś lekko zmodyfikowałem i robiło co trzeba - zrzut do pliku ASCII w formie czytelnej dla ludzi. Urządzenie jednak pada i zakupione zostało nowe - niby identyczne (taki sam symbol), ale coś zmienili w protokole i już aplikacja nie działa. Zresztą do obu dołączona jest mała aplikacja Windows, która pokazuje odczyt oraz ekran LCD multimetru i ta stara również nie współpracuje z nowym urządzeniem. W aplikacje, którą kiedyś znalazłem i lekko zmodyfikowałem jest taki opis: /** * display value is encoded by maping the elements of the 7-segment * to the lower nibbles of byte groups [a,b] = {[1,2],[3,4],[5,6],[7,8]}: * 0a:00 * * by combining the nibbles to a byte we got a uniqe identifier * for every symbol shown on the display. * * for byte 1 bit 3 represents a leading minus (negative value) * for bytes 3,5,7 bit 3 indicates a leading decimal point * (means the encoded value is the first part of the fraction) */ Napisałem na szybko taką funkcję: string swapNibbles(string _x) { int _in, _out = 0; string wynik = ""; Int32.TryParse(_x, out _in); _out = (_in & 0x0F) << 4 | (_in & 0xF0) >> 4; wynik = _out.ToString(); return wynik; } alej nie wiem, czy to ma sens i co dalej z tym robić? Bardzo proszę o pomoc! Przed chwilą zauważyłem taką powtarzalność (poza 00 na początku transmisji): D0 E2 F1 18 2E 3B 4E 5B 6A 7D 8C 97 A0 B0 C0 Đâń..;N[j}Ś— °Ŕ D0 E2 F1 18 2E 3B 4E 5B 6A 7D 8C 97 A0 B0 C0 Đâń..;N[j}Ś— °Ŕ D0 E2 F1 18 2E 3B 4E 5B 6A 7D 8C 97 A0 B0 C0 Đâń..;N[j}Ś— °Ŕ D0 E2 F1 18 2E 3B 4E 5B 6A 7D 8C 97 A0 B0 C0 Đâń..;N[j}Ś— °Ŕ D0 E2 F1 18 2E 3B 4E 5B 6A 7D 8C 97 A0 B0 C0 Đâń..;N[j}Ś— °Ŕ D0 E2 F1 18 2E 3B 4E 5B 6A 7D 8C 97 A0 B0 C0 Đâń..;N[j}Ś— °Ŕ D0 E2 F1 18 2E 3B 4E 5B 6A 7D 8C 97 A0 B0 C0 Đâń..;N[j}Ś— °Ŕ Powtarzalność jest normalna, gdyż odczyt nie zmienia się teraz. Edytowano Wrzesień 20, 2020 przez piotrd66 Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
Bartosz Wójcik Napisano Wrzesień 30, 2020 Zgłoś Udostępnij Napisano Wrzesień 30, 2020 A jak brzmi pytanie? Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.