@denis_l_eryomin

Чем заменить TIOCMIWAIT при использовании pyserial в Windows?

Есть вот такое решение для датчиков посетителей. Это для Linux, и всё корректно пашет. Требуется такое же замутить для винды на том же python. Толковых примеров считывания сигналов под виндой не нашёл. Накопал только, что это делается через win32api и WaitCommEvent. Но что там и как - материалов нет. Помогите, если кто решал подобное.
#!/usr/bin/python
#coding=utf-8
import os,sys,datetime
from serial import Serial
from fcntl import  ioctl
from termios import (TIOCMIWAIT,TIOCM_RNG,TIOCM_CTS)
ser = Serial('/dev/ttyUSB0')
wait_signals = (TIOCM_RNG | TIOCM_CTS)
ins=0
out=0
status=""
x=0
os.system('clear')
while True:
    ioctl(ser.fd, TIOCMIWAIT, wait_signals)
    if ser.getRI() == True and ser.getCTS() == False:
        x=x+1
        status=status+"in"
    if ser.getRI() == False and ser.getCTS() == True:
        x=x+1
        status=status+"out"
    if x == x*2/2:
        if status == "inout":
            ins=ins+1
            status=""
            f=open("posetiteli.csv", "a+")
            print >>f,datetime.datetime.now().strftime("%d-%m-%Y %H:%M:%S"),'Вошло:',1,'Вышло:',0
            f.close()
            os.system('clear')
            print datetime.datetime.now().strftime("%d-%m-%Y %H:%M:%S"),'Вошло:',ins,'Вышло:',out
        if status == "outin":
            out=out+1
            print >>f,datetime.datetime.now().strftime("%d-%m-%Y %H:%M:%S"),'Вошло:',0,'Вышло:',1
            f.close()
            os.system('clear')
            print datetime.datetime.now().strftime("%d-%m-%Y %H:%M:%S"),'Вошло:',ins,'Вышло:',out
            status=""
            f=open("posetiteli.csv", "a+")

Как сделать так же в windows python?
  • Вопрос задан
  • 446 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы