Окно
В окне Signal Lab четыре части: боковая панель слева перечисляет экраны, шапка вверху содержит то, что действует везде, выбранный экран занимает середину, а нижняя панель показывает консоль, запущенные задачи и Инспектор. Настольное приложение и страница сервера в браузере выглядят одинаково; немногие различия описаны в разделе В браузере.
Боковая панель
Каждый экран — отдельный инструмент. Щёлкните экран, чтобы открыть его:
| Экран | Для чего он |
|---|---|
| Эксперименты | Собирать тестовые сценарии на холсте, запускать их и разбирать каждый запуск по шагам. Эксперименты |
| Сигналы | Библиотека сигналов: именованные сообщения в папках, которые можно править и отправлять снова. Сигналы |
| Эмуляторы | HTTP API-заглушки, OSC-, UDP- и TCP-устройства и MQTT-брокеры, которые отвечают по правилам. Эмуляторы |
| OSC | Отправлять OSC-сообщения, слушать порт, подавать на приёмник непрерывный сигнал заданной формы. OSC |
| MQTT | Подключаться к брокеру, видеть все его топики, публиковать и стирать retained-значения. MQTT |
| Броадкаст | Отправлять сразу многим хостам — по списку, широковещательно, в multicast-группу, обходом подсети — и слушать, кто откликнется. Броадкаст и обнаружение |
| HTTP | Один запрос и весь его ответ, затем нагрузочный поток на тот же эндпоинт. HTTP |
| WebSocket | Подключаться к сервису WebSocket, отправлять текст или байты, читать каждое сообщение. WebSocket |
| Помехи | Реле, которое ухудшает трафик UDP или TCP между клиентом и его целью. Помехи |
| Шторм | Сырая нагрузка UDP или TCP на ваши собственные серверы и каналы. Шторм |
| Сканер | Какие TCP-порты хоста открыты и что служба сообщает первой. Сканер |
Сначала боковая панель — узкая полоса, где у каждого экрана есть значок и короткое название; наведите указатель на экран, чтобы увидеть полное название. Кнопка ☰ слева в шапке (Развернуть навигацию / Свернуть навигацию) переключает между узкой полосой и полным списком, и Signal Lab запоминает ваш выбор.
Число у пункта экрана — это количество задач, запущенных с него, например монитора или эмулятора: видно, что ещё работает, не открывая экран. Внизу боковой панели номер версии открывает окно «О программе», а строка под ним показывает число всех запущенных задач.
Signal Lab открывается на экране, которым вы пользовались последним.
Шапка
Слева направо:
| Элемент | Что делает |
|---|---|
| ☰ | Показывает боковую панель узкой полосой или полным списком. |
| Хост | Надпись хост, затем имя и сетевой адрес компьютера, на котором работает движок: этого — в настольном приложении, сервера — в браузере. В браузере там же написано Сервер — наведите на эту надпись указатель, чтобы увидеть, где сервер хранит свои файлы, — а точка рядом меняется, когда страница теряет связь. |
| Кнопка обновления | Появляется в настольном приложении, когда найден новый выпуск, и открывает «О программе», чтобы его установить. См. Обновления. |
| Книга | Документация: эта документация, на странице того экрана, где вы находитесь. F1 делает то же самое откуда угодно. |
| ✉ | Написать разработчикам: сообщение разработчикам. См. Написать разработчикам. |
| ? | О программе: версия, кто делает Signal Lab, как с ними связаться, и обновления. |
| Флаг | Язык: язык интерфейса. См. Языки. |
| Выйти | В браузере, когда сервер требует токен доступа: завершает сессию этого браузера. |
| Остановить всё | Останавливает сразу все запущенные задачи: мониторы, генераторы, маяки, эмуляторы, реле, штормы, сканирования, запуски. Пока ничего не запущено, кнопка неактивна. |
Документация
Документация встроена в приложение и в сервер, поэтому доступна без интернета, на языке интерфейса. Настольное приложение показывает её в отдельном окне — если нажать кнопку снова на другом экране, окно переключится на страницу этого экрана, — а ссылки, ведущие за пределы документации, открывает в вашем браузере. В браузере она открывается в отдельной вкладке. В окне «О программе» тоже есть кнопка Документация; она открывает страницу Что такое Signal Lab.
О программе
Окно «О программе» показывает версию, разработчика, адрес для связи (с кнопкой, которая его копирует), исходный код и лицензию. В настольном приложении его раздел Обновления ищет, показывает и устанавливает обновления — см. Обновления. В браузере там написано Сервер обновляется своим образом. Кнопка Написать разработчикам открывает форму обратной связи.
Написать разработчикам
Значок ✉ в шапке открывает форму, которая уходит прямо к разработчикам:
| Поле | Что туда написать |
|---|---|
| Сообщение | Что произошло и чего вы ожидали вместо этого. Обязательное поле; не больше 20 000 символов. |
| Ваш e-mail для ответа | Необязательно: куда разработчики могут вам ответить. Видят его только они. |
| Скриншоты | До 6 изображений (PNG, JPEG, WebP или GIF), не больше 8 МБ каждое и 15 МБ вместе. Вставьте изображение по Ctrl+V, перетащите файлы на окно или нажмите Прикрепить скриншот. |
| Прикладывается автоматически | Строки консоли и Версия и система, каждое приложено отдельным файлом. Кнопка Показать показывает, что именно будет отправлено; снимите флажок, чтобы не прикладывать что-то из этого. |
Из приложенных журналов убраны имя этого компьютера, его сетевой адрес и имена в путях к вашим папкам. Ctrl+Enter отправляет форму; после отправки вы получите номер обращения, который сохранится и в консоли. Сообщение идёт через собственный сервис студии, который пересылает его по почте; никакого пароля для этого в приложении нет.
Нижняя панель
У панели под каждым экраном две вкладки, Консоль и Инспектор, а между ними и кнопками панели — полоса запущенных задач.
- Стрелка слева (Свернуть консоль / Развернуть консоль) сворачивает панель до её полосы или снова раскрывает. В свёрнутом виде полоса всё равно показывает последнюю строку консоли; щёлкните эту строку, чтобы открыть панель.
- Потяните за верхний край панели, чтобы сделать её выше или ниже (см. Размеры панелей).
- Кнопка справа разворачивает её На всю высоту окна и возвращает обратно (Вернуть прежнюю высоту).
Открыта ли панель, какая вкладка в ней выбрана и какой она высоты — всё это сохраняется до следующего раза.
Консоль
Консоль сообщает, что сделал каждый инструмент и что пошло не так, новые строки — внизу: отправленное сообщение и его размер, запущенный монитор, статус и время ответа, завершившаяся задача и причина. В каждой строке есть время (с точностью до миллисекунды), метка инструмента и само сообщение, окрашенное по типу: выполнено, информация, предупреждение или ошибка.
- Флажок автопрокрутка держит в поле зрения самую новую строку по мере поступления; снимите его, чтобы читать предыдущие, пока приходят новые.
- Кнопка Очистить очищает консоль.
- Хранятся последние 500 строк.
- Если переключить язык, вся консоль перепишется на новом языке.
Задачи
У каждой запущенной задачи — монитора, генератора, маяка, подключения к брокеру, эмулятора, реле, шторма, сканирования, запуска эксперимента — есть на полосе плашка с её номером и названием и собственная кнопка остановки. Когда ничего не запущено, на полосе написано нет активных задач. См. Задачи.
Вкладка Инспектора
Вкладка Инспектор показывает каждый кадр, который инструменты отправляют и получают, пока включён захват, — рядом с тем экраном, на котором вы работаете. Её точка светится, пока захват включён, а число показывает, сколько кадров захвачено. Панель открывается на такую высоту, чтобы поместились список Инспектора и детали кадра; ссылка на кадр в другом месте — на ленте запуска или в списке эмулятора — открывает эту вкладку на этом кадре. Однажды открытый, Инспектор сохраняет свой список и выделение, пока панель закрыта. Как им пользоваться — в разделе Инспектор.
Отправка сигнала откуда угодно
Нажмите Ctrl+K на любом экране, чтобы открыть окно Отправить сигнал: наберите несколько букв имени сигнала, папки или цели, выберите стрелками ↑ и ↓ и нажмите Enter, чтобы отправить. В списке одновременно не больше 12 сигналов. Окно закрывается по Esc, щелчком вне его или повторным Ctrl+K. Консоль сообщает, что и куда отправлено. См. Сигналы.
Размеры панелей
Между панелями, размер которых можно менять, есть тонкий разделитель: верхний край нижней панели (Высота консоли), а на экране экспериментов — край панели свойств (Ширина панели свойств) и верх ленты запуска (Высота ленты запуска).
- Потяните за разделитель.
- Или переведите на него фокус клавишей Tab и пользуйтесь стрелками: каждое нажатие сдвигает его на 16 пикселей, с Shift — вчетверо дальше; Home и End задают наименьший и наибольший размер.
- Дважды щёлкните его или нажмите на нём Enter, чтобы вернуть панели размер по умолчанию.
Размеры сохраняются до следующего раза.
Подсказки
На экранах — подписи, значения и состояния, а пояснения убраны в подсказки: чего ждёт поле, что в нём значит 0, какая клавиша делает то же самое. Подсказка появляется, если задержать указатель на элементе примерно на полсекунды, и сразу, если перейти к нему с клавиатуры; у поля показывается подсказка его подписи. Esc, ввод текста, щелчок или прокрутка скрывают её. Программы чтения с экрана читают тот же текст.
Сообщения об ошибках говорят, где и что пошло не так и почему; формулировка самой системы свёрнута под Технические подробности.
Экраны сохраняют состояние
Экран открывается при первом посещении, а потом остаётся как есть, пока вы работаете на другом: введённое, последний ответ, список сообщений монитора и задача за ним, даже положение прокрутки — всё на месте, когда вы возвращаетесь. Запущенная задача продолжает работать, на какой бы экран вы ни смотрели.
Некоторые значения сохраняются и между перезапусками: OSC-сообщение, которое вы отправляли, HTTP-запрос, адрес WebSocket, размеры панелей, экран, на котором вы были.
Уведомление о брандмауэре
Брандмауэр Защитника Windows для каждой программы отдельно решает, могут ли другие машины к ней обращаться. Когда программа впервые начинает слушать, Windows спрашивает человека у экрана — и если там нажать Отмена или если Windows считает сеть общедоступной, всё, что присылают другие машины, молча отбрасывается. Обычный признак — монитор, который ничего не показывает.
Поэтому в настольном приложении для Windows, когда что-то впервые начинает слушать, — монитор OSC, приёмник обнаружения, реле помех, эмулятор или запуск эксперимента, — Signal Lab один раз проверяет брандмауэр. Если брандмауэр мешает, об этом сообщает уведомление под шапкой:
- Кнопка Разрешить запрашивает права администратора стандартным окном Windows, а затем открывает другим машинам доступ к Signal Lab в частных сетях и сетях домена.
- В сети, которую Windows считает общедоступной, — часто это Wi-Fi площадки — вместо неё появляется кнопка Разрешить, и в публичных сетях.
- Кнопка Не сейчас скрывает уведомление до конца сеанса.
Разрешение заменяет правила брандмауэра Signal Lab для входящих подключений одним разрешающим правилом. Трафика внутри самого компьютера (127.0.0.1) это никогда не касается, поэтому, пока вы работаете на loopback, уведомление можно не замечать. У установки для всех правило уже есть; см. Что ещё добавляет установщик. signallab doctor сообщает то же самое в терминале, а signallab firewall allow там же это исправляет — см. Командная строка. В Linux и в браузере уведомления нет: брандмауэр сервера — забота его администратора.
В браузере
Страница сервера — тот же интерфейс, с несколькими отличиями:
- Хост в шапке называет сервер, а рядом с ним написано Сервер.
- Если сервер требует токен доступа, вы входите один раз, а кнопка Выйти в шапке завершает сессию.
- Если страница теряет связь с сервером, на полосе написано Связь с сервером потеряна — переподключаюсь…, пока связь не вернётся; консоль отмечает и потерю, и восстановление.
- Отчёты о запусках, экспорт и захваты Инспектора браузер скачивает, а не показывает в виде пути.
- В окне «О программе» нет обновлений: сервер обновляется вместе со своим образом.
Всё, что делает страница сервера, происходит на сервере: трафик уходит с него, мониторы слушают его порты, файлы попадают в его папку данных. См. Основные понятия.
Языки
Флаг в шапке показывает текущий язык и его две буквы. Щёлкните его, чтобы открыть список всех языков — каждый со своим флагом и собственным названием, — и выберите нужный. В списке ↑, ↓, Home и End перемещают выбор, буква переходит к следующему языку, название которого с неё начинается, — на этом языке или по-английски, так что g находит Deutsch, — Enter выбирает, а Esc закрывает список.
Интерфейс переключается сразу, без перезапуска: все экраны, подсказки и ошибки, и даже прежние строки консоли. При первом запуске Signal Lab выбирает первый из языков вашей системы, который он знает, или английский, а дальше помнит ваш выбор — в браузере для этого браузера.
Арабский разворачивает всё окно справа налево. То, что является данными, остаётся слева направо, как написано: адреса, шестнадцатеричные дампы, код и холст эксперимента.