eddy_em: (Default)
[personal profile] eddy_em
Добавил в утилиту для работы с модбас-устройствами "по словарю" еще и "псевдонимы". Позволяет вместо того, чтобы вспоминать, как там запустить мотор или сбросить ошибку, просто дать команду "cw/ccw/clearerr"… Параметров пока негусто:
  -D, --dictionary=arg   file with dictionary (format: code register value writeable)
  -N, --node=arg         node "IP", or path (could be "\0path" for anonymous UNIX-socket)
  -O, --outdic=arg       output dictionary for full device dump by input dictionary registers
  -R, --readc            registers (by keycodes, checked by dictionary) to read; multiply parameter
  -U, --unixsock         UNIX socket instead of INET
  -W, --writec           write new value to register by keycode (format: keycode=val); multiply parameter
  -a, --alias=arg        file with aliases in format 'name : command to run'
  -b, --baudrate=arg     modbus baudrate (default: 9600)
  -d, --device=arg       modbus device (default: /dev/ttyUSB0)
  -h, --help             show this help
  -k, --dumpkey          dump entry with this keycode; multiply parameter
  -o, --outfile=arg      file with parameter's dump
  -r, --readr            registers (by address) to read; multiply parameter
  -s, --slave=arg        slave ID (default: 1)
  -t, --dumptime=arg     dumping time interval (seconds, default: 0.1)
  -v, --verbose          verbose level (each -v adds 1)
  -w, --writer           write new value to register (format: reg=val); multiply parameter

Я не утруждал себя отдельным флагом "-S" для запуска сервера, как в некоторых других: клиента все равно нет, а уж если указан "node", то значит сервер. "Псевдонимы" только в серверном режиме работают. А в standalone-режиме можно писать в любые регистры без проверки (мало ли: вдруг не было в "словаре" этого предусмотрено).
Дамп можно запускать в новые файлы (в этом случае автоматом закрывается старый).
У самого сервера, помимо команд вида "alias" или "register [= value]", есть и команды:
 clodump: stop dump and close current dump file
newdump: open new dump file or get name of current
list: list all dictionary (as getter) or given register (as setter: by codename or value)
alias: list all of aliases (as getter) or with given name (by setter)

Если сюда еще и добавить работу с "read/write coil[s]", отпадет необходимость запускать терминал для тестирования какой-нибудь новой убогой релюшки со своим убогим протоколом...

Как ни презираю я модбас, все-таки пришлось с этой дрянью поработать (и даже местами на своих железках реализовать).
This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

If you are unable to use this captcha for any reason, please contact us by email at support@dreamwidth.org

October 2025

S M T W T F S
   1234
567 89 1011
121314 15161718
19202122232425
2627 28293031 

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Feb. 25th, 2026 02:20 am
Powered by Dreamwidth Studios