Есть программно-аппаратный комплекс, состоит из внешнего устройства и ПК с управляющей программой. Связь между устройством и ПК осуществляется по RS232 (точнее USB-RS232). Устройство пишет данные в ПК пачкой 10кБайт, программа получает пачку не полностью, число пропадающих байт варьируется между пусками. Чтение делаю с помощью ReadFile побайтно. При получении данных считаю количество и отправляю снова читать. Фактически получается что буфер вычитан полностью, но данные не все.
В линии RS232 только Rx, Tx, SGND.
Если пачка 15кбайт то программа получает данных больше 10кбайт стабильно, но все равно не все.
HTerm вроде все вычитывает.
Порт настроен с помощью SetCommState 115200, 8 бит, 1 стоп-бит, четности нет, контроля линий нет.
Работа с COM-портом в C++ видел.
Вопрос собственно в следующем. Полагая что устройство все таки отдает все что положено, где могут теряться данные?
В моем случае видимо какой-то глюк с буфером приема. Увеличение размера принимающего буфера с помощью SetupComm решило проблему.
Функция SetupComm устанавливает размеры (в байтах) очередей приема и передачи.
Serial небольшая библиотека для работы с последовательным портом в Windows, созданная в результате решения вопроса.
Кроме настройки порта, стоит установить большую длину очереди с помощью функции SetupComm.
Размер по умолчанию порядка 1024, Вам нужно увеличить, видимо, до размера пакета.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Подскажите пожалуйста, как растянуть дочерние div в родительском div который имеет width: 100%;Таблица не подходит
если прибавлять или вычитать при том что полученное число будет положительным, то никаких проблем, но если при вычитании на выходе число...