3. Секция Radio - настройки параметров взаимодействия с радиостанцией.
3.0. LINUX/UNIX-пользователь, исполняющий AlterFRN-клиент, должен иметь права на чтение/запись в используемые устройства для типов COM (3.4.1.1) вида /dev/ttyUSB0, GPIO (3.4.1.3) вида /sys/class/gpio/[un]export, CM108 (3.4.1.5) вида /dev/hidraw0, GPIODEV (3.4.1.7) вида /dev/gpiochip0 и права чтения/записи в каталоги и файлы для типа FILE (3.4.1.4).
3.1. Параметр PTT - Push To Talk - выходной сигнал для включения радиостанции на передачу. Смотри Формат описания линий управления радиостанцией (3.4). Если вы используете несколько работающих копий AlterFRN-клиента одновременно на одной машине, то для избежания конфликтов используйте разные устройства(порты) для выходной линии PTT для каждой копии AlterFRN-клиента.
3.2. Параметр COS - Carrier On Signal - входной сигнал для получения несущей с радиостанции. Смотри Формат описания линий управления радиостанцией (3.4). Если вы используете несколько работающих копий AlterFRN-клиента одновременно на одной машине, то для избежания конфликтов используйте разные устройства(порты) для входной линии COS для каждой копии AlterFRN-клиента.
3.3. Параметр LIGHT - выходной сигнал, активный при успешной трансляции звука с радиостанции на сервер. Смотри Формат описания линий управления радиостанцией (3.4). Если вы используете несколько работающих копий AlterFRN-клиента одновременно на одной машине, то для избежания конфликтов используйте разные устройства(порты) для выходной линии LIGHT для каждой копии AlterFRN-клиента.
3.4. Формат описания линий управления: <тип_интерфейса>:<параметр_1>[:<параметр_2>[:<режим>]], где:
3.4.1. <тип_интерфейса>:
3.4.1.1. -- COM - для последовательного порта RS232 или USB-SERIAL;
3.4.1.2. -- VOX - для голосового управления VOX; допустимо использование только для входного сигнала COS;
3.4.1.3. -- GPIO - [только Linux-ARM] для портов ввода-вывода GPIO через механизм SYSFS-GPIO. Смотри также общие комментарии к использованию GPIO.
3.4.1.4. -- FILE - для обычного файла, наличие которого будет восприниматься как несущая.
3.4.1.5. -- CM108 - [только UNIX/Linux, ревизия 6452+] - для портов ввода-вывода GPIO на звуковых картах CM108/CM109/CM119/SSS1623. Номера контактов ищите в документации на используемую в Вашей звуковой карте микросхему. Смотри также общие комментарии к использованию GPIO.
3.4.1.6. -- CTRL - для локального управления признаком несущей через командный канал командами carrieron (0.4.31) и carrieroff (0.4.31); допустимо использование только для входного сигнала COS;
3.4.1.7. -- GPIODEV - [только Linux-ARM, ревизия 7014+] для нового интерфейса GPIO-DEV для портов ввода-вывода GPIO в дополнение к объявленному устаревшим интерфейсу SYSFS-GPIO (3.4.1.3); необходимо установить пакет gpiod и библиотеку libgpiod. Смотри также общие комментарии к использованию GPIO.
3.4.2. <параметр_1>:
3.4.2.0. Символы ':' (двоеточие), ';' (точка с запятой) и '\' (обратная дробь) внутри значений полей должны маскироваться символом '\', например, имя файла 'c:\dir\filename' должно быть записано как 'c\:\\dir\\filename'.
3.4.2.1. для типа COM: имя устройства последовательного порта в соответствии с операционной системой, например, /dev/cuau0 (FreeBSD) или COM2(Windows);
3.4.2.2. для типа VOX: абсолютный уровень порога срабатывания в положительном поддиапазоне значений signed int16 (0-32767), например, 800;
3.4.2.3. для типа GPIO: номер порта-ввода SYSFS-GPIO, например, 2 для gpio2;
3.4.2.4. для типа FILE: имя файла;
3.4.2.5. для типа CM108: имя устройства типа HID в соответствии с операционной системой, например, /dev/hidraw0;
3.4.3.6. для типа CTRL: константное значение CTRL;
3.4.3.7. для типа GPIODEV: имя символьного устройства портов GPIO-DEV, например, /dev/gpiochip0; используйте утилиту gpiodetect для получения списка устройств.
3.4.3. <параметр_2>:
3.4.3.0. Символы ':' (двоеточие), ';' (точка с запятой) и '\' (обратная дробь) внутри значений полей должны маскироваться символом '\', например, имя файла 'c:\dir\filename' должно быть записано как 'c\:\\dir\\filename'.
3.4.3.1. для типа COM: имя управляющей линии DTR,DSR,CTS,RTS ....
3.4.3.3. для типа VOX: не имеет значения, может быть быть пустым или любым;
3.4.3.3. для типа GPIO: краткое имя порта ввода-вывода SYSFS-GPIO, например, gpio2 для порта номер 2; может иметь пустое значение, тогда будет использоваться форма gpioN, где N - номер порта, т.е. gpio2 для порта номер 2.
3.4.3.4. для типа CM108: имя управляющей линии CM108, например, VOLUP, VOLDN, GPIO1, GPIO2, GPIO3;
3.4.3.5. для типа GPIODEV: номер или имя управляющей линии устройства GPIO-DEV; используйте утилиту gpioinfo для получения списка линий;
3.4.4. <режим>:
3.4.4.1. N или NORMAL - действующий(активный) сигнал есть логическая 1; электрическое значение зависит от типа интерфейса; по умолчанию;
3.4.4.2. I или INVERTED - действующий(активный) сигнал есть логический 0; электрическое значение зависит от типа интерфейса;
3.5. Cписок доступных типов интерфейса и их линий(проводов) можно получить по команде radio (0.4.5).
3.6. Проверить работоспособность входных линий интерфейса поможет параметр командной строки checkinput(п.0.4.8)
3.7. Параметр CTCSSWakeTime - время (миллисекунды) между включением радиостанции на передачу (PTT ON) и подачей реального звукового сигнала в радиостанцию для передачи в эфир; помогает компенсировать возможную задержку по включению радиостанции на передачу и возможную задержку декодирования CTCSS/DSC на приемной стороне, чтобы не было пропадания начала фразы; по умолчанию 0; 200-400 мс - вполне нормально; однако не следует делать задержку слишком длинной, т.к. этим затрудняется последующий захват канала на передачу, поскольку со стороны сервера звук по факту уже перестал поступать, канал уже свободен, но в эфире трансляция еще продолжается.
3.8. Параметр CarrierCatchTime - время (миллисекунды), которое должно пройти после появления активного сигнала на входной линии COS, чтобы несущая считалась именно полезным сигналом, а не кратковременной помехой; при использовании VOX используется как время атаки. Потерю начала полезного сигнала можно компенсировать установкой соответствующего значения в параметре InPreCapturedTime(п.2.5).
3.9. Параметр CarrierLostTime - время (миллисекунды), которое должно пройти после пропадания активного сигнала на входной линии COS, чтобы считать пропадание несущей именно фактическим окончанием полезного сигнала - для избежания реакции на кратковременное исчезание и/или затухание полезного сигнала; при использовании VOX используется как время отпускания
3.10. Примечание. При использовании портов ввода-вывода GPIO или GPIODEV на платах вроде Raspberry/Orange/Banana/Cubieboard/... для входного сигнала COS рекомендую использовать внешнюю подтяжку на питание (pullup) или на общий провод (pulldown) в зависимости от используемой схемы подключения.
3.11. Параметр STATIC - [ревизия r3342+] - постоянный выходной сигнал, активный во все время работы AlterFRN-клиента. Содержит список выходных линий интерфейса(ов), на которые нужно подать постоянные заведомо известные значения; каждый элемент списка должен соответствовать п.3.4 Формат описания линии управления; разделителем элементов списка является точка с запятой (;); может пригодится для подключения схем согласования с радиостанцией вроде такой от RA1AGY. Если вы используете несколько работающих копий AlterFRN-клиента одновременно на одной машине, то для избежания конфликтов используйте разные устройства(порты) для выходных линий из списка STATIC для каждой копии AlterFRN-клиента.
3.12. Параметр SquelchSettlingTime - [ревизия r3342+] - задержка в миллисекундах перед началом опроса входной линии COS после предыдущих операций приема и/или передачи. Позволяет, например, избежать ложного определения несущей от радиостанции или ложного срабатывания VOX-детектора от возможных паразитных наводок и/или переходных процессов; допустимые значения: 0 - 10000 мс; по умолчанию - 0 мс. Следует также учитывать, что звуковая подсистема включается не мгновенно, и время этого включения также есть дополнительная задержка перед началом опроса входной линии COS. Команда audiospeedconfig (0.4.24) позволяет измерить фактическую задержку на включение вашего звукового оборудования на ввод(захват) звука, при котором и происходит опрос входной линии COS.
3.13. Параметр CourtesyDelay - [ревизия r3342+] - время в миллисекундах между окончанием приема (пропаданием активного сигнала на входной линии COS) и началом последующей передачи (подачей активного сигнала на выходную линию PTT), в т.ч. звука отшлепа (courtesy); полезен в случае, если радиостанция не умеет быстро переходить с приема на передачу; допустимые значения: 0 - 2000 мс; по умолчанию - 0 мс.
3.14. Параметр SquelchSettlingTimeIn - не используется, начиная с r6444; было: [r3342+] - время в миллисекундах между очередным пропаданием сигнала активного сигнала на входящей линии COS и началом опроса сигнала на ней же; позволяет принудительно создавать паузы между передачами сигнала с радиостанции на сервер; допустимые значения: 0 - 10000 мс; по умолчанию - 0 мс.
3.15. Параметр DtmfTimeout - [ревизия r4592+] - максимальное время в секундах, за которое должна быть полностью введена DTMF-команда; по умолчанию - 15 сек.
3.16. Параметр DtmfCommands - [ревизия r4592+] - список DTMF-команд, разделенных точкой с запятой; в секции Audio должен быть включен декодер DTMF - параметр InDtmfEnabled.
3.16.1. Формат DTMF-команд: DTMFTEXT:ACTION[:attr1[:attr2[:attr3]]], где:
3.16.2. - DTMFTEXT - текст команды в DTMF-символах 0123456789ABCD*#; текст команды должен быть уникальным и не являться частью текста других команд;
3.16.3. - ACTION - код действия этой команды, допустимы:
3.16.3.1. -- NET - перейти в другую сеть(комнату) на этом же сервере, attr1 - имя сети(комнаты); например: *01#:NET:roomname;
3.16.3.2. -- CONN - подключиться к сети(комнате) на другом сервере, attr1 - адрес сервера, attr2 - порт сервера, attr3 - имя сети(комнаты); например: #01#:CONN:frn.server.com:10024:roomname;
3.16.3.3. -- EXEC - [только UNIX/Linux] - асинхронно выполнить внешнюю программу (скрипт), attr1 - путь к внешней программе(скрипту), параметрами командной строки которому будут передаются DTMF-текст команды и полное имя конфигурационного файла AlterFRN-клиента; например: #99#:EXEC:/my/super/script;
3.17. Параметр IdNoSoundListFileName - [ревизия r6367+] - имя файла со списком идентификаторов клиентов, входящие звуковые сообщения от которых не воспроизводить; 1 строка = 1 идентификатор.
3.18. Параметр CONNECT - [ревизия r6830+] - выходной сигнал, активный при успешном подключении к серверу. Смотри Формат описания линий управления радиостанцией (3.4). Если вы используете несколько работающих копий AlterFRN-клиента одновременно на одной машине, то для избежания конфликтов используйте разные устройства(порты) для выходной линии CONNECT для каждой копии AlterFRN-клиента.
3.19. Параметр PttEnabled - [ревизия r6990+] - разрешение на работу выходной линии PTT (3.1) в момент старта клиента; допустимые значения: No - запрещено, Yes - разрешено; по умолчанию: Yes - разрешено. Это разрешение может быть измененено командами pttenable, pptdisable, radioenable, radiodisable (0.4.32) без перезапуска клиента. Получить текущий статус можно командами pttstatus, radiostatus.
3.20. Параметр CosEnabled - [ревизия r6990+] - разрешение на работу входной линии COS (3.2) в момент старта клиента; допустимые значения: No - запрещено, Yes - разрешено; по умолчанию: Yes - разрешено. Это разрешение может быть измененено командами cosenable, cosdisable, radioenable, radiodisable (0.4.32) без перезапуска клиента. Получить текущий статус можно командами cosstatus, radiostatus (0.4.36).
3.21. Параметр InitCarrierProtectTime - [ревизия r7773+] - время в миллисекундах после старта клиента, в течении которого не производится определение сигнала на входной линии COS (3.2); может понадобиться для защиты от ложных включений от любых переходных процессов в аппаратуре, вызваннных собственно стартом клиента; например, некоторые звуковые карты имеют "зеленые" возможности -- если звуковая карта долго не используется, то она самостоятельно отключает аналоговые входные и выходные усилители; при запуске клиента, использующего такую звуковую карту, эти усилители включаются, и переходной электрический процесс от включения может быть распознан настройкой COS=VOX как полезный сигнал, что вызовет ложную попытку трансляции сигнала на сервер.
Code
[Radio]
PttEnabled=yes
CosEnabled=yes
### RS232 пример FreeBSD
#PTT=COM:/dev/cuau0:RTS:INVERTED
#COS=COM:/dev/cuau0:CTS
#STATIC=COM:/dev/cuau0:DTR:N ; COM:/dev/cuau1:RTS:N ; COM:/dev/cuau1:DTR:I
### USB-RS232 пример FreeBSD (у меня работает именно так на FT232RL)
PTT=COM:/dev/cuaU0:RTS:INVERTED
COS=COM:/dev/cuaU0:SR
STATIC=COM:/dev/cuaU0:DTR:N ; COM:/dev/cuaU1:RTS:N ; COM:/dev/cuaU1:DTR:I
### RS232 пример (Linux)
#PTT=COM:/dev/ttyS0:RTS:INVERTED
#COS=COM:/dev/ttyS0:CTS
#STATIC=COM:/dev/ttyS0:DTR:N ; COM:/dev/ttyS1:RTS:N ; COM:/dev/ttyS0:DTR:I
### USB-RS232 пример (Linux)
#PTT=COM:/dev/ttyUSB0:RTS:I
#COS=COM:/dev/ttyUSB0:CTS
#STATIC=COM:/dev/ttyUSB0:DTR:N ; COM:/dev/ttyUSB1:RTS:N ; COM:/dev/ttyUSB1:DTR:I
### RS-232 пример (Windows)
#PTT=COM:COM1:RTS:INVERTED
#COS=COM:COM1:CTS
#STATIC=COM:COM1:DTR:N ; COM:COM2:RTS:NORMAL ; COM:COM2:DTR:INVERTED
### GPIO-SYSFS пример (Raspberry Pi, Raspbian/Debian)
#PTT=GPIO:4:gpio4
#COS=GPIO:17:gpio17
#STATIC=GPIO:21:gpio21:N ; GPIO:22:gpio22:N ; GPIO:18:gpio18:I
### GPIO-SYSFS пример (Cubieboard, Cubian)
#PTT=GPIO:18:gpio18_pg8:N
#COS=GPIO:17:gpio17_pg9:N
#STATIC=GPIO:7:gpio7_pg1:N ; GPIO:1:gpio1_pg3:N
### VOX пример (BSD/Linux/Windows)
#COS=VOX:1200
### CTRL пример (BSD/Linux/Windows)
#COS=CTRL:CTRL
### GPIO-DEV пример (Linux)
#PTT=GPIODEV:/dev/gpiochip0:PA18:N
#COS=GPIODEV:0:19:N
#STATIC=GPIODEV:1:PG06:N ; GPIODEV:1:11:N
### FILE пример (Windows)
#PTT=FILE:c\:\\dir\\file_ptt.dat
#COS=FILE:c\:\\dir\\file_cos.dat
### FILE пример (UNIX/Linux)
#PTT=FILE:/dir/file_ptt.dat
#COS=FILE:/dir/file_cos.dat
#LIGHT=COM:/dev/ttyUSB0:DTR
#CONNECT=COM:/dev/ttyS1:RTS:N
CTCSSWakeTime=500
CarrierCatchTime=100
InitCarrierProtectTime=0
CarrierLostTime=1000
SquelchSettlingTime=10
CourtesyDelay=10
DtmfTimeout=15
#DtmfCommands=*01#:NET:Russia ; #01#:CONN:frn.server.com:10024:talknet ; #99#:EXEC:/my/super/script
PttEnabled=yes
CosEnabled=yes
### RS232 пример FreeBSD
#PTT=COM:/dev/cuau0:RTS:INVERTED
#COS=COM:/dev/cuau0:CTS
#STATIC=COM:/dev/cuau0:DTR:N ; COM:/dev/cuau1:RTS:N ; COM:/dev/cuau1:DTR:I
### USB-RS232 пример FreeBSD (у меня работает именно так на FT232RL)
PTT=COM:/dev/cuaU0:RTS:INVERTED
COS=COM:/dev/cuaU0:SR
STATIC=COM:/dev/cuaU0:DTR:N ; COM:/dev/cuaU1:RTS:N ; COM:/dev/cuaU1:DTR:I
### RS232 пример (Linux)
#PTT=COM:/dev/ttyS0:RTS:INVERTED
#COS=COM:/dev/ttyS0:CTS
#STATIC=COM:/dev/ttyS0:DTR:N ; COM:/dev/ttyS1:RTS:N ; COM:/dev/ttyS0:DTR:I
### USB-RS232 пример (Linux)
#PTT=COM:/dev/ttyUSB0:RTS:I
#COS=COM:/dev/ttyUSB0:CTS
#STATIC=COM:/dev/ttyUSB0:DTR:N ; COM:/dev/ttyUSB1:RTS:N ; COM:/dev/ttyUSB1:DTR:I
### RS-232 пример (Windows)
#PTT=COM:COM1:RTS:INVERTED
#COS=COM:COM1:CTS
#STATIC=COM:COM1:DTR:N ; COM:COM2:RTS:NORMAL ; COM:COM2:DTR:INVERTED
### GPIO-SYSFS пример (Raspberry Pi, Raspbian/Debian)
#PTT=GPIO:4:gpio4
#COS=GPIO:17:gpio17
#STATIC=GPIO:21:gpio21:N ; GPIO:22:gpio22:N ; GPIO:18:gpio18:I
### GPIO-SYSFS пример (Cubieboard, Cubian)
#PTT=GPIO:18:gpio18_pg8:N
#COS=GPIO:17:gpio17_pg9:N
#STATIC=GPIO:7:gpio7_pg1:N ; GPIO:1:gpio1_pg3:N
### VOX пример (BSD/Linux/Windows)
#COS=VOX:1200
### CTRL пример (BSD/Linux/Windows)
#COS=CTRL:CTRL
### GPIO-DEV пример (Linux)
#PTT=GPIODEV:/dev/gpiochip0:PA18:N
#COS=GPIODEV:0:19:N
#STATIC=GPIODEV:1:PG06:N ; GPIODEV:1:11:N
### FILE пример (Windows)
#PTT=FILE:c\:\\dir\\file_ptt.dat
#COS=FILE:c\:\\dir\\file_cos.dat
### FILE пример (UNIX/Linux)
#PTT=FILE:/dir/file_ptt.dat
#COS=FILE:/dir/file_cos.dat
#LIGHT=COM:/dev/ttyUSB0:DTR
#CONNECT=COM:/dev/ttyS1:RTS:N
CTCSSWakeTime=500
CarrierCatchTime=100
InitCarrierProtectTime=0
CarrierLostTime=1000
SquelchSettlingTime=10
CourtesyDelay=10
DtmfTimeout=15
#DtmfCommands=*01#:NET:Russia ; #01#:CONN:frn.server.com:10024:talknet ; #99#:EXEC:/my/super/script
0. Параметры и команды командной строки.
1. Секция AUTH: данные авторизации.
2. Секция AUDIO: параметры звуковой подсистемы.
3. Секция RADIO: взаимодействие с радиостанцией.
4. Секция MANAGER: взаимодействие с FRN System Manager.
5. Секция SERVER: параметры целевого FRN-сервера.
7. Секция MESSAGE: реакция на текстовые сообщения.
8. Секция SYSTEM: общие параметры системы.
9. Секция SOUNDS: служебные звуки.
10. Секция HOURS: озвучивание текущего времени.
11. Секция INFORMER: речевой(звуковой) информатор.
12. Секция RECORDER: запись переговоров.
13. Секция COMMAND: командный канал.