СИНТАКСИС
halstreamer [options]
ОПИС
Компонент HAL streamer(9) і програма halstreamer використовуються разом для потокової передачі даних з файлу в HAL в режимі реального часу. У режимі реального часу streamer експортує контакти HAL і створює FIFO (черга «першим прийшов, першим вийшов») у спільній пам’яті. Програма halstreamer, що працює не в режимі реального часу, копіює дані зі stdin у FIFO, щоб streamer міг записати їх на контакти HAL.
ВАРІАНТИ
- -c CHAN
-
Наказує halstreamer записувати у FIFO CHAN. FIFO нумеруються від нуля, а значення за замовчуванням дорівнює нулю, тому ця опція не потрібна, якщо не створено кілька FIFO.
- _ІМ’Я_ФАЙЛУ
-
Наказує halsampler читати з FILENAME замість stdin.
ВИКОРИСТАННЯ
Спочатку потрібно створити FIFO, завантаживши streamer(9) за допомогою halcmd loadrt або команди loadrt у HAL-файлі. Потім можна викликати halstreamer, щоб розпочати запис даних у FIFO.
Дані зчитуються зі stdin і майже завжди або перенаправляються з файлу, або передаються з якоїсь іншої програми, оскільки введення з клавіатури не зможе встигати навіть за низькою швидкістю потокового передавання.
Кожен рядок вхідних даних повинен відповідати контактам, які підключені до FIFO, наприклад, якщо конфігураційний рядок streamer був "ffbs", то кожен рядок вхідних даних повинен складатися з двох чисел з плаваючою комою, біта та цілого числа зі знаком, у такому порядку та розділених пробілами. Числа з плаваючою комою повинні бути відформатовані відповідно до вимог strtod(3), цілі числа зі знаком і без знака повинні бути відформатовані відповідно до вимог strtol(3) і strtoul(3), а біти повинні бути або «0», або «1».
Рядки вводу, що починаються з символу #, будуть розглядатися як коментарі та пропускатися без попередження.
halstreamer transfers data to the FIFO as fast as possible until the FIFO is full, then it retries at regular intervals, until it is either killed or reads EOF from stdin. Data can be redirected from a file or piped from some other program.
Розмір FIFO слід вибирати таким чином, щоб він міг пропускати будь-які тимчасові перебої в потоці даних, наприклад, пошук на диску. Якщо FIFO достатньо великий, halstreamer можна перезапустити з тим самим або новим файлом до того, як FIFO спорожніє, що забезпечить безперервний потік даних.
Формат даних для вхідних даних halstreamer такий самий, як і для вихідних даних halsampler(1), тому «хвильові форми», отримані за допомогою halsampler, можна відтворити за допомогою halstreamer.
СТАТУС ВИХОДУ
Якщо під час ініціалізації виникає проблема, halstreamer виводить повідомлення на stderr та повертає невдачу.
Якщо під час запису в FIFO зустрічається неправильно відформатований рядок, він виводить повідомлення на stderr, пропускає рядок і продовжує роботу (ця поведінка може бути виправлена в майбутньому).
Після зчитування EOF з вхідних даних повертається успіх. Якщо зчитування завершується до завершення вхідних даних, повертається невдача.
ДИВІТЬСЯ ТАКОЖ
streamer(9), sampler(9), halsampler(1)
АВТОР
Оригінальна версія від Джона Касуніча, як частина проєкту LinuxCNC. Покращення від кількох інших членів команди розробників LinuxCNC.
ПОВІДОМЛЕННЯ ПРО ПОМИЛКИ
Повідомляйте про помилки за адресою https://github.com/LinuxCNC/linuxcnc/issues.
АВТОРСЬКЕ ПРАВО
Авторське право © 2006 Джон Касуніч.
Це безкоштовне програмне забезпечення; дивіться умови копіювання у вихідному коді. НЕМАЄ ЖОДНИХ гарантій; навіть щодо ТОВАРНОЇ ПРИДАТНОСТІ або ПРИДАТНОСТІ ДЛЯ ПЕВНОЇ МЕТИ.