Я использую Ubuntu для получения вывода от устройства BLE, и в терминале я получаю непрерывный поток значений. Единственная проблема состоит в том, что им предшествует бесполезная строка (я читаю характеристики устройства BLE, таким образом, у них есть "Дескриптор уведомления = 0x000c значение: FF FF"). Мне только нужна шестнадцатеричная строка в конце для моих данных.
В настоящее время я регистрирую терминальное окно вывода с помощью сценария и затем от созданного текстового файла, я извлекаю шестнадцатеричные значения и преобразовываю их в напряжения, которые я затем вывожу на печать. Однако я должен на самом деле выполнить обе из этих команд, таким образом, я эффективно делаю снимки экрана данных.
Я задаюсь вопросом, был ли некоторый способ только записать шестнадцатеричные значения в .dat файл и управлять ими, потому что затем я могу на самом деле отобразить данные на графике в режиме реального времени. Если Вы, парни знают, что любая альтернатива получает график данных в режиме реального времени, действительно сообщают мне.
Вот несколько опций, которые можно попробовать:
yourcommand | sed 's/.*: //' > file.dat
yourcommand | cut -d: -f2 > file.dat
yourcommand | awk -F: '{print $2}' > file.dat
yourcommand | grep -Eo '[[:xdigit:]]{2} [[:xdigit:]]{2} > file.dat
Вы могли передать вывод по каналу на строку канавка awk как следующее:
echo "Notification handle = 0x000c value: FF FF" | awk '{print $6, $7}'
, который приведет к этому выводу:
FF FF
другой канал позволил бы Вам помещать это в файл путем добавления
echo "Notification handle = 0x000c value: FF FF" | awk '{print $6, $7}' | tee -a values.dat
, Это оставит Вас с файлом, содержащим всегда двухбайтовое шестнадцатеричное значение на строку, от которого Вы могли затем идти дальше.