Управление программой в Windows аппаратно, через Arduino

Progressor
Offline
Зарегистрирован: 23.03.2019

Всем привет!

Есть достаточное количество примеров управления устройствами на Arduino софтом из Win.

У меня обратная задача. Необходимо управлять программой, точнее ее контролами, из Arduino, при помощи кнопок и энкодеров.

Первое что приходит в голову, это привязать к контролам клавиши клавиатуры, или их сочетания, мышку и управлять через эмуляцию клавиатуры и мыши. Благо исходники программы (на С#) есть.

А можно обойтись без этого промежуточного костыля? И как то напрямую передавать значения на контролы программы? Все равно нужен какой то промежуточный драйвер, который привяжет назначенный ардуино сомпорт к определенному окну софтины?

b707
Offline
Зарегистрирован: 26.05.2017

Если программа на Виндовс ваша - то никаких проблем, можно читать данные из компорта и корректировать контролы. Если программа чужая и "ни сном ни духом" про ардуино не слыхивала - только через мышку и клавиатуру, ИМХО

Progressor
Offline
Зарегистрирован: 23.03.2019

Программа чужая, но исходники открыты и могут корректироваться. Проблема в том, что я отнюдь не специалист в шарпе )) Привязать контролы к клавиатуре без проблем, а вот как напрямую передавать данные на контролы? Впрочем, наверное это вообще не с Ардуино надо начинать, а с софта и его работе с компортом... Проблема еще в том, что эта программа состоит из разных кусков кода. Интерфейс с контролами на шарпе, само "сердце" программы на С++. И она тоже использует сомпорт, для своих целей.

Я бы и не заморачивался, сделал бы через клавиатуру, но проблема в том, что это не должно влиять и на другие запущенные программы, то есть все должно работать довольно адресно...

 

Не, ну как вариант конечно можно использовать немыслимые одновременные нажатия 2-3 клавиш, вернее, их эмуляцию ))

asam
asam аватар
Offline
Зарегистрирован: 12.12.2018

Ну, компортов же может быть много. Придумываете какой нибудь простенький протокол. В программе создаёте thread которая читает ардуиновский компортов и рассылает данные в нужное местуо сишной или Шараповой программы через messageQueue или как нибудь ещё.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

ардуина как клавиатура чем не подошла?

Progressor
Offline
Зарегистрирован: 23.03.2019

Не то чтобы не подошла, но в Win может быть открыто сразу несколько окон, мне не нужно чтобы какие то действия через ардуино посылали бы команды не в то окно. Клавиатура работает с любым активным окном, а не с каким то конкретно.

sadman41
Offline
Зарегистрирован: 19.10.2016

Ничего не остаётся, как научить ардуину Ctrl-Tab делать...