Как заменить команду «чтение» / «запись» «cat» и «echo» на программу python / c? - PullRequest
0 голосов
/ 01 февраля 2019

У меня проблемы с заменой команд ввода / вывода устройства, таких как:

echo 100 > /dev/rtmotor_raw_l0   # output 100hz frequency
cat /dev/rtswitch0 # read switch state

проблема вывода (python)

Я попытался заменить эту команду на python.

file = open('/dev/rtmotor_raw_l0','w')
file.write('100\n')            # I want output in this timing
file.close()                   # output reflected after closing file

Проблема в том, что вывод появляется после закрытия файла.Означает ли это, что мне нужно открывать и закрывать это устройство каждый раз, когда я хочу изменить его значение?Кроме того, изменение 'w' на 'a' не сработало.

проблема ввода (python)

Почти такая же проблема возникает при наблюдении ввода.

file = open('/dev/rtswitch','r')
file.read()  # works
file.read()  # after first read it does't work anymore
file.close() # need to reopen the file to get newer value

Iмог читать только 1 вход в каждом открываемых файлах.

Итак, в настоящее время Мне приходится заново открывать устройства каждый раз, когда я хочу записать / прочитать новые значения .Есть ли способ избежать этой проблемы?

Спасибо.

1 Ответ

0 голосов
/ 01 февраля 2019

Попробуйте позвонить file.flush() после write() вызова.Он сбросит буфер в файл, и вы сможете читать данные.

...