Strona 1 z 1

Sigrok - program obsługujący urządzenia pomiarowe

: poniedziałek 20 lis 2017, 06:27
autor: SuperGość
Sigrok - do poczytania tu https://sigrok.org/wiki/Main_Page
warto zapoznać się - jeden soft a tyle możliwości supportu dla różnych urządzeń!
Zaznaczam nie próbowałem tego, znalazłem jako ciekawostkę.

Re: Sigrok - program obsługujący urządzenia pomiarowe

: poniedziałek 20 lis 2017, 10:19
autor: Antystatyczny
Całkiem ciekawy program. Widzę, że obsługuje i Brymeny, i Saleae...

Re: Sigrok - program obsługujący urządzenia pomiarowe

: poniedziałek 20 lis 2017, 19:21
autor: j23
Temat jest mi znany. Próbowałem konfirgurować Sigrok'a pod Debian i pod Rigol DS1054Z, ale ostatecznie nici z tego wyszły... Może Sigrok działa tylko z wybranymi modelami, a może ja -co jest bardziej prawdopodobne- jeszcze nie znam na tyle dobrze Debiana.

Edit1:
Ze strony dokumentacji programu Sigrok dla serii Rigol DS1000Z (a więc i w tym popularnego DS1054Z)wynika, że Rigol działa w oparciu o protokół USBTMC, który bazuje na komendach SCPI... Póki co mało mi to mówi, ale patrzę dalej o co chodzi z tym protokołem.. Tutaj pisze więcej: https://sigrok.org/wiki/USBTMC - innymi słowy wniosek jest taki, że plik konfigurujący ten protokół to jest kod języka C do skompilowania (a więc kompilacja w Debianie ze źródeł, pięknie... pięknie, bo dochodzą inne zależności/dependencies). Niektóre z tych zależności to są chyba pakiety tzw.backdoor packages, czyli w repozytorium Debiana mogą one być lekko przedawnione.. hmm... ALE ZNALAZŁEM CO innego:
https://github.com/Ell-i/ELL-i-PyBot-Tests/wiki/Sigrok-for-Saleae-Logic-Analyzer-and-Rigol-Oscilloscope
Spróbuję zainstalować wg tej metody i zobaczymy...

Edit2:
Do debiana jest taka to a taka instrukcja... (w trakcie sprawdzania):
https://sigrok.org/wiki/Linux

Edit3:
Podczas instalacji Sigrok na Debian/Jessie i386 (32 bit) wg tej powyższej instrukcji wszystko szło dobrze do etapu, gdzie trzeba skompilować pakiet libsigrok, a konkretnie po wydaniu komendy "make" jest taki efekt:

Kod: Zaznacz cały

~/libsigrok$ make
make  all-am
  GEN      bindings/java/sigrok-core.jar
bindings/java/org/sigrok/core/classes/ConfigKey.java:742: error: int cannot be dereferenced
    return new Variant(classesJNI.ConfigKey_parse_string__SWIG_0(value, dt.swigValue()), true);
                                                                          ^
1 error
Makefile:4151: polecenia dla obiektu 'bindings/java/sigrok-core.jar' nie powiodły się
make[1]: *** [bindings/java/sigrok-core.jar] Błąd 1
Makefile:1601: polecenia dla obiektu 'all' nie powiodły się
make: *** [all] Błąd 2

Co może być grane - nie wiem dokładnie. Przypuszczam, że może mieć to jakiś związek z bibliotekami Javy (inna wersja u mnie w systemie niż w opisywanej, pewnie nieco starszej instrukcji). Popatrzę nad tym jutro. Być może, że i zapytam gdzieś coś kogoś na innym forum. Dodam, że wszystkie biblioteki i pakiety (tj. te z instrukcji) są poinstalowane, została sama kompilacja źródeł i właśnie na libsigrok się to wywala... :(

Pozdrawiam! 73 j23

Re: Sigrok - program obsługujący urządzenia pomiarowe

: wtorek 21 lis 2017, 01:07
autor: Antystatyczny
U mnie instalacja w Mint 18.2 przebiegła pomyślnie, ale jest problem ze współpracą z tanim analizatorem udającym Saleae. Oczywiście dodana jest reguła udev, by analizator mógł pracować jako non-root, działa poprawnie z innym softem, ale z Pulseview niestety nie chce działać. Niby jest wykrywany i próbuje być obsługiwany przez bibliotekę(?) fx2lafw, ale są jakieś problemy. Tak to wygląda:

Zrzut ekranu z 2017-11-21 00-59-36.png


A sam program pulseview uruchamia się poprawnie. Aha, w windows 10 pulseview działa poprawnie oraz współpracuje z klonem saleae.

Re: Sigrok - program obsługujący urządzenia pomiarowe

: wtorek 21 lis 2017, 09:44
autor: xor

Re: Sigrok - program obsługujący urządzenia pomiarowe

: wtorek 21 lis 2017, 14:04
autor: Antystatyczny
xor pisze:W obu przypadkach brakowało pliku fx2lafw-*.fw


No dobra, a skąd wziąć ten soft? U mnie na dysku tego raczej nie ma, a na stronach sigroka też tego nie widzę.

Edit:

Już sobie poradziłem. Należy użyć softu stąd: https://sigrok.org/wiki/Fx2lafw, a następnie zrestartować pulseview. Saleae śmiga aż miło.

Re: Sigrok - program obsługujący urządzenia pomiarowe

: wtorek 21 lis 2017, 15:58
autor: j23
Antystatyczny pisze:
xor pisze:W obu przypadkach brakowało pliku fx2lafw-*.fw


No dobra, a skąd wziąć ten soft? (...)
To było podane w tym linku:
j23 pisze:(...)ALE ZNALAZŁEM CO innego:
[url]https://github.com/Ell-i/ELL-i-PyBot-Tests/wiki/Sigrok-for-Saleae-Logic-Analyzer-and-Rigol-Oscilloscope[/url]
(...)
No, ale okey.. W sumie wrażenie sprawiało jakby to tylko o Rigola chodziło... Na marginesie ten plik naprawia problemy występujące z Saleae i ich klonami, ale Rigol'a niestety nie.

Tymczasem jeśli chodzi o Rigola to ten błąd co był pozostał, tzn.: ^

Kod: Zaznacz cały

1 error
Makefile:4151: polecenia dla obiektu 'bindings/java/sigrok-core.jar' nie powiodły się
make[1]: *** [bindings/java/sigrok-core.jar] Błąd 1
Makefile:1601: polecenia dla obiektu 'all' nie powiodły się
make: *** [all] Błąd 2
Tylko, że to taka dziwna sprawa, bo to jest błąd podczas ręcznej kompilacji pakietu libsigrok (budowanie libsigrok ze źródeł, po wydaniu komendy make) i ten błąd jakby informuje, że nie widzi pliku sigrok-core.jar (a nie widzi, bo go po prostu twórcy w pakiecie nie umieścli.. -czemu? nie wiem).

No dobra, NATOMIAST nieco później korzystając z automatycznej instalacji pakietów za pomocą Synaptic Package Manager (akurat wolałem to robić w trybie graficznym, bo od razu widać, który pakiet jest, a który nie poinstalowany). No i wyszło, że pakiet libsigrok się JAKOŚ zainstalował - JAKOŚ podejrzanie bez kłopotu.
Reguła jest w /etc/udev/rules.d/ dodana wg instrukcji:
Install the udev rules file

These steps prevent the need to run libsigrok frontends as superuser. Copy the udev rules file from libsigrok/contrib/z60_libsigrok.rules to /etc/udev/rules.d/ (or where-ever your distribution stores udev rules files).

,czyli co trzeba jest u mnie wykonane, udev zrestartowany. Niby vendor i nr produktu powinien być w listingu portów akceptowalny, a jednak..

Przy konfiguracji takiej, że Rigol DS1054Z podłączony jest poprzez USB do PC'ta na którym siedzi Debian Jessie i386 (32bit), zalogowany jestem z konta użytkownika i wszystkie pakiety do sigroka (włącznie z pulseview są poinstalowane,
podczas odpalenia pulseview w trybie root'a dzieje się:

Kod: Zaznacz cały

# pulseview
Qt: Session management error: Authentication Rejected, reason : None of the authentication protocols specified are supported and host-based authentication failed
sr: serial: Error opening port (2): Nie ma takiego pliku ani katalogu.


Podczas odpalenia pulseview w trybie usera nic złego się nie dzieje, ale gdy chcę wybrać Rigola spośród dostępnych "device" z pulseview w konsoli pojawia się błąd:

Kod: Zaznacz cały

$ pulseview
sr: serial: Error opening port (2): Nie ma takiego pliku ani katalogu.

Wiem, ten sam błąd był wyżej, ale najwyraźniej pochodzi on z jakiegoś problemu otwarcia portu typu szeregowego (no wiadomo, usb działa jako port szeregowy).
Jeszcze zobaczę dziś na tą strony i posprawdzam:
1. https://sigrok.org/wiki/Building#Cannot_access_USB_.2F_serial_.2F_other_device
2. https://github.com/ralfstx/rigol-linux

73 j23

Re: Sigrok - program obsługujący urządzenia pomiarowe

: wtorek 21 lis 2017, 17:19
autor: xor
Zobacz jak sigrok-cli reaguje na Twojego Rigola:

Kod: Zaznacz cały

sigrok-cli --scan

Re: Sigrok - program obsługujący urządzenia pomiarowe

: czwartek 23 lis 2017, 17:28
autor: Antystatyczny
Jeszcze a propos Saleae: Zamiast pojedynczej reguły udev, warto wrzucić plik o takiej treści:

# Saleae Logic Analyzer
# This file should be installed to /etc/udev/rules.d so that you can access the Logic hardware without being root
#
# type this at the command prompt: sudo cp 99-SaleaeLogic.rules /etc/udev/rules.d

SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="0925", ATTR{idProduct}=="3881", MODE="0666"
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="21a9", ATTR{idProduct}=="1001", MODE="0666"
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="21a9", ATTR{idProduct}=="1003", MODE="0666"
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="21a9", ATTR{idProduct}=="1004", MODE="0666"
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="21a9", ATTR{idProduct}=="1005", MODE="0666"
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="21a9", ATTR{idProduct}=="1006", MODE="0666"


Opis instalacji jest w treści pliku, a on sam powinien nazywać się np. tak: 99-SaleaeLogic.rules

Gdyby coś nie chciało działać, można zrestartować udev poleceniem: sudo udevadm control --reload

Powyższy sposób zapewnia obsługę większej ilości urządzeń (oczywiście tej firmy) bez uprawnień root'a.