pySerial in_wating - 1020 все время, и чтение заполнено барахлом и предыдущими данными
Здравствуйте,
У нас есть программное обеспечение Python, которое отлично работает в течение долгого времени со всеми компьютерами Mac OSX.версии до сейчас.Мы пробовали программное обеспечение на Mac Mojave, и оно не работало.
мы провели много тестов и обнаружили, что значение in_waiting равно нулю, если буфер пустой (это хорошо), но когда мы отправляем несколько байтов (не имеет значения, если 3 из 3000), значение in_waiting составляет 1020.
Это не все.Когда мы читаем 1020 байт (или 10000), мы видим много мусора и данные из предыдущих полученных значений в буфере чтения.
, специфичные для нашего продукта, мы используем CP2102.Программное обеспечение python на компьютере Mac отправляет параметры на внешний датчик, датчик начинает измерения и отправляет пакеты данных каждые 0,1 с.в предыдущей версии Mac Python проверяет in_waiting, и когда он имеет правильную длину, мы читаем его и отображаем.но теперь мы получаем 1020 все время, и информация спрятана где-то в буфере, и есть много результатов ... ПОМОЩЬ:)
спасибо
--- Код:
def receive(self, i = False, dly = 0.02):
sleep(dly)
try:
iw = self.in_waiting
if 0 == iw:
log("receive in_waiting=0")
return 'False'
if False == i:
i = iw
if i > iw:
log("receive need more then in_waiting="+str(iw))
return 'False'
s = self.read(i)
return s
except:
self.status = 'False'
return 'False'