Использование OWdotNET.dll в pythonnet (python для .NET)

У меня на столе стоит переходник USB-to-wire, хотелось бы автоматизировать его использование. Я использую его для программирования dallaskeys, которые представляют собой бейджи, которые программируются и считываются через onewire.

Существует управляемая DLL, которая предлагает API, мне нравится python, поэтому я хотел бы использовать эту стороннюю управляемую DLL из «python для .NET», также известную как pythonnet.

Мой скрипт выглядит следующим образом и работает без проблем:

import os
import clr
from clr import System

oneWireLibrary = clr.FindAssembly("OWdotNET")
System.Reflection.Assembly.LoadFile(os.path.abspath(oneWireLibrary))

НО, я не могу понять, как использовать классы в библиотеке. Я пробовал clr.OWdotNET, но это выдает ошибку атрибута. Я тоже пробовал clr.AddReference("OWdotNET").

Ссылки:

http://files.maxim-ic.com/sia_bu/softdev/owdocs_400beta2/Docs/OW.NET/OW.NET_Primer.html

http://pythonnet.github.io/


person Jorn Vanloofsvelt    schedule 04.04.2012    source источник


Ответы (1)


Я отвечаю на это с точки зрения IronPython, но я считаю, что в Python для .NET это похоже.

Вызов clr.AddReference можно рассматривать как аналогичный добавлению пути сборки .NET в sys.path, вы сообщаете об этом среде выполнения, но затем вам все равно нужно импортировать пространство имен в текущую область.

import clr
clr.AddReference("OWdotNET")
from com.dalsemi.onewire import OneWireAccessProvider

adapter = OneWireAccessProvider.getDefaultAdapter()
person slide    schedule 18.06.2012