Я бы хотел подключить несколько термометров к плате Raspberry через шину I2C на Raspbian, используя приложение C ++ с циклом событий, содержащим pselect()
.Открыв дескриптор файла i2c-0
по умолчанию (и используя интерфейс linux / i2c-dev.h ) из приложения, я бы добавил дескриптор файла к pselect()
fd_set *readfds
и fd_set *writefds
.Интересно, станет ли этот файловый дескриптор FD_WRITEABLE
или FD_READABLE
?Поскольку I2C является установкой «ведущий / ведомый», термометр не может инициировать связь, поскольку и операции чтения, и записи инициируются приложением в пользовательском пространстве, поэтому я полагаю, что вопрос FD_READABLE
не может быть и речи,верно?
Я не нашел ничего об использовании I2C с pselect, что означает чтение / запись в дескрипторе файла сокета?И почему обычные файлы не беспокоятся об этом? был самым близким ответом, на который я наткнулся: «Доступно для чтения означает, что в буфере приема сокета имеются данные или FIN. Доступно для записи означает, что в буфере отправки сокета есть свободное место."Устройство I2C буферизовано?Могу ли я зависеть от этого механизма?
Большое спасибо!