Существует ли общий «стандарт» для отправки сообщений на хост Linux через последовательный порт/RS232?

Взгляните на usbguard . Вы можете создавать политики на основе производителя или определенных устройств, которые разрешены или запрещены.

Например, в Arch Linux вы можете установить с помощью:

pacman -S usbguard usbguard-qt

/etc/usbguard/usbguard-daemon.conf— основной файл конфигурации. Если вы хотите, чтобы usbguardработал из коробки с оборудованием, которое вы уже подключили до запуска демона:

  • Отредактируйте параметр PresentDevicePolicy=и установите для него значение true. Это автоматически зарегистрирует текущее USB-оборудование, которое у вас есть, до запуска демона.
  • Отредактируйте IPCAllowedUsers=или IPCAllowedGroups=, чтобы вы могли общаться с демоном и составлять список устройств, создавать правила для -мухи -и т. д. на основе вашего имени пользователя или группы, членом которой вы являетесь.

Это также позволит избежать потери соединения с текущими мышью и клавиатурой.

Из любопытства в Linux 5.1 будет возможность блокировки USB-портов , которые не являются внутренними на материнской плате, до тех пор, пока они не попадут в пользовательское пространство, создавая новый уровень защиты до запуска USBGuard.

1
23.06.2020, 19:02
2 ответа

Я ничего не знаю о Linux. Одним из наиболее распространенных стандартов для проектирования с данными датчиков является Modbus

.

Есть несколько удобных инструментов для тестирования под Linux (, например,https://github.com/epsilonrt/mbpoll)и множество стандартных библиотек для написания вашей собственной мастер-программы Modbus. Таким образом, вы должны иметь возможность работать с ним на выбранном вами языке.

В конечном итоге это может означать, что вы предпочитаете писать собственное программное обеспечение, но это, по крайней мере, даст вам некоторую структуру.


Modbus — это протокол запроса/ответа. Обычно вы настраиваете хост в качестве ведущего, а датчики (Arduino )— в качестве ведомых. Это означает, что вы будете постоянно опрашивать свой Arduino, а не постоянно передавать данные с Arduino.

Modbus основан на концепции регистров. Он предоставляет структуру для запроса значения регистров, а также для установки значения. Таким образом, оборудование датчика обычно имеет каждое значение (, например, напряжение, ток, частоту переменного тока )в виде отдельного регистра. Подобно тому, как предоставление инструкций оформлено с точки зрения установки регистра.

Там, где я видел его использование, обычно использовалось сочетание регистров с плавающей запятой и целочисленных, а также отдельных значений, охватывающих несколько регистров (, например, чтобы предлагать 64-битные значения ).

2
18.03.2021, 23:25

Firmata — еще один вариант. У вас есть библиотеки для обработки многих языков программирования .

The Firmata library implements the Firmata protocol for communicating with software on the host computer. This allows you to write custom firmware without having to create your own protocol and objects for the programming environment that you are using.

Вы можете считывать показания датчиков и записывать выходные данные в устройство, а также опрашивать его.

Например, в Python с этой библиотекой:

Выключить светодиод на DIGITAL13

board.digital[13].write(0)

Чтение аналогового ввода (Чтение об итераторе):

board.analog[0].enable_reporting()
board.analog[0].read()

В Arduino нужно просто загрузить StandardFirmdata, все, можно начинать работать сразу без скетча.

1
18.03.2021, 23:25

Теги

Похожие вопросы