Jestem fizykiem eksperymentalnym i jestem wielkim entuzjastą Python.Sterowniki instrumentów Python
Uważam, że świetnie nadaje się do analizy danych i skryptów, a ja używam go również do interfejsu instrumentów laboratoryjnych (analizator sieci, zakresy, analizatory sygnałów i generatory sygnałów ...). Myślę, że Python byłby bardzo poważnym konkurentem dla MATLAB w moim polu, gdyby istniała ładna biblioteka zawierająca sterowniki instrumentów.
Do tej pory używam kilka strategii ich interfejs bezpośrednio z mojego sesji IPython:
Korzystanie z biblioteki pyVisa, co jest miłe, pracując dla większości urządzeń, ale trochę bit niskopoziomowy i wymaga dodatkowej warstwy programowania, aby odsłonić użyteczne funkcje dla użytkownika.
udało mi niedawno w użyciu sterowników IVI-COM lub .NET przy użyciu pythondotnet (nie IronPython, których brakuje NumPy/Matplotlib ... biblioteki). To rozwiązanie jest oczywiście najbardziej satysfakcjonujące, ponieważ sterowniki IVI są już na dość wysokim poziomie i zazwyczaj są dostarczane przez sprzedawców, a instrumenty pochodzące od różnych dostawców są wtedy zamienne.
Moje pierwsze pytanie jest raczej techniczny jedno: czytam wszędzie że COM obiekty są zintegrowane w ramach .NET i że można użyć objets COM diretly w .NET. W moim przypadku mogę używać obiektów COM, importując moduł comtypes (zobacz http://code.activestate.com/recipes/578089-using-iviscope-instrument-driver-with-python/) i dotnet
z clr
z pythondotnet, ale po prostu nie rozumiem, jak uzyskać dostęp do tych obiektów COM za pomocą modułu clr
. Czy ktoś może wyjaśnić związek między COM i .NET?
Ponadto, zawsze jestem trochę zdezorientowany, skąd mam wiedzieć, kiedy mam plik DLL, jeśli zawiera on moduł .NET lub nie, i czy mogę go otworzyć z wersją 4.0 programu .NET (Jestem kompletnie początkującym w tych kwestiach ramowych, a link do odpowiedniej dokumentacji byłby całkowicie w porządku)?
Drugim pytaniem jest, bardziej ogólnie, czy nie istnieje moduł, który zgromadziłby większą liczbę sterowników dla różnych instrumentów w jednolity sposób? Wydaje mi się, że musimy być tysiącami ludzi pracujących nad tymi samymi problemami.
Niedawno wpadłem na moduł lantz http://lantz.glugcen.dc.uba.ar/. Niestety, jest to w Pythonie 3.0, a ja wciąż używam Pythona 2.7 (z dystrybucją pythonxy dla Windowsa). Co więcej, trochę się boję, ponieważ ten projekt nie próbuje wdrożyć zaleceń IVI, co byłoby dobrym punktem wyjścia.
Wszelkie komentarze lub linki do odpowiednich źródeł informacji byłyby mile widziane.
IronPython posiada wsparcie dla NumPy/scipy: https://www.enthought.com/repo/.iron/ – jhexp
@Samuel: Jako jeden z autorów Lantz, mogę powiedzieć, że jest na wspieranie IVI mapa drogowa. Plan ma zapewnić klasy mixin implementujące zestawy poleceń, które można łączyć. Prawdopodobnie nie będzie to możliwe przy użyciu tego samego interfejsu API. Konwencje nazewnictwa IVI i Python są niezgodne. Ale jesteśmy otwarci na dyskusję, zachęcamy do dołączenia do listy mailingowej lub otwarcia problemu, aby zobaczyć alternatywne rozwiązania. – Hernan
Być może nie będziesz mógł rzucić okiem na [slave] (https://slave.readthedocs.org/en/develop/) utworzoną przeze mnie warstwę abstrakcji. Używamy go do kontrolowania naszego sprzętu laboratoryjnego. – P3trus