УСТРОЙСТВО, СПОСОБ, ПРОГРАММА И ИНТЕРФЕЙС ДЛЯ ЭМУЛЯЦИИ ТЕРМИНАЛА С УПРАВЛЕНИЕМ ПОСРЕДСТВОМ СЕНСОРНОГО ЭКРАНА

1. Устройство, включающее в себя:
USB порт с поддержкой режима главного устройства (хост, host);
преобразователь интерфейса, подключенный к USB порту;
беспроводной приемопередатчик;
сенсорный экран с компоновкой отображаемых на дисплее элементов, включающей в себя одно общее окно терминала или два отдельных окна терминала для полученных и посланных сообщений, командную строку;
пользовательский интерфейс для установления соединения с заданными устройствами через порты устройства, для выбора компоновки элементов дисплея и настроек процессора;
процессор, настроенный для: конфигурования последовательного порта для преобразователя интерфейса, подключенного к USB порту; создания беспроводного виртуального последовательного порта для связи с одним из заданных устройств; считывания сообщений от каждого из заданных устройств, полученных через последовательный порт преобразователя интерфейса, подключенного к USB порту, и/или через беспроводной виртуальный последовательный порт; записи сообщений для заданного устройства через последовательный порт преобразователя интерфейса, подключенного к USB порту, и/или через беспроводной виртуальный последовательный порт; инициализации и конфигурации эмуляторов терминалов для сконфигурированных последовательного и/или виртуального последовательного портов, индивидуальных и независимых для каждого из портов; выполнения операций эмуляторов терминалов по регистрации управляющих последовательностей терминала в сообщениях, полученных из последовательного и/или виртуального последовательного портов; выполнения операций терминалов, индивидуальных для каждого формата отображения (текстовый, шестнадцатеричный, бинарный и т.д.), по преобразованию сообщений, полученных из последовательного и/или виртуального последовательного портов, в сообщения в выбранном формате представления; выполнения операций эмуляторов терминалов по преобразованию нажатий экрана, включая движения вдоль поверхности экрана, в изменение положения курсора эмулятора терминала и управляющие последовательности терминалов для кнопок-стрелок; выполнения операций эмуляторов терминалов, индивидуальных для каждого формата отображения (текстовый, шестнадцатеричный, бинарный и т.д.), для преобразования данных, вводимых в окне терминала и в командной строке с виртуальной клавиатуры, в сообщения в выбранном формате представления; отправления сообщений и управляющих последовательностей терминала на последовательный порт и/или беспроводной виртуальный последовательный порт; преобразования данных, вводимых в окне терминала и в командной строке, в управляющие последовательности; формирования отображения полученных и посланных сообщений в окнах терминала и формирования отображения сообщений, введенных в командной строке, для выбранного формата отображения (текстовый, шестнадцатеричный, бинарный и т.д.); адаптации отображений полученных и посланных сообщений в окнах терминала к поворотам экрана; осуществления обмена файлами с задаными устройствами с использованием одного из существующих протоколов таких, как Xmodem, Ymodem или без протокола; создания соединения между последовательным портом и беспроводным виртуальным последовательным портом.
2. Устройство по п. 1, отличающееся тем, что компоновка элементов, отображаемых на дисплее сенсорного экрана, включает кнопки для конфигурирования портов связи и установления соединения с заданными устройствами, переключения между различными форматами представления чисел, генерации управляющих последовательностей, сохранения списка кодовых последовательностей в различных форматах, отправления сообщений из командной строки, переключения между эмуляторами терминалов, осуществления передачи файлов, установления прямого соединения между портами связи, переключения терминала между режимами с и без отдельного окна терминала для принятых сообщений.
3. Устройство по п. 1, отличающееся тем, что область окна терминала настроена для отображения строк символов, при запросе окно терминала обрабатывает строки из блока памяти и отображает их на экране так, что каждый встречающийся символ '\n' начинает новую строку, примером такой области окна терминала является EditText, подкласс класса TextView системы Android.
4. Способ, включающий:
отображение на дисплее сенсорного экрана компоновки элементов, включающей в себя одно общее окно терминала или два отдельных окна терминала для полученных и посланных сообщений, командную строку;
пользовательский интерфейс для установления соединения с заданными устройствами через порты устройства, для выбора компоновки элементов дисплея и настроек процессора;
конфигурование последовательного порта для преобразователя интерфейса, подключенного к USB порту;
создание беспроводного виртуального последовательного порта для связи с одним из заданных устройств;
считывание сообщений от каждого из заданных устройств, полученных через последовательный порт преобразователя интерфейса, подключенного к USB порту, и/или через беспроводной виртуальный последовательный порт;
запись сообщений для заданного устройства через последовательный порт преобразователя интерфейса, подключенного к USB порту, и/или через беспроводной виртуальный последовательный порт;
инициализацию и конфигурацию эмуляторов терминалов для сконфигурированных последовательного и/или виртуального последовательного портов, индивидуальных и независимых для каждого из портов;
выполнение операций эмуляторов терминалов по регистрации управляющих последовательностей терминала в сообщениях, полученных из последовательного и/или виртуального последовательного портов;
выполнение операций терминалов, индивидуальных для каждого формата отображения (текстовый, шестнадцатеричный, бинарный и т.д.), по преобразованию сообщений, полученных из последовательного и/или виртуального последовательного портов, в сообщения в выбранном формате представления;
выполнение операций эмуляторов терминалов по преобразованию нажатий экрана, включая движения вдоль поверхности экрана, в изменение положения курсора эмулятора терминала и управляющие последовательности терминалов для кнопок-стрелок;
выполнение операций эмуляторов терминалов, индивидуальных для каждого формата отображения (текстовый, шестнадцатеричный, бинарный и т.д.), для преобразования данных, вводимых в окне терминала и в командной строке с виртуальной клавиатуры, в сообщения в выбранном формате представления;
отправление сообщений и управляющих последовательностей терминала на последовательный порт и/или беспроводной виртуальный последовательный порт;
преобразование данных, вводимых в окне терминала и в командной строке, в управляющие последовательности;
формирование отображения полученных и посланных сообщений в окнах терминала и формирование отображения сообщений, введенных в командной строке, для выбранного формата отображения (текстовый, шестнадцатеричный, бинарный и т.д.);
адаптацию отображений полученных и посланных сообщений в окнах терминала к поворотам экрана;
осуществление независимого обмена файлами с каждым из заданных устройств с использованием одного из существующих протоколов таких, как Xmodem, Ymodem или без протокола;
создание соединения между последовательным портом и беспроводным виртуальным последовательным портом.
5. Способ по п. 4, отличающийся тем, что если локальное эхо включено или локальное эхо выключено, но включена опция курсора, то при нажатиях на окно терминала включая движения вдоль экрана подключенному устройству посылаются команды терминала и обновляется позиция курсора пользователя.
6. Способ по п. 4, отличающийся тем, что для терминала с отдельным окном терминала для отображения сигнала, посылаемого подключенным устройством, в текстовом представлении при получении команды терминала от подключенного устройства для кнопки-стрелки положение курсора терминала обновляется, при получении команды терминала отображения символа в окне терминала, окно терминала для отображения данных, полученных от подключенного устройства, обновляется с использованием текущего значения положения курсора терминала, а затем обновляется положение курсора терминала.
7. Способ по п. 4, отличающийся тем, что для терминала без отдельного окна для отображения данных, полученных от подключенного устройства, при текстовом формате отображения данных при получении от подключенного устройства команд терминала для кнопок-стрелок обновляется и положение курсора пользователя, и положение курсора терминала, при получении от подключенного устройства команды терминала отображения символа в окне терминала окно терминала обновляется с использованием текущего значения положения курсора терминала, и затем обновляются значения положение курсора терминала и положение курсора пользователя.
8. Способ по п. 4, отличающийся тем, что в текстовом формате отображения данных блок памяти окна терминала хранит данные окна терминала в форме последовательности строк символов одинаковой длины W+1, где W - ширина окна терминала в количестве символов, причем значение последнего символа строки приравнивается символу новой строки '\n'.
9. Способ по п. 4, отличающийся тем, что при текстовом формате отображения данных при включенном локальном эхе при вводе символов пользователем в окне терминала при вводе символа новой строки '\n' значение положения курсора терминала и значение положения курсора пользователя обновляются в соответствии с выбранным способом обработки символа новой строки при передаче данных, при вводе символов пользователем при вводе символа стирания заданному устройству посылается код 0x08 и обновляются значение положения курсора терминала и значение положения курсора пользователя, при получении других символов при вводе символов пользователем по текущему значению положения курсора терминала определяются индекс строки в блоке памяти окна терминала и индекс символа этой строки, и затем значение найденного символа заменяется на значение, введенное пользователем, после чего обновляется значение положения курсора терминала и значение положения курсора пользователя.
10. Способ по п. 4, отличающийся тем, что в текстовом формате отображения данных при получении от подключенного устройства последовательности, выбранной в настройках приложения в качестве последовательности новой строки, положение курсора терминала и положение курсора пользователя обновляются в соответствии с выбранной настройкой для обработки символа новой строки при получении данных, при обнаружении управляющей последовательности в последовательности байт, полученных от подключенного устройства, эта последовательность удаляется из памяти, и выполняется операция для эмулятора терминала в соответствии с этой управляющей последовательностью, при получении символа стирания от подключенного устройства обновляются значение положения курсора терминала и значение положения курсора пользователя, при получении других символов от подключенного устройства по текущему значению положения курсора терминала определяются индекс строки в блоке памяти окна терминала и индекс символа этой строки, и затем значение найденного символа заменяется на значение, полученное от подключенного устройства, после чего обновляются значение положения курсора терминала и значение положения курсора пользователя.
11. Способ по п. 4, отличающийся тем, что при вводе первого символа нового числа в нетекстовом формате, префикс отображается перед первым символом числа, например, при вводе бинарного или шестнадцатеричного числа, префикс 0x отображается для шестнадцатеричного числа и префикс 0b отображается для бинарного числа.
12. Способ по п. 4, отличающийся тем, что при вводе в окне терминала при вводе последнего символа числа по п. 11 соответствующий код посылается подключенному устройству.
13. Способ по п. 4, отличающийся тем, что при вводе в командной строке после ввода последнего символа числа по п. 11, при нажатии кнопки по п. 2 соответствующий код будет послан подключенному устройству, в противном случае при вводе в командной строке при удалении первого символа числа по п. 11, префикс числа так же автоматически удаляется.
14. Способ по п. 4, отличающийся тем, что при вводе в командной строке после ввода последнего символа числа по п. 11 получается число, представляющее собой код, который будет послан подключенному устройству из командной строки.
15. Способ по п. 11, отличающийся тем, что при удалении последнего символа числа по п. 12 подключенному устройству посылается код 0x08, удаление других символов числа по п. 12 не генерирует никаких сигналов, посылаемых подключенному устройству.
16. Способ по п. 4, отличающийся тем, что при удалении первого символа числа по п. 11 или числа по п. 15 префикс числа так же автоматически удаляется.
17. Способ по п. 4, отличающийся тем, что при нажатии на выбранную в настройках програмы кнопку после окончания ввода последнего числа по п. 12, следующее вводимое число будет представлять собой число повторений кода по п. 12, посланных друг за другом.
18. Способ по п. 4, отличающийся тем, что при вводе первого символа числа по п. 17 будет отображен префикс, обозначающий, что следующее вводимое число представляет собой число повторений числа по п. 12, посланных одно за другим.
19. Способ по п. 4, отличающийся тем, что если ввод делается в окне терминала, при вводе последнего символа числа по п. 18, соответствующее число повторений числа по п. 12 будет послано подключенному устройству.
20. Способ по п. 4, отличающийся тем, что если ввод делается в командной строке, то после ввода последнего символа числа по п. 18, при нажатии кнопки по п. 2 соответствующее число повторений кода по п. 12 будет послано подключенному устройству.
21. Способ по п. 4, отличающийся тем, что при стирании крайнего правого символа числа по п. 20, соответствующее число повторений кода "0x08" будет послано подключенному устройству, если ввести последний символ числа еще раз, то новое число последовательных повторений числа по п. 12 будет послано подключенному устройству, в противном случае, при стирании первого символа числа по п. 20, префикс числа так же будет автоматически удален.
22. Способ по п. 4, отличающийся тем, что после нажатия кнопки по п. 2 последовательности символов в текстовом формате или в форматах чисел по п. 14 или 20 будут посланы подключенному устройству, если локальное эхо включено, то последовательности из командной строки будут преобразованы в выбранный формат отображения окна терминала для отображения в нем.
23. Способ по п. 4, отличающийся тем, что если включена опция автоматического масштабирования, то для текстового формата отображения при поворотах экрана размер шрифта окна терминала автоматически изменится так, что ширина экрана терминала в числе символов будет одной и той же, определенной в настойках, а окно терминала будет заполнять всю ширину экрана устройства.
24. Способ по п. 4, отличающийся тем, что если опция автоматического масштабирования выключена, размер шрифта окна терминала будет оставаться одним и тем же, равным величине, заданной в настройках программы, более того, при вращении, если новая ширина экрана оказывается меньше, чем длина строки текста окна терминала, то часть текста за правой границей окна терминала будет отрезана.
25. Способ по п. 4, отличающийся тем, что отдельное окно терминала для полученных сообщений по п. 1 включается или отключается.
26. Способ по п. 4, отличающийся тем, что при включении отдельного окна терминала для полученных сообщений по п. 1 блок памяти окна терминала для посланных сообщений по п. 1 копируется в блок памяти окна терминала для полученных сообщений и очищается.
27. Способ по п. 4, отличающийся тем, что при отключении отдельного окна терминала для полученных сообщений по п. 1, блок памяти окна терминала полученных сообщений копируется в блок памяти терминала для посланных сообщений по п. 1 и очищается.
28. Способ по п. 4, дополнительно включающий подключение блоков памяти входящего сигнала либо к эмулятору терминала, либо к модему для обмена файлами, либо к блоку контроля прямого соединения между несколькими портами с подключенными устройствами.
29. Программа, включающая в себя набор инструкций для управления устройством, включающим в себя USB порт; преобразователь интерфейса, подключенный к USB порту; беспроводной приемопередатчик; сенсорный экран с компоновкой отображаемых на дисплее элементов, включающей в себя одно общее окно терминала или два отдельных окна терминала для полученных и посланных сообщений, командную строку; пользовательский интерфейс для установления соединения с заданными устройствами через порты устройства, для выбора компоновки элементов дисплея и настроек процессора; набор инструкций, дающих при загрузке в процессор:
механизм конфигурирования последовательного порта для преобразователя интерфейса, подключенного к USB порту;
механизм создания беспроводного виртуального последовательного порта для связи с одним из заданных устройств;
механизм считывания сообщений от каждого из заданных устройств, полученных через последовательный порт преобразователя интерфейса, подключенного к USB порту, и/или через беспроводной виртуальный последовательный порт;
механизм записи сообщений для заданного устройства через последовательный порт преобразователя интерфейса, подключенного к USB порту, и/или через беспроводной виртуальный последовательный порт;
механизм инициализации и конфигурации эмуляторов терминалов для сконфигурированных последовательного и/или виртуального последовательного портов, индивидуальных и независимых для каждого из портов;
механизм выполнения операций эмуляторов терминалов по регистрации управляющих последовательностей терминала в сообщениях, полученных из последовательного и/или виртуального последовательного портов;
механизм выполнения операций терминалов, индивидуальных для каждого формата отображения (текстовый, шестнадцатеричный, бинарный и т.д.), по преобразованию сообщений, полученных из последовательного и/или виртуального последовательного портов, в сообщения в выбранном формате представления;
механизм выполнения операций эмуляторов терминалов по преобразованию нажатий экрана, включая движения вдоль поверхности экрана, в изменение положения курсора эмулятора терминала и управляющие последовательности терминалов для кнопок-стрелок;
механизм выполнения операций эмуляторов терминалов, индивидуальных для каждого формата отображения (текстовый, шестнадцатеричный, бинарный и т.д.), для преобразования данных, вводимых в окне терминала и в командной строке с виртуальной клавиатуры, в сообщения в выбранном формате представления;
механизм отправления сообщений и управляющих последовательностей терминала на последовательный порт и/или беспроводной виртуальный последовательный порт;
механизм преобразования данных, вводимых в окне терминала и в командной строке, в управляющие последовательности;
механизм формирования отображения полученных и посланных сообщений в окнах терминала и формирования отображения сообщений, введенных в командной строке, для выбранного формата отображения (текстовый, шестнадцатеричный, бинарный и т.д.);
механизм адаптации отображений полученных и посланных сообщений в окнах терминала к поворотам экрана;
механизм независимого обмена файлами с каждым из заданных устройств с использованием одного из существующих протоколов таких, как Xmodem, Ymodem или без протокола;
механизм создания соединения между последовательным портом и беспроводным виртуальным последовательным портом.
30. Физический объект, осуществляющий программу по п. 29.