♬ ☘ Moja muzyka do kodowania ♬ ♬ ♬ ☘
♫ ♩ ♪ Voyager ⚡ ☘ ⚡ Ghost Mile ♪ ♩ ♫
https://youtu.be/ISGh4P8h7mM
Aby błysnąć w towarzystwie...
...warto znać kilka nowoczesnych, fajnie brzmiących branżowych skrótów, można nimi ewentualnie zaskoczyć przy kawie współrozmówców osiągając efekt - łooo . W przypadku maszyny Rigol 1054z dwa aktualnie dla mnie najważniejsze pojęcia to:
LXI `LAN eXtensions for Instrumentation` - czyli tak ogólnie możliwość pracy urządzenia laboratoryjnego (oscyloskop/generator/zasilacz) w otoczeniu sieciowym, póki co to najczęściej jest miedziany Ethernet z TCP/IP v4.
SCPI `Standard Commands for Programmable Instruments` - zestaw ogólnych poleceń, czy raczej specyfikacja takiego zestawu, mających strukturę hierarchiczną (ogół-szczegół) i umożliwiających wpływanie na różne, różniste aspekty funkcjonowania urządzenia, a także na pozyskiwanie informacji o aktualnym jego stanie. Medium komunikacyjnym jest w tym przypadku to, co urządzonko sobie posiada: sieć (LXI), a może USB a może zwykły RS232 czy RS485. Rigol ma dwa pierwsze, z czego sieć jest dla mnie wygodniejsza, bo nie jestem przywiązana kabelkiem USB do kompa, oscyloskop może stać w drugim końcu pokoju, aby skrętka sięgnęła. No i nie blokuje sobie slotu w hubie USB.
RIGOL ProgrammingGuide
http://int.rigol.com/File/TechDoc/20151 ... ide_EN.pdf
Ten dokument szczerze polecam do przeglądnięcia i zastanowienia jak wykorzystać dostępny interfejs sterujący oscyloskopem, można urządzenie tresować jak się chce, w sumie to brakuje tylko skakania przez kijek.
Aby zabawka zadziałała musimy skonfigurować sobie sieć, wyszło mi na to, że w domowym routerze najlepiej ustawić stałe IP przypisane do adresu MAC, a w /etc/hosts Linuksa nazwać oscyloskop jakoś po swojemu - u mnie jest 'cukierek', ponieważ on wygląda jak paczka kolorowych żelków.
Tak ogólnie to Rigol komunikuje się po porcie 5555 krótkimi pakietami tekstowymi, większe ilości danych mogą ewentualnie do nas przylecieć na okazję robienia zrzutek ekranu. Tak z poziomu konsoli, jak to się mawia - z palca najprościej wykorzystać polecenia echo/netcat, załatwiają całość zagadnienia całkiem sprawnie. Można oczywiście nabazgrać coś z okienkiem, ja na przykład zrzucarkę ekraników zrobiłam w formie skryptu powłoki dostępnego na PATH, ale jak komu wygodniej. Polecenia można pisać z dużych, można z małych, ale lepiej konsekwentnie, jak czegoś Rigol nie ogarnie - na chwilkę wyświetli okienko z 'Invalid Input'
No to teraz poćwiczymy cukierkowego koleżkę, sport to zdrowie.
Przydatne polecenia SCPI
Pytałam o to na czacie kiedyś - czy da się zresetować na miękko maszynkę w przypadku zaklikanie się w kącie z ustawieniami, ale aby nie robic on-off. No to da się: przestawienie oscyloskopu w stan domyślny, choć nie zawsze dobry realizuje polecenie:
Kod: Zaznacz cały
echo '*rst' | netcat -w 20 cukierek 5555
Chwilkę to trwa, ale urządzenie budzi się w stanie mniej więcej takim jak po włączeniu zasilania.
Zatrzymanie akwizycji danych - odpowiednik guzika run/STOP
Kod: Zaznacz cały
echo ':stop' | netcat -w 20 cukierek 5555
Uruchomienie skanowania w trybie ciągłym - RUN/stop
Kod: Zaznacz cały
echo ':run' | netcat -w 20 cukierek 5555
Zrobienie migawki po złapaniu przez trigger
Kod: Zaznacz cały
echo ':single' | netcat -w 20 cukierek 5555
Wyczyszczenie 'starych przebiegów' z ekranu
Kod: Zaznacz cały
echo ':clear' | netcat -w 20 cukierek 5555
Wyświetlenie dostępnych parametrów widocznego przebiegu, cała fura tego na pół ekranu
Kod: Zaznacz cały
echo ':measure:adisplay on' | netcat -w 20 cukierek 5555
schowanie owej tabliczki
Kod: Zaznacz cały
echo ':measure:adisplay off' | netcat -w 20 cukierek 5555
Zmiana dzielnika dla sond x1 lub x10
Kod: Zaznacz cały
echo ':CHANNEL1:PROBE 10' | netcat -w 20 cukierek 5555
Kod: Zaznacz cały
echo ':CHANNEL1:PROBE 1' | netcat -w 20 cukierek 5555
Deko wkurzające to jest, ale mój egzemplarz uparcie startuje z sondą na x10, ciągle mu poprawiam...
Tryby pracy AC,DC i ziemia jak trzeba przebiegi poukładać na ekranie
Kod: Zaznacz cały
echo ':CHANNEL1:COUPLING AC' | netcat -w 20 cukierek 5555
Kod: Zaznacz cały
echo ':CHANNEL1:COUPLING DC' | netcat -w 20 cukierek 5555
Kod: Zaznacz cały
echo ':CHANNEL1:COUPLING GND' | netcat -w 20 cukierek 5555
zmiana podstawy czasu
Kod: Zaznacz cały
echo ':timebase:scale 0.001' | netcat -w 20 cukierek 5555
i tak dalej i tak dalej, zgodnie ze spisem poleceń, mnóstwo tego dali, super!
Tak ogólnie to jak chemy dowiedzieć się jaka jest aktualna wartość danego parametru czy ustawienia to dokładamy na końcu polecenia pytajnik, o tak:
Kod: Zaznacz cały
echo ':trigger:mode?' | netcat -w 20 cukierek 5555
Dostaniemy w zamian literał np. EDGE będący obowiązująca wartością
Dowody rzeczowe, że nam zadziałało
W sumie to pierwsza sprawa, od której zaczęłam rozkminiać SCPI w Rigolu - jak zrobić obrazek z tego co na ekranie. Fotografowanie aparatem oscyloskopu może i jest jakimś rozwiązaniem ale nie zawsze pasuje, na Fejsik może tak, no ale w poważniejszą pisaninę? Magazynowanie obrazków na pendrive - to przekładać trzeba w kółko gwizdek, szkoda złącza. Zostało się na koniec zdalne sterowanie, sporo o tym napisano w sieci, to przykład na którym bazowałam: https://www.theimpossiblecode.com/blog/ ... ure-linux/
I tak ogólnie to byłoby fajnie, gdyby nie to, że tam robią się pliki *.bmp o wadze 1.1MB, a ja tak nie chce. Ale wystarczy doczytać dokładnie co potrafi polecenie `display:data` i wyjdzie nam, że możemy zamienić format obrazka ( i dla *.png czy *.jpg mamy parędziesiąt kB danych), możemy od razu nakazać w skali szarości a nie w kolorze no i możemy zrobić inwersję grafiki.
podstawowy zrzut ekraniku, kolorowy (czarne tło), ładny do www
Kod: Zaznacz cały
echo ':display:data? on,off,png' | netcat -w 20 cukierek 5555 | tail -c +12 > `date '+%Y%m%d_%H%M%S'`_candy.png
zrzutka kolorowa, ale w rewersie, niezła do www i może do wydruków
Kod: Zaznacz cały
echo ':display:data? on,on,png' | netcat -w 20 cukierek 5555 | tail -c +12 > `date '+%Y%m%d_%H%M%S'`_candy.png
zrzutka monochromatyczna w rewersie, dobra do druku
Kod: Zaznacz cały
echo ':display:data? off,on,png' | netcat -w 20 cukierek 5555 | tail -c +12 > `date '+%Y%m%d_%H%M%S'`_candy.png
Fatalna kombinacja ustawień
To jeden z popularniejszych żartów - 'przygotowanie oscyloskopu do pracy', ale takie że ni diabła nie wiadomo jak plamkę wydobyć na ekran, już o całej linii nie wspominając. Niestety eksperymentując z ustawieniami urządzenia łatwo sobie zrobić takie kuku, i chyba dobrze mieć możliwość automatycznego doprowadzenia oscyloskopu do znanego sobie i jakoś uniwersalnego stanu. I na tę okazję naszkicowałam skrypcik takowy:
ogarnijsie.sh pisze:Kod: Zaznacz cały
#!/bin/bash
declare -a scpiCommands=(
":channel1:probe 1" # sonda x1
":channel1:coupling AC" # tryb AC
":channel1:scale 1" # U = 1V/div
":trigger:mode edge" # wyzwalanie zboczem
":trigger:edge:level 1" # na 1V
":timebase:scale 0.0002" # T = 200 us/div
)
echo "reset...(5sek)"
echo "*rst" | netcat -w 20 cukierek 5555
sleep 5
echo "...setup"
for cmd in "${scpiCommands[@]}"
do
echo "$cmd"
echo "$cmd" | netcat -w 20 cukierek 5555
sleep 2
done
Jak nazwa wskazuje w miarę ogarnia Rigola z pierwszym kanałem gotowym do pracy i dalszych zmian ustawień, oczywiście polecenia jakie tam wpiszemy to sprawa naszego stylu pracy, potrzeb etc/itd, tak więc owocnych eksperymentów życzę i tu kończę.