Я ищу отправку данных в программу C для использования с обменом данными RTAI FIFO, и, насколько я понимаю, нет поддержки RTAI для связи напрямую из сценария Python в пространство ядра, отсюда и мое решение.
Я использую subprocess
для обработки этих сообщений, но он не работает.
Мой Python сценарий:
import subprocess
from random import seed
from random import random
p = subprocess.Popen(['./data_reciever'],
stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
while True:
seed(1)
network_data = f"{random()}, {random()}, {random()}".encode()
print(network_data, "from py")
p.stdin.write(network_data)
p.stdin.flush()
Мой C код:
#include <stdio.h>
int main(void){
while(1){
char data;
scanf("%c", &data);
printf("%c", data);
}
return(0);
}
Я думаю, что моя проблема заключается либо в stdin.write
, либо в моем scanf
, так как мой python print выводится на терминал, а моя C программа - нет.
I я пробовал многие из подобных примеров здесь, но мне не удалось заставить их работать, любая помощь будет оценена.