Size: a a a

2020 February 20

В

Виктор in ErlangRus
Maksim Lapshin
Непонятно зачем отдельные юниксовые процессы
Архитектура проще. Изоляция. Меньше кода на C, чем если бы один erlang port управлял всеми uart. В той архитектуре даже на каждый gpio свой порт. Проблем нет.
источник

ML

Maksim Lapshin in ErlangRus
Виктор
Архитектура проще. Изоляция. Меньше кода на C, чем если бы один erlang port управлял всеми uart. В той архитектуре даже на каждый gpio свой порт. Проблем нет.
нет. Зачем вообще отдельный процесс?
источник

MK

Matwey Kornilov in ErlangRus
Maksim Lapshin
нет. Зачем вообще отдельный процесс?
Был где-то модуль с nif-ками, но я им не пользовался
источник

В

Виктор in ErlangRus
Maksim Lapshin
нет. Зачем вообще отдельный процесс?
Потому что я не хотел тащить libserialport через nif.
источник

ML

Maksim Lapshin in ErlangRus
Виктор
Потому что я не хотел тащить libserialport через nif.
А какие функции выполняет libserialport?
источник

ML

Maksim Lapshin in ErlangRus
Я смотрю на https://www.sigrok.org/api/libserialport/0.1.1/ и вижу что от обычного сокета отличается разве что какими-то сигналами
источник

ML

Maksim Lapshin in ErlangRus
Те выглядит, что апи обычного сокета: read и write. Так? Или я что-то упускаю?
источник

MK

Matwey Kornilov in ErlangRus
Maksim Lapshin
Те выглядит, что апи обычного сокета: read и write. Так? Или я что-то упускаю?
не плюс там еще могут быть проблемы с нежелательной буферизацией
источник

MK

Matwey Kornilov in ErlangRus
тебе понадобится tcdrain какой-нибудь
источник

ML

Maksim Lapshin in ErlangRus
Matwey Kornilov
не плюс там еще могут быть проблемы с нежелательной буферизацией
Ага, те наличие буфера в обычном сокете тут может создать проблему?
источник

MK

Matwey Kornilov in ErlangRus
Maksim Lapshin
Ага, те наличие буфера в обычном сокете тут может создать проблему?
ну в ядро ОС помнит времена текстовых терминалов. поэтому ты можешь слать какие-то байты в UART, а оно такое: "пока перевод строки не придет, отправлять ничо не буду", и ты такой ждёшь непонятно чего, думая, что все твои данные уже на той стороне в МК
источник

MK

Matwey Kornilov in ErlangRus
это всё конечно же настраивается
источник

ML

Maksim Lapshin in ErlangRus
Это вроде решается настройками ioctl
источник

MK

Matwey Kornilov in ErlangRus
да, тут главное не забыть настроить всё что нужно.
источник

MK

Matwey Kornilov in ErlangRus
еще отличие от сокета состоит в том, что на длинных линиях могут возникать лишние символы. и вообще тебе могут приходить битые данные в ответ
источник

MK

Matwey Kornilov in ErlangRus
тут руками придется проверять целостность данных своих. обычно битые ethernet-фреймы выкидываются не дойдя то твоего приложения
источник

ML

Maksim Lapshin in ErlangRus
Оу
источник

ML

Maksim Lapshin in ErlangRus
Ну у меня не длинные линии, полегче. Все на одной материнке
источник

MK

Matwey Kornilov in ErlangRus
Тогда можешь хоть EETF слать сразу в МК
источник

MK

Matwey Kornilov in ErlangRus
С особым цинизмом, так сказать
источник