Извлечение данных из тегов в наборе результатов XML

В общих чертах:

Децибел - это логарифмическая единица (1 дБ = 1/10 бел, 1 бел = коэффициент мощности 1,259 = коэффициент амплитуд 1,122), который описывает относительную взаимосвязь между сигналы. См. википедию для получения подробной информации и таблицы. Отрицательные децибелы означают, что полученный сигнал слабее отправленных (что, конечно, происходит естественным образом).

Уровень означает, насколько сильным является сигнал при приеме по сравнению с тем, насколько сильным он был / предполагался при отправке.Это физическое измерение, которое в принципе одинаково для любого оборудования Wi-Fi. Однако часто он не откалиброван должным образом и т. Д.

Ссылка - это вычисленное измерение того, насколько хорош сигнал (т.е. насколько легко аппаратному / программному обеспечению восстановить данные из него). На это влияют эхо, многолучевое распространение, тип используемого кодирования и т.д .;и каждый использует свой собственный метод для его вычисления. Часто (но не всегда) он вычисляется до некоторого значения, которое находится в той же шкале, что и значение «уровня».

По опыту, для большинства оборудования, которое я видел, значение около -50 означает, что сигнал в порядке, что-то около -80 означает, что он довольно слабый, но вполне работоспособный. . Если он идет намного ниже, соединение становится ненадежным.

Эти значения следует рассматривать просто как приблизительное указание, а не как нечто научное, на что вы можете полагаться, и вы не должны ожидать, что они будут похожими или даже сопоставимыми на разном оборудовании, даже не на «уровне». Лучший способ научиться интерпретировать это - взять ваше оборудование, немного его повозить, посмотреть, как изменяется сигнал и как это влияет на скорость, частоту ошибок и т. Д.

1
22.07.2016, 09:46
2 ответа

Это использование XMLstarlet с paste. Возможно, это можно сделать одним вызовом XMLstarlet, но я не волшебник:

$ paste <(xml sel -T -t -v '//@estimated' data.xml) \
        <(xml sel -T -t -v '//@fullSign' data.xml)
1469138452000   MAX Blue Line to Hillsboro
1469138664000   MAX Red Line to City Center & Beaverton
1469139140000   MAX Blue Line to Hillsboro
1469139577000   MAX Red Line to City Center & Beaverton
2
27.01.2020, 23:25
$ xml2 < sunnx.xml | awk -F= '
   $1 ~ /@fullSign/  { fs=$2 ; sub(/&/,"&amp;",fs) };
   $1 ~ /@estimated/ { est=$2 };
   fs && est         { printf "%s %s\n", est, fs; fs=est="" }'
1469138452000 MAX  Blue Line to Hillsboro
1469138664000 MAX  Red Line to City Center &amp; Beaverton
1469139140000 MAX  Blue Line to Hillsboro
1469139577000 MAX  Red Line to City Center &amp; Beaverton

Если вам нужен литерал & , а не & , то избавьтесь от функции sub () вызов. xml2 декодирует закодированные объекты для вас, поэтому я добавил sub () , чтобы изменить его обратно в соответствии с вашим запрошенным выводом.

Без sub () результат будет выглядеть следующим образом:

1469138452000 MAX  Blue Line to Hillsboro
1469138664000 MAX  Red Line to City Center & Beaverton
1469139140000 MAX  Blue Line to Hillsboro
1469139577000 MAX  Red Line to City Center & Beaverton
1
27.01.2020, 23:25

Теги

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