Последовательный ввод-вывод Erlang

Я хочу поговорить со своим модемом с помощью erlang. Монтируется как /dev/ttyUSB и прекрасно понимает AT-команды.

  • Могу ли я читать и писать с устройства со стандартным файловым модулем?

  • Как насчет скорости передачи, размера байта, четности, RTS/CTS, DSR/DTR и тому подобного?

  • Есть ли у вас опыт работы с tonyg-erlang-serial-1.0? (Я не слишком уверен в этом пакете, поскольку в файле readme говорится: «Это портированная программа с драйвером erlang для последовательной связи, первоначально написанная Йоханом Бевемиром в 1996 году и время от времени поддерживаемая Тони Гарнок-Джонсом с 2007 года».

  • Какова обычная практика последовательного ввода-вывода в erlang?


person Hyperboreus    schedule 07.08.2011    source источник
comment
Я пробовал erlang-serial (вместе с gen_serial blog.spearce.org/2004 /02/genserial-01-released.html), но мне не удалось заставить его работать.   -  person Alexey Romanov    schedule 08.08.2011
comment
github.com/systra/erlang-serial (с поддержкой арматуры)   -  person Eric des Courtis    schedule 12.10.2013


Ответы (3)


Получите erlang-serial с поддержкой арматуры на github.com/systra/erlang-serial. Вот простой пример использования:

Serial = serial:start([{speed,38400},{open,"/dev/ttya"}]),
Serial ! {send, <<"test">>},
receive
    {data,FromOtherSide} ->
        doStuff(FromOtherSide);
    Other ->
        Other
end.
person Eric des Courtis    schedule 11.10.2013
comment
Выглядит многообещающе, но у меня ошибка установки: github.com/tonyg/erlang-serial/issues /14 следовал инструкциям - person quantumpotato; 12.03.2017

Если вы спрашиваете о записи в файлы устройств, то вы не можете сделать это, используя доступные файловые модули в erlang.

Вам нужно будет открыть порт и выполнить код c/C++.

Проверьте, помогает ли это .

person Arunmu    schedule 08.08.2011
comment
@DownVoter: Не забудьте прокомментировать !! - person Arunmu; 12.08.2011

Таким образом, для erlang, по-видимому, нет библиотеки последовательной связи. Теперь мне пришлось снова выкапывать python, использовать pyserial, создавать потоки python из erlang и общаться через stdin.

Если кто-то знает лучше, пожалуйста, докажите, что я ошибаюсь. Я хотел бы иметь встроенный последовательный ввод-вывод erlang.

person Hyperboreus    schedule 10.08.2011
comment
Дайте мне знать, чем это отличается от использования порта для выполнения кода, написанного на другом языке? - person Arunmu; 12.08.2011
comment
Если вы хотите использовать Erlang и Python вместе, загляните на erlport.org. - person hdima; 20.08.2012