Сделал обертку на основе QIODevice для работы с устройством. Работа реализована синхронно.
Для этого были переопределены следующие методы:

virtual bool canReadLine() const { return false; }
virtual bool isSequential() const { return true; }
virtual bool open(OpenMode mode);
virtual void close();
virtual qint64 readData(char * data, qint64 maxSize);
virtual qint64 writeData(const char * data, qint64 maxSize);


Данный режим блокирует главный поток и работать с устройством можно лишь в отдельном потоке.
Но с устройством можно работать и в асинхронном режиме (через overlapped).
Какие методы нужно еще переопределить, чтоб добиться этого ?

Хотелось бы подписаться на сигнал, чтоб приходил readyRead, а после этого вычитывать данные в слоте.
Не совсем понятно как инициировать чтение, чтоб начал приходить сигнал.