Управление программой в Windows аппаратно, через Arduino
- Войдите на сайт для отправки комментариев
Сб, 23/03/2019 - 03:32
Всем привет!
Есть достаточное количество примеров управления устройствами на Arduino софтом из Win.
У меня обратная задача. Необходимо управлять программой, точнее ее контролами, из Arduino, при помощи кнопок и энкодеров.
Первое что приходит в голову, это привязать к контролам клавиши клавиатуры, или их сочетания, мышку и управлять через эмуляцию клавиатуры и мыши. Благо исходники программы (на С#) есть.
А можно обойтись без этого промежуточного костыля? И как то напрямую передавать значения на контролы программы? Все равно нужен какой то промежуточный драйвер, который привяжет назначенный ардуино сомпорт к определенному окну софтины?
Если программа на Виндовс ваша - то никаких проблем, можно читать данные из компорта и корректировать контролы. Если программа чужая и "ни сном ни духом" про ардуино не слыхивала - только через мышку и клавиатуру, ИМХО
Программа чужая, но исходники открыты и могут корректироваться. Проблема в том, что я отнюдь не специалист в шарпе )) Привязать контролы к клавиатуре без проблем, а вот как напрямую передавать данные на контролы? Впрочем, наверное это вообще не с Ардуино надо начинать, а с софта и его работе с компортом... Проблема еще в том, что эта программа состоит из разных кусков кода. Интерфейс с контролами на шарпе, само "сердце" программы на С++. И она тоже использует сомпорт, для своих целей.
Я бы и не заморачивался, сделал бы через клавиатуру, но проблема в том, что это не должно влиять и на другие запущенные программы, то есть все должно работать довольно адресно...
Не, ну как вариант конечно можно использовать немыслимые одновременные нажатия 2-3 клавиш, вернее, их эмуляцию ))
Ну, компортов же может быть много. Придумываете какой нибудь простенький протокол. В программе создаёте thread которая читает ардуиновский компортов и рассылает данные в нужное местуо сишной или Шараповой программы через messageQueue или как нибудь ещё.
ардуина как клавиатура чем не подошла?
Не то чтобы не подошла, но в Win может быть открыто сразу несколько окон, мне не нужно чтобы какие то действия через ардуино посылали бы команды не в то окно. Клавиатура работает с любым активным окном, а не с каким то конкретно.
Ничего не остаётся, как научить ардуину Ctrl-Tab делать...