Как передать значение переменной из C ++ в Python?

У меня есть значение датчика, которое можно прочитать с помощью C ++ только потому, что оно было реализовано с его помощью, я хочу передать значение местоположения (две переменные с плавающей запятой) одного датчика в Python. Я много читал, и я нашел общую память, трубопроводы и многое другое, есть идеи, как лучше всего это сделать?

2

Решение

Из вашего вопроса не ясно, является ли это автономной программой на C ++ или библиотекой.

Если это отдельная программа, используйте подпроцесс модуль, чтобы вызвать его и прочитать его вывод.

Если это библиотека, используйте Cython построить модуль расширения Python, который оборачивает библиотеку. (Это не необходимо использовать Cython; Расширения Python Можно быть написано от руки. Но это значительно облегчит задачу.)

3

Другие решения

@ramtha Z28 с предоставленной вами ограниченной информацией … у вас есть доступ к самому коду C ++ или вы вызываете DLL? Вы можете легко обернуть функцию в Cython для связи между Python и C ++, если у вас есть исходный код. Оберните все блоки C ++ в cpdef заявления, которые доступны из Python и C ++. Здесь приведены примеры файлов, которые показывают, как включить C-программу в Cython и взаимодействовать с Python: https://github.com/cythonbook/examples/tree/master/07-wrapping-c/01-wrapping-c-functions-mt-random

Если это DLL, вы должны объявить все константы, функции, возвращаемые значения. На самом деле этот пример может быть чем-то вроде того, что вы уже используете: http://people.seas.harvard.edu/~krussell/html-tutorial/wrap_dll.html

0

Я не знаком с Python, однако, простой подход заключается в использовании некоторых протоколов связи, таких как последовательные порты или UDP, который является сетевым протоколом. Для приложений реального времени предпочтительным выбором является протокол UDP.

0
По вопросам рекламы [email protected]