Неблокирующая передача данных между отдельными процессами C и Javascript - PullRequest
0 голосов
/ 25 июня 2019

Цель

У меня запущены два процесса:

  1. Сервер Node.js, который обрабатывает внешнюю связь (с другими компьютерами)
  2. C-код, который выполняется вбесконечный цикл, выполняющий обработку в реальном времени

Сервер node.js будет получать данные с внешнего компьютера, отправлять их в код C (который уже запущен), ждать ответа и отправлятьответ на внешний компьютер.

ОДНАКО, код C не может ждать ввода от сервера node.js.Он должен постоянно работать с использованием самых последних данных из кода js (обновлять эти последние значения при каждом получении новых данных).Другими словами, код C нуждается в неблокирующем вводе с сервера node.js.Сервер node.js должен получать событие (привязанное к обратному вызову) каждый раз, когда код C периодически отправляет ему информацию обратно.

Что я сделал

  • Код node.jsуже правильно обрабатывает внешний ввод-вывод (довольно полно)
  • Код C изолированно выполняет нужную мне задачу, просто не получая данные из кода node.js

Я сейчас пытаюсьскомбинировать их так, чтобы код C получал свои данные датчика из кода node.js (как я описал выше).

Как я могу это сделать

Моя текущая лучшая догадка о том, каксделать это с помощью сокетов (я думаю, что они не блокируют?).Однако я никогда не делал этого раньше, поэтому прежде чем потратить кучу времени на изучение работы сокетов и написание кода, я хочу убедиться, что этот метод действительно может работать.Итак, я хочу посмотреть, есть ли у кого-нибудь предложения о том, как проще всего достичь того, что я описал.Если это действительно сокеты, то, по крайней мере, я знаю, что я не трачу свое время.Спасибо за любые предложения!

...