Добрый день,
я сильный профан в сабже, не пинайте, пожалуйста, сильно.
Есть борда Cyclone V SoC, ее ethernet через PoE виден во внешний мир (скорей всего по DHCP она получила локальный адрес).
На борде есть самопально написанная С программа, функциональность которой можно описать так:
1. послать на выполнение строковую команду (одна достаточно длинная строка, скажем до 10КБайт) и сразу без задержки получить в ответ строку с результатом,
2. закачать или скачать один или несколько файлов в какую-то выделенную для этого внутреннюю директорию борды.
На данный момент юзер может залогиниться по ssh на борду и может это выполнять.
Теперь мне хочется, чтобы дополнительно
A. юзер мог скачать по возможности простую и компатибельную со всеми Windows/MAC/Android/Linux платформами библиотеку, в которой есть эта функциональность и удаленно делать все то же самое,
B. чтобы на этой борде стоял какой-то минималистический веб сервер, который бы позволял бы удобно запускать эти команды, смотреть результат и качать файлы по http протоколу,
C. чтобы юзер мог у себя на своем компьютере поставить какую-то программку с идентичным [B] функционалом, и делал то же самое со своего компа через етернет.
D. Дополнительно хотелось бы реализовать функциональность пароля на выполнение этих операций, причем чтоб пароль не светился в открытом доступе по UDP интерфейсу. Наверное было бы хорошо поддержать возможность работы на несколько юзеров, но, если это будет отъедать много процессорных ресурсов Cyclone V SoC, то могу забить.
Также то, что крутится на Cyclone V SoC не должно быть тяжелым, так как оба ядра заняты другими делами по самое здрассте, и правильнее было бы, чтобы такая программа была бы написана на С, чтоб я мог при необходимости приостанавливать ее выполнение, чтоб другие процессы не тормозились бы.
Как я понимаю
* мне надо на какой-то порт повесить мою программу, что реализует функциональность [1] (поделитесь, пожалуйста, простым примером), и найти какой-то простой до ужаса метод реализации [2],
* на чем-то написать веб морду, которая бы транслировала http команды в функциональность порта и обратно (то есть чтоб одновременно и порт работал, и веб морда, и юзер сам решал, что ему проще).
* на чем-то написать интерфейс посылки на порт (socket везде поддерживаются, или лучше что-то другое взять?), чтоб юзер мог прилинковать это к своему С/С++ проекту.
Тыкните, пожалуйста, носом что почитать, а еще луче, что конкретно, а именно какие библиотеки или пакеты, для этих операций выбрать.
ЗЫ в гугле не забанили, но от моря разных решений реально запутался и не могу принять решение, что проще, не пинайте, пожалуйста, сильно!
Спасибо!
ИИВ