Как я могу лучше контролировать свои последовательные COM-порты в Windows 10?
Мне нужно использовать последовательный порт с программой LabVIEW, которую я делаю. Я подключаю управляемую машину, которая использует RS232, через последовательный /USB конвертер. Windows (10) автоматически установила драйверы для этого конвертера, и я знаю, что он работает правильно.
Если я смотрю в диспетчере устройств, он там под портами:
И я могу успешно общаться с машиной, используя скрипт Python, который у меня есть:
import os
import sys
import glob
import operator
import serial
import time
from string import *
from time import strftime
# Initialize serial
sii=serial.Serial('COM3',1200,timeout=0.5)
print( "BEGIN")
sii.write(b"T\r")
time.sleep(1)
temp=sii.read(100).decode("utf-8")
sii.close()
print(temp)
print ("done")
Я знаю, что это работает, потому что он получает нужную информацию с машины. Он печатает правильное значение "temp", никаких проблем.
Тем не менее, он не подключается, когда я пробую это в LabVIEW, но мой вопрос не совсем об этом. Суть в том, что когда я пробую это в LabVIEW, а затем пробую тот же самый скрипт на python, который только что работал, я получаю эту ошибку:
serial.serialutil.SerialException: could not open port 'COM3': PermissionError(13, 'Access is denied.', None, 5)
Очевидно, что LabVIEW все еще использует COM3 или что-то в этом роде. У меня вопрос, как я могу "убить" это соединение?
Я прочитал в другом потоке переполнения стека, что вы можете попробовать щелкнуть правой кнопкой мыши COM3 в Диспетчере устройств, отключить его, а затем включить его, но я попробовал это (без перезагрузки, как вас просят), и это не работает, Это работает снова, если я перезагружаюсь, но это не совсем решение.
Есть ли какой-нибудь умный способ сделать это? Я не могу использовать Portmon, потому что я использую 64-битную Windows, и я попробовал методы запуска его в режиме совместимости, которые тоже не работали. Я скачал "AccessPort", но, честно говоря, я не знаю, что с ним делать; порты для меня несколько чёрная магия. В идеале у меня была бы какая-то программа, которая показывает, какие порты связаны с какими приложениями, и позволяла бы разорвать эти связи, но это, вероятно, наивное представление об этом.
Что я могу сделать, чтобы продолжить? благодарю вас.