Алексей, здравствуйте. Со стороны это может показаться как змея кусающая за свой хвост. На самом деле я довольно точно сформулировал вопрос. Прошлый вопрос касался программирования промышленного контроллера - это одна работа. Там полный доступ к железу. По другой работе постоянно приходится работать через уже реализованный интерфейс: во-первых, управление городской телефонной станцией реализовано через VT100, во-вторых, отработка нарядов по абонентам тоже реализована через VT100.
Стоит отметить. Оказывается есть управляющие последовательности для скроллинга части экрана:
* Scroll Screen [{start};{end}r
Enable scrolling from row {start} to row {end}.
Да, Алексей, вы все правильно говорите. И спасибо, что делитесь опытом. Мне знакомо понятие Esc-последовательностей. Просто я размечтался об универсальном и готовом инструменте (и отлаженном сразу). В ncurses вводятся логические объекты - окна. А в идеальном варианте для себя представил что в верхняя/верхние строки заточены под конкретную информацию размещенной в статичных местах, а основное рабочее место отведено под стандартный вывод отладочной информации. Вначале не мог без ввода понятия окна выполнить этот вариант, т.к. новые строки должны в итоге смещать экран вверх при заполнении всего экрана. И тогда нужно всегда, каждый раз при выводе в рабочую область перерисовывать верхние строки, что накладно. И это не происходит при буферизации в ncurses, т.к. на вывод идет только изменяемая информация.
И только сейчас в процессе обсуждения я понял, что мой начальный вариант на самом деле не вариант, т.к. при смещении меняются (смещаются) строки в большой рабочей области. Т.е. должен перерисоваться по сути весь экран, что не приемлемо, т.к. очень дорого. Выход: при заполнении экрана новые строки должны не смещать рабочую область, а начать запись сверху вниз с начала рабочей области.
В таком случае и вводить понятия окна не обязательно. Похоже что вполне можно обойтись самописной библиотекой.
Для отладки удобно когда из любого места можно пульнуть отладочную информацию, тем более если идет поиск ошибки приводящей к зависаниям. Тогда очередь до MODBUS'а или TCP-сервера не дойдет. Да и сам вывод информации для отладки подразумевает постоянно меняющийся формат строки, точнее отсутствие формата.
Поэтому и хочется VT100 из DOS. Надеялся, что может есть где такая незамеченная библиотека.
Тот же MODBUS формируется "ручками". Условно это одна из задач, которая выполняется когда до нее дойдет очередь. Т.е. как-то не интерактивно. Другое дело закинуть свежие несколько байт в порт. Закинул и пошли дальше. А с учетом, что ncurses выводит только изменения, то интерактив сохраняется, но при этом можно сформировать удобный интерфейс. Вдохновлен командой top. Но застопорился по причинам описанным выше.
А так было бы удобно в верхней строке получать количество свободной памяти. Ну ведь удобно же, если один раз сделать, а дальше в других проектах уже "из коробки" работает. И другую важную информацию можно отображать. Уже спотыкался на нехватку стека. Пока искал плавающую ошибку - кучу времени потерял.
TurboVision работает как и pdcurses для ДОС - пишет в видеобуфер напрямую, а задача состоит в том, чтобы картинка (образ) формировалась в контроллере программой, а отображение формировалось удаленно в терминальной программе подключенной к контроллеру через COM/Ethernet порт по протоколу VT100.
Про Kermit посмотрел, с ходу пока не въехал. Чувствую себя ребенком по уровню понимания.
Контроллер ICP DAS класса ПЛК. На нем уже предустановлена ОС MiniOS7. Она подобна ДОС, но с доработками и соответственно не очень известна.
Для текущих задач жесткого реалтайма не нужно. А задач на самом деле несколько, это и сбор данных с датчиков и обработка данных и реализация TCP-сервера через неблокирующие операции, и другие задачи. Конечно там нет многозадачности, но задачи задаются на логическом уровне и обрабатываются небольшими порциями времени. Все хорошо работает, но вот для полного счастья не хватает удобного вывода.
Думаю понял. Т.е. если мы подключаем (include) файл заголовков, то возможны два варианта:
1) вместе с *.h файлом находится исходный код (*.с) - в этом случае лишнее откидывается.
2) вместе с *.h файлом находится объектный файл - в этом случае он присоединяется к проекту целиком.
Так правильно?
А компилятор сам не отсеивает не используемые части из библиотек? Считал, что если не используется функция в проекте, то она и не будет включена в состав исполняемого файла.
Под Windows что-нибудь посоветуете? На офф.сайте сказано, что нужно сделать много изменений, чтобы работало под Windows. Вроде есть порт, ему можно доверять?
Это чисто программный продукт? Или же нужно приобрести хардварную продукцию с сайта?
Я полагал, что WiFi-адаптеры не универсальны для сканирования эфира, а заточены только под стандарт (конкретный набор частот) и на выходе с них можно получить лишь минимум дополнительных данных.
Нельзя в Mediawiki штатно закрыть странички от общего обозрения. Можно лишь с хаками, но это не лучший вариант. Я поэтому и спрашиваю wiki-систему с нативной поддержкой ACL (списков доступа).
Установил. Насколько понял в DokuWiki статье можно присоить категорию, но там не мультикатегорий. Т.е. можно указать порядок вложенности категорий типа Отдых>Музыка>Рок>«Конечная статья», тогда конечная категория и будет привязана к статье, но нет возможности добавить еще одну категорию.
А автоподсказки там есть?