2012-04-04 3 views
4

У меня есть USB-адаптер для одного провода на моем столе, я бы хотел автоматизировать его использование. Я использую его для программирования dallaskeys, которые являются значками, которые запрограммированы и прочитаны поверх onewire.Использование OWdotNET.dll в pythonnet (python для .NET)

Существует управляемая DLL, которая предлагает API, я люблю python, поэтому я хотел бы использовать эту управляемую DLL стороннюю версию из «python for .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/

ответ

2

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

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

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

adapter = OneWireAccessProvider.getDefaultAdapter()