Введение

Приложение предоставляет возможность при подключенном через USB-кабель шумомере передавать показания на удаленный сервер, на интерфейс PushGateway. В данной разделе даются ссылки на вспомогательные библиотеки, которые понадобятся для работы приложения, а также описан алгоритм работы. Приложение запускается из командной строки с указанием параметров подключения.

Пререквизиты

Компания Октава-Электрондизайн предоставляет бесплатную библиотеку для работы с телеметрией данных - OctavaSignal.dll. А также вспомогательная библиотека FTD2XX.dll. Данные библиотеки должны быть размещены в директории приложения для обеспечения его работы. Скачать архив библиотек можно по ссылке OctavaSignal.zip.

USB-драйвер шумомеров Октава-Электрондизайн входит в комплект приложения Signal+3G Light. Архив c USB-драйвером шумомера можно скачать по ссылке USB-Device-Driver.zip.

Также на компьютере под управлением Windows Vista может понадобиться установка библиотек Microsoft Visual C++ 2015-2019 Redistributable. Для 32-битной версии Windows скачать можно по ссылке VC_redist.x86.exe.

Также вам должен быть известен URL сервиса Prometheus PushGateway.

Подготовка директории с приложением

Создайте директорию приложения, например, c:\OctavaPusher\ .

Из архива OctavaSignal.zip распакуйте файлы FTD2XX.dll, OctavaSignal.dll, OctavaSignal.lib и TeleDescFile.bin в директорию c:\OctavaPusher\ .

Скачайте и разместите в директории приложения файлы MidOctava.dll и OctavaPusher.exe, которые являются частью поставки OctavaPusher.

Приложение готово к работе.

Параметры командной строки

При запуске файла OctavaPusher.exe на экране выводится версия приложения, а также подсказка о параметрах командной строки.

c:\OctavaPusher>OctavaPusher.exe
v1.7R x86 Usage: OctavaPusher.exe -url=http://<gateway-host>:<gateway-port> [-user=<username>] [-pass=<password>] [-delay=<time in seconds>] [-reset=<time in seconds>] [-zone=<zone>] [-csvout=<file>] [-debug]
Usage of OctavaPusher.exe:
  -csv string
  -debug
  -delay int
         (default 10)
  -pass string
  -reset int
         (default 10)
  -url string
  -user string
  -zone string
Ключ командной строкиВозможное значениеОписание
-urlhttp://pushnoise.alpol.su:80Указывается известный URL сервиса PushGateway, который опубликован и доступен через интернет. На данный URL будут отправляться все значения всех параметров, которые снимает шумомер в единицу времени.
-userpusherВ случае, если PushGateway защищен паролем, в параметрах -user и -pass указываются имя пользователя и пароль для подключения.
-passoctavapusher
-delay2Пауза в секундах между отправками метрик в сервис PushGateway.
-reset600

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

Данная настройка эмулирует нажатие кнопки "Сброс" через указанный период времени, в данном случае 600 секунд, 10 минут.

Также при нажатии кнопки "Сброс" можно заметить всплеск показаний, поэтому после выполнения команды Reset предусмотрена 3-секундная задержка перед продолжением передачи показаний.

-zonekv147В данном параметре задается то значение, которое будет доступно из выпадающего списка "Размещение" на Dashboard замеров Шума и Инфразвука.
-csvout<не реализовано>Предполагается реализовать вывод всех метрик в csv-файл.
-debug
Данный флаг указывается без параметров. В случае его указания на экран выводится служебная информация по работе с драйвером устройства.

Пример командной строки для работы приложения, и вывод на экран во время работы

c:\OctavaPusher>OctavaPusher.exe -url=http://pushnoise.alpol.su:80 -delay=2 -reset=600 -zone=kv83
2021/04/25 22:57:29 Octava Push Prometheus start
2021/04/25 22:57:29 Debug mode:  false
2021/04/25 22:57:29 Use gateway: http://pushnoise.alpol.su:80 with delay:  2  reset:  600
2021/04/25 22:57:29 Zone:  kv83
2021/04/25 22:57:29 Found devices: 1
2021/04/25 22:57:29 VIN: 00123456
2021/04/25 22:57:29 Device DateTime: 2021-04-25T22:57:28 MSK

При запуске приложения выводится информация о введенных параметрах, выводится VIN-номер устройства, дата на устройстве и начинается процесс передачи метрик.

Принцип работы

С периодичностью в количество секунд, которые указаны в параметре delay, на PushGateway передаются следующие метрики, которые снимаются с показаний шумомера через библиотеку телеметрии.

Возвращаемые метрики

Согласно описанию библиотеки OctavaSignal.dll вызывается процедура GetData, которой передаются параметры для получения значений согласно таблицам "Таблица 1. Возвращаемые функцией O110_GetAverName названия типов усреднения" и "Таблица 2. Возвращаемые функцией O110_GetBandName названия полос".

Для прибора "Экофизика" значения, которые берутся из этих таблиц, будут следующие.

Второй параметр, передаваемый в функцию GetData, определяет тип данных:

  • 0 - октавы
  • 1 - третьоктавы (полосы для HMeter и EMeter и т.п.)
  • 2 - корректированные уровни

Третий параметр, передаваемый в функцию GetData. Приведен список для прибора Экофизика (БФ).

ЗначениеОписание
0Slow
1Slow min
2Slow max
3Fast
4Fast min
5Fast max
6Leq
7Imp
8Imp min
9Imp max
10Peak
11LE
121 сек пик
131 сек скз
141 сек min
151 сек max

Четвертый параметр, передаваемый в функцию GetData.

ПриборОктавы1/3-октавыКорректированные уровни
Экофизика


ЭкоЗвук2, 4, 8, 16, 31.5, 63, 125, 250, 500, 1000, 2000, 4000, 8000, 16000 Гц25, 31.5, 40, 50, 63, 80, 100, 125, 160, 200, 250, 315, 400, 500, 630, 800, 1000, 1250, 1600, 2000, 2500, 3150, 4000, 5000, 6300, 8000, 10000C, A, AU, Z, G, Fi

Тип усреднения Fast. Тип усреднения Fast работает только для диапазона шума. Для октав.

Название метрикиВызываемая функцияВозвращаемое значение
DbOn.Fast.31HzGetData(0, 0, 3, 4)Тип усреднения Fast для октавы 31.5 Гц
DbOn.Fast.63HzGetData(0, 0, 3, 5)Тип усреднения Fast для октавы 63 Гц
DbOn.Fast.125HzGetData(0, 0, 3, 6)Тип усреднения Fast для октавы 125 Гц
DbOn.Fast.250HzGetData(0, 0, 3, 7)Тип усреднения Fast для октавы 250 Гц
DbOn.Fast.500HzGetData(0, 0, 3, 8)Тип усреднения Fast для октавы 500 Гц
DbOn.Fast.1kHzGetData(0, 0, 3, 9)Тип усреднения Fast для октавы 1000 Гц
DbOn.Fast.2k5HzGetData(0, 0, 3, 10)Тип усреднения Fast для октавы 2500 Гц
DbOn.Fast.4kHzGetData(0, 0, 3, 11)Тип усреднения Fast для октавы 4000 Гц
DbOn.Fast.8kHzGetData(0, 0, 3, 12)Тип усреднения Fast для октавы 8000 Гц
DbOn.Fast.16kHzGetData(0, 0, 3, 13)Тип усреднения Fast для октавы 16000 Гц

Тип усреднения Slow для всего частотного диапазона для октав.

Название метрикиВызываемая функцияВозвращаемое значение
DbOn.Slow.2HzGetData(0, 0, 0, 0)
DbOn.Slow.4HzGetData(0, 0, 0, 1)
DbOn.Slow.8HzGetData(0, 0, 0, 2)
DbOn.Slow.16HzGetData(0, 0, 0, 3)
DbOn.Slow.31HzGetData(0, 0, 0, 4)
DbOn.Slow.63HzGetData(0, 0, 0, 5)
DbOn.Slow.125HzGetData(0, 0, 0, 6)
DbOn.Slow.250HzGetData(0, 0, 0, 7)
DbOn.Slow.500HzGetData(0, 0, 0, 8)
DbOn.Slow.1kHzGetData(0, 0, 0, 9)
DbOn.Slow.2k5HzGetData(0, 0, 0, 10)
DbOn.Slow.4kHzGetData(0, 0, 0, 11)
DbOn.Slow.8kHzGetData(0, 0, 0, 12)
DbOn.Slow.16kHzGetData(0, 0, 0, 13)

Тип усреднения Slow Min для всего частотного диапазона для октав.

Название метрикиВызываемая функцияВозвращаемое значение
DbOn.SlowMin.2HzGetData(0, 0, 1, 0)
DbOn.SlowMin.4HzGetData(0, 0, 1, 1)
DbOn.SlowMin.8HzGetData(0, 0, 1, 2)
DbOn.SlowMin.16HzGetData(0, 0, 1, 3)
DbOn.SlowMin.31HzGetData(0, 0, 1, 4)
DbOn.SlowMin.63HzGetData(0, 0, 1, 5)
DbOn.SlowMin.125HzGetData(0, 0, 1, 6)
DbOn.SlowMin.250HzGetData(0, 0, 1, 7)
DbOn.SlowMin.500HzGetData(0, 0, 1, 8)
DbOn.SlowMin.1kHzGetData(0, 0, 1, 9)
DbOn.SlowMin.2k5HzGetData(0, 0, 1, 10)
DbOn.SlowMin.4kHzGetData(0, 0, 1, 11)
DbOn.SlowMin.8kHzGetData(0, 0, 1, 12)
DbOn.SlowMin.16kHzGetData(0, 0, 1, 13)

Тип усреднения Slow Max для всего частотного диапазона для октав.

Название метрикиВызываемая функцияВозвращаемое значение
DbOn.SlowMax.2HzGetData(0, 0, 2, 0)
DbOn.SlowMax.4HzGetData(0, 0, 2, 1)
DbOn.SlowMax.8HzGetData(0, 0, 2, 2)
DbOn.SlowMax.16HzGetData(0, 0, 2, 3)
DbOn.SlowMax.31HzGetData(0, 0, 2, 4)
DbOn.SlowMax.63HzGetData(0, 0, 2, 5)
DbOn.SlowMax.125HzGetData(0, 0, 2, 6)
DbOn.SlowMax.250HzGetData(0, 0, 2, 7)
DbOn.SlowMax.500HzGetData(0, 0, 2, 8)
DbOn.SlowMax.1kHzGetData(0, 0, 2, 9)
DbOn.SlowMax.2k5HzGetData(0, 0, 2, 10)
DbOn.SlowMax.4kHzGetData(0, 0, 2, 11)
DbOn.SlowMax.8kHzGetData(0, 0, 2, 12)
DbOn.SlowMax.16kHzGetData(0, 0, 2, 13)

Тип усреднения Slow для всего частотного диапазона для третьоктав.

Название метрикиВызываемая функцияВозвращаемое значение
DbOn.Third.Slow.25HzGetData(0,1,0,0)Тип усреднения Slow для третьоктавы 25 Гц
DbOn.Third.Slow.31d5HzGetData(0,1,0,1)Тип усреднения Slow для третьоктавы 31.5 Гц
DbOn.Third.Slow.40HzGetData(0,1,0,2)Тип усреднения Slow для третьоктавы 40 Гц
DbOn.Third.Slow.50HzGetData(0,1,0,3)Тип усреднения Slow для третьоктавы 50 Гц
DbOn.Third.Slow.63HzGetData(0,1,0,4)Тип усреднения Slow для третьоктавы 63 Гц
DbOn.Third.Slow.80HzGetData(0,1,0,5)Тип усреднения Slow для третьоктавы 80 Гц
DbOn.Third.Slow.100HzGetData(0,1,0,6)Тип усреднения Slow для третьоктавы 100 Гц
DbOn.Third.Slow.125HzGetData(0,1,0,7)Тип усреднения Slow для третьоктавы 125 Гц
DbOn.Third.Slow.160HzGetData(0,1,0,8)Тип усреднения Slow для третьоктавы 160 Гц
DbOn.Third.Slow.200HzGetData(0,1,0,9)Тип усреднения Slow для третьоктавы 200 Гц
DbOn.Third.Slow.250HzGetData(0,1,0,10)Тип усреднения Slow для третьоктавы 250 Гц
DbOn.Third.Slow.315HzGetData(0,1,0,11)Тип усреднения Slow для третьоктавы 315 Гц
DbOn.Third.Slow.400HzGetData(0,1,0,12)Тип усреднения Slow для третьоктавы 400 Гц
DbOn.Third.Slow.500HzGetData(0,1,0,13)Тип усреднения Slow для третьоктавы 500 Гц
DbOn.Third.Slow.630HzGetData(0,1,0,14)Тип усреднения Slow для третьоктавы 630 Гц
DbOn.Third.Slow.800HzGetData(0,1,0,15)Тип усреднения Slow для третьоктавы 800 Гц
DbOn.Third.Slow.1000HzGetData(0,1,0,16)Тип усреднения Slow для третьоктавы 1000 Гц
DbOn.Third.Slow.1250HzGetData(0,1,0,17)Тип усреднения Slow для третьоктавы 1250 Гц
DbOn.Third.Slow.1600HzGetData(0,1,0,18)Тип усреднения Slow для третьоктавы 1600 Гц
DbOn.Third.Slow.2000HzGetData(0,1,0,19)Тип усреднения Slow для третьоктавы 2000 Гц
DbOn.Third.Slow.2500HzGetData(0,1,0,20)Тип усреднения Slow для третьоктавы 2500 Гц
DbOn.Third.Slow.3150HzGetData(0,1,0,21)Тип усреднения Slow для третьоктавы 3150 Гц
DbOn.Third.Slow.4000HzGetData(0,1,0,22)Тип усреднения Slow для третьоктавы 4000 Гц
DbOn.Third.Slow.5000HzGetData(0,1,0,23)Тип усреднения Slow для третьоктавы 5000 Гц
DbOn.Third.Slow.6300HzGetData(0,1,0,24)Тип усреднения Slow для третьоктавы 6300 Гц
DbOn.Third.Slow.8000HzGetData(0,1,0,25)Тип усреднения Slow для третьоктавы 8000 Гц
DbOn.Third.Slow.10000HzGetData(0,1,0,26)Тип усреднения Slow для третьоктавы 10000 Гц

L эквивалентные по частотам октав

Название метрикиВызываемая функцияВозвращаемое значение
Leq.Slow.2HzGetData(0, 0, 6, 0)
Leq.Slow.4HzGetData(0, 0, 6, 1)
Leq.Slow.8HzGetData(0, 0, 6, 2)
Leq.Slow.16HzGetData(0, 0, 6, 3)
Leq.Slow.31HzGetData(0, 0, 6, 4)
Leq.Slow.63HzGetData(0, 0, 6, 5)
Leq.Slow.125HzGetData(0, 0, 6, 6)
Leq.Slow.250HzGetData(0, 0, 6, 7)
Leq.Slow.500HzGetData(0, 0, 6, 8)
Leq.Slow.1kHzGetData(0, 0, 6, 9)
Leq.Slow.2k5HzGetData(0, 0, 6, 10)
Leq.Slow.4kHzGetData(0, 0, 6, 11)
Leq.Slow.8kHzGetData(0, 0, 6, 12)
Leq.Slow.16kHzGetData(0, 0, 6, 13)

L эквивалентные по частотам третьоктав

Название метрикиВызываемая функцияВозвращаемое значение
Leq.Third.Slow.25HzGetData(0,1,6,0)
Leq.Third.Slow.31d5HzGetData(0,1,6,1)
Leq.Third.Slow.40HzGetData(0,1,6,2)
Leq.Third.Slow.50HzGetData(0,1,6,3)
Leq.Third.Slow.63HzGetData(0,1,6,4)
Leq.Third.Slow.80HzGetData(0,1,6,5)
Leq.Third.Slow.100HzGetData(0,1,6,6)
Leq.Third.Slow.125HzGetData(0,1,6,7)
Leq.Third.Slow.160HzGetData(0,1,6,8)
Leq.Third.Slow.200HzGetData(0,1,6,9)
Leq.Third.Slow.250HzGetData(0,1,6,10)
Leq.Third.Slow.315HzGetData(0,1,6,11)
Leq.Third.Slow.400HzGetData(0,1,6,12)
Leq.Third.Slow.500HzGetData(0,1,6,13)
Leq.Third.Slow.630HzGetData(0,1,6,14)
Leq.Third.Slow.800HzGetData(0,1,6,15)
Leq.Third.Slow.1000HzGetData(0,1,6,16)
Leq.Third.Slow.1250HzGetData(0,1,6,17)
Leq.Third.Slow.1600HzGetData(0,1,6,18)
Leq.Third.Slow.2000HzGetData(0,1,6,19)
Leq.Third.Slow.2500HzGetData(0,1,6,20)
Leq.Third.Slow.3150HzGetData(0,1,6,21)
Leq.Third.Slow.4000HzGetData(0,1,6,22)
Leq.Third.Slow.5000HzGetData(0,1,6,23)
Leq.Third.Slow.6300HzGetData(0,1,6,24)
Leq.Third.Slow.8000HzGetData(0,1,6,25)
Leq.Third.Slow.10000HzGetData(0,1,6,26)

Корректированные уровни дбА

Название метрикиВызываемая функцияВозвращаемое значение
DbA.FastGetData(0, 2, 3, 1)
DbA.FastMinGetData(0, 2, 4, 1)
DbA.FastMaxGetData(0, 2, 5, 1)
DbA.SlowGetData(0, 2, 0, 1)
DbA.SlowMinGetData(0, 2, 1, 1)
DbA.SlowMaxGetData(0, 2, 2, 1)
DbA.ImpGetData(0, 2, 7, 1)
DbA.ImpMinGetData(0, 2, 8, 1)
DbA.ImpMaxGetData(0, 2, 9, 1)
DbA.LeqGetData(0, 2, 6, 1)
DbA.LEGetData(0, 2, 11, 1)
DbA.PkGetData(0, 2, 10, 1)

Корректированные уровни дбAU

Название метрикиВызываемая функцияВозвращаемое значение
DbAU.FastGetData(0, 2, 3, 2)
DbAU.FastMinGetData(0, 2, 4, 2)
DbAU.FastMaxGetData(0, 2, 5, 2)
DbAU.SlowGetData(0, 2, 0, 2)
DbAU.SlowMinGetData(0, 2, 1, 2)
DbAU.SlowMaxGetData(0, 2, 2, 2)
DbAU.ImpGetData(0, 2, 7, 2)
DbAU.ImpMinGetData(0, 2, 8, 2)
DbAU.ImpMaxGetData(0, 2, 9, 2)
DbAU.LeqGetData(0, 2, 6, 2)
DbAU.LEGetData(0, 2, 11, 2)
DbAU.PkGetData(0, 2, 10, 2)

Корректированные уровни дбC

Название метрикиВызываемая функцияВозвращаемое значение
DbC.FastGetData(0, 2, 3, 0)
DbC.FastMinGetData(0, 2, 4, 0)
DbC.FastMaxGetData(0, 2, 5, 0)
DbC.SlowGetData(0, 2, 0, 0)
DbC.SlowMinGetData(0, 2, 1, 0)
DbC.SlowMaxGetData(0, 2, 2, 0)
DbC.ImpGetData(0, 2, 7, 0)
DbC.ImpMinGetData(0, 2, 8, 0)
DbC.ImpMaxGetData(0, 2, 9, 0)
DbC.LeqGetData(0, 2, 6, 0)
DbC.LEGetData(0, 2, 11, 0)
DbC.PkGetData(0, 2, 10, 0)

Корректированные уровни дбFi

Название метрикиВызываемая функцияВозвращаемое значение
DbF.iFastGetData(0, 2, 3, 5)
DbF.iFastMinGetData(0, 2, 4, 5)
DbF.iFastMaxGetData(0, 2, 5, 5)
DbF.iSlowGetData(0, 2, 0, 5)
DbF.iSlowMinGetData(0, 2, 1, 5)
DbF.iSlowMaxGetData(0, 2, 2, 5)
DbF.iImpGetData(0, 2, 7, 5)
DbF.iImpMinGetData(0, 2, 8, 5)
DbF.iImpMaxGetData(0, 2, 9, 5)
DbF.iLeqGetData(0, 2, 6, 5)
DbF.iLEGetData(0, 2, 11, 5)
DbF.iPkGetData(0, 2, 10, 5)

Корректированные уровни дбG

Название метрикиВызываемая функцияВозвращаемое значение
DbG.FastGetData(0, 2, 3, 4)
DbG.FastMinGetData(0, 2, 4, 4)
DbG.FastMaxGetData(0, 2, 5, 4)
DbG.SlowGetData(0, 2, 0, 4)
DbG.SlowMinGetData(0, 2, 1, 4)
DbG.SlowMaxGetData(0, 2, 2, 4)
DbG.ImpGetData(0, 2, 7, 4)
DbG.ImpMinGetData(0, 2, 8, 4)
DbG.ImpMaxGetData(0, 2, 9, 4)
DbG.LeqGetData(0, 2, 6, 4)
DbG.LEGetData(0, 2, 11, 4)
DbG.PkGetData(0, 2, 10, 4)
  • No labels