#python-3.x #dll #dllimport
Вопрос:
Мне поручено подключить два двигателя от LinMot к компьютеру с помощью программы на python. LinMot использует кабель Ethernet и протокол «LinUDP» для связи между двигателями и компьютером.
LinMot предоставил библиотеку dll .NET со списком всех функций для связи с двигателями. У меня возникли проблемы с импортом библиотеки dll в python и использованием содержащихся в ней функций. Я запускаю python 3.8 с установленным pythonnet.
Я уже пробовал решение с этого форума, но оно, похоже, не работает. Вот мой код :
import sys
sys.path.append("C:WindowsSystem32LinUDP.dll")
import clr
clr.AddReference("LinUDP")
import LinUDP as ln
drive = ln.ClearTargetAddressList
Это ошибка, которую я получаю:
clr.AddReference("LinUDP")
System.IO.FileNotFoundException: Unable to find assembly 'LinUDP'.
at Python.Runtime.CLRModule.AddReference(String name)
Я тоже пытался :
import sys
sys.path.append("C:WindowsSystem32LinUDP.dll")
import clr
clr.AddReference("C:WindowsSystem32LinUDP")
Он работает без ошибок, но я не знаю, как импортировать библиотеку и использовать ее функции. Согласно документации библиотеки LinUDP, в Visual Basic код должен быть :
Общедоступный Общий ACI Как LinUDP.ACI
Этот объект будет обрабатывать все датаграммы UDP на подключенные диски. После объявления вам нужно создать
объект.
В Visual Basic:
ACI = New LinUDP.ACI
ACI.ClearTargetAddressList
ACI.SetTargetAddressList (IPAddress1, TargetPort)
ACI.SetTargetAddressList (IPAddress2, TargetPort)
X = ACI.ActivateConnection("", "")
Я прошу прощения за это длинное сообщение, но я действительно заблудился, и даже поддержка LinMot не может помочь. Я действительно рассчитываю на то, что вы все мне поможете. Огромное спасибо.