У меня есть значение датчика, которое можно прочитать с помощью C ++ только потому, что оно было реализовано с его помощью, я хочу передать значение местоположения (две переменные с плавающей запятой) одного датчика в Python. Я много читал, и я нашел общую память, трубопроводы и многое другое, есть идеи, как лучше всего это сделать?
Из вашего вопроса не ясно, является ли это автономной программой на C ++ или библиотекой.
Если это отдельная программа, используйте подпроцесс модуль, чтобы вызвать его и прочитать его вывод.
Если это библиотека, используйте Cython построить модуль расширения Python, который оборачивает библиотеку. (Это не необходимо использовать Cython; Расширения Python Можно быть написано от руки. Но это значительно облегчит задачу.)
@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
Я не знаком с Python, однако, простой подход заключается в использовании некоторых протоколов связи, таких как последовательные порты или UDP, который является сетевым протоколом. Для приложений реального времени предпочтительным выбором является протокол UDP.