Важная информация

User Tag List

Страница 1 из 4 1234 ПоследняяПоследняя
Показано с 1 по 10 из 39

Тема: Вектор-06Ц: Эмуляция - Виртуальные контроллеры

  1. #1
    Master
    Регистрация
    22.02.2014
    Адрес
    г. Курган
    Сообщений
    878
    Спасибо Благодарностей отдано 
    47
    Спасибо Благодарностей получено 
    66
    Поблагодарили
    43 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Вектор-06Ц: Эмуляция - Виртуальные контроллеры

    На всякий случай, открою тему.

    Цитата Сообщение от b2m Посмотреть сообщение
    И как? Подключил? Мне просто интересно, это был только концепт или что-то реальное?
    Это проект на плате с stm32, подключенной к "ПУ".
    Один из способов загрузить в Вектор программу (реализованных в этом модуле), это по WiFi.
    Сверх-задачи не ставил, просто загрузить с компа программу без подключения проводов между Вектором и РС.

    Ничего из перечисленного сейчас не используется. Исключительно JavaScript (а это совсем не Java).
    При настройке доступа к сайтам, регулярно сталкиваюсь с сообщениями типа : "на вашем компе ... Актив-Х... " и т.д.
    И порой сайты требуют установить на комп Джава.

    Ой-ли? Для FTP соединения нужны два канала, и куча команд перед тем, как файл начнёт передаваться (и не забываем анализ ответов на команды). Для HTTP нужно лишь соедениться, выплюнуть GET и если файл найден, он тут-же вернётся по тому-же соединению обратно. Пропустить заголовок ответа сложности не составит.
    Надеюсь ни кто не собирается реализовывать сокеты и стек на Векторе. В описании модулей написано, что в них уже реализован UDP, FTP, HTTP, POP, ... и пр. дребедень.
    Если есть готовая реализация подключения к интернету, могу добавить её в свой эмуль. Нужно лишь описание и работающий на реале пример программы.

    Что-то такое припоминаю. Но способов взаимодействия с внешней программой пока никто не предложил. Наиболее простой вариант - это расширение в виде .dll, которую будет подгружать эмулятор. Нужно лишь договориться об API.
    Вот с этим и проблемы, т.к. я уже писал, что у меня слишком мало опыта и знаний, чтобы предложить что-то конкретное.
    Нужно решить, какой способ общения между эмулятором и "виртуальным контроллером" будет наиболее приемлим. Т.к. думаю, что "виртуальный контроллер" должен быть реализован в виде полноценной программы, с интерфейсом, которую можно просто запустить, настроить, ввести в неё какие-то данные, и пр.

    В Векторе, оборудование сидит на портах. Логично предположить, что и общение между эмулятором и "виртуальным контроллером" должно быть по аналогичному принципу: "записать" байт - "прочитать" байт.


    Чтобы не искать по всей ветке, ссылки на сообщения:
    Исходники (проект на Delphi7) виртуального контроллера ЛВС для эмулятора emu.
    https://zx-pk.ru/threads/31876-vekto...=1#post1067977
    И сам виртуальный контроллер с конфигом для эмулятора emu.
    https://zx-pk.ru/threads/31876-vekto...=1#post1066541
    Последний раз редактировалось KTSerg; 13.06.2020 в 10:28.

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2
    Master
    Регистрация
    22.02.2014
    Адрес
    г. Курган
    Сообщений
    878
    Спасибо Благодарностей отдано 
    47
    Спасибо Благодарностей получено 
    66
    Поблагодарили
    43 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Возможно для связи эмулятора с "виртуальным контроллером" подойдут сокеты.
    Но сокет это поток, а в реале могут возникать ситуации, когда данные в порт выдаются, но они не воспринимаются (пропускаются) получателем, по каким-то причинам.
    Соответственно, эмуляцию этой ситуации нужно обмозговать.
    Возможно эмулятор принимая поток должен просто обновлять инфу в регистре (эмулируемого порта Вектора), а выдавать программе Вектора соответственно текущее значение этого регистра, актуальное на момент чтения порта.

  4. #3
    Activist Аватар для Improver
    Регистрация
    06.02.2018
    Адрес
    г. Волгоград
    Сообщений
    392
    Спасибо Благодарностей отдано 
    73
    Спасибо Благодарностей получено 
    113
    Поблагодарили
    68 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от KTSerg Посмотреть сообщение
    При настройке доступа к сайтам, регулярно сталкиваюсь с сообщениями типа : "на вашем компе ... Актив-Х... " и т.д.
    И порой сайты требуют установить на комп Джава.
    А что если всё это возложить на внешний контроллер, а он путь выдаёт Вектору уже готовый текст? Насколько это будет возможным для контроллера...

  5. #4
    Guru Аватар для svofski
    Регистрация
    20.06.2007
    Адрес
    С.-Петербург
    Сообщений
    2,985
    Спасибо Благодарностей отдано 
    128
    Спасибо Благодарностей получено 
    111
    Поблагодарили
    65 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Improver Посмотреть сообщение
    А что если всё это возложить на внешний контроллер, а он путь выдаёт Вектору уже готовый текст? Насколько это будет возможным для контроллера...
    На несколько порядков возможней, чем для Вектора. Даже думать о настоящем tcp/ip на Векторе... я не хочу сказать, что это нелепо, учитывая то, чем мы тут вообще занимаемся в этом даже что-то есть, но это непропорциональная для него задача.

    На Векторе даже последовательного порта стандартного нет, вот с этого нужно начинать. Прерываний нет, поэтому нужна толстая FIFO на килобайт, иначе без шансов как-то серьезно общаться с внешним миром. Когда есть последовательный порт, к нему можно подключить ESP8266 со стандартной AT прошивкой. Это фактически как модем, только вместо ATDT1234567 мы говорим AT+CIPSTART, получаем CONNECT и чатимся с сервером. Поверх этого можно реализовать на самом примитивном уровне HTTP протокол.

    Хотя, если бы это делал я, я бы все проблемы буфера оставил ESP, поскольку в ней его как раз достаточно, а общение с Вектором реализовал бы не последовательным портом, а каким-нибудь чудом-юдом на ПУ, чтобы не заморачиваться слишком сложным подключением. Стандартную AT-прошивку в таком случае пришлось бы выкинуть наверное.

    Что до контента, вполне очевидно, что Вектор немного опоздал показывать современный web-content. Проще реализовать свой несложный протокол (назвать это модным словом REST API), который отдает Вектору только то, что тот может без особого труда переварить. Например, если это картотека, то один урл будет для текстового описания карточки, другой для каталога файлов в зипе, третий для запроса конкретного файла.
    Больше игр нет

  6. #5
    Master
    Регистрация
    22.02.2014
    Адрес
    г. Курган
    Сообщений
    878
    Спасибо Благодарностей отдано 
    47
    Спасибо Благодарностей получено 
    66
    Поблагодарили
    43 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от svofski Посмотреть сообщение
    ...
    На Векторе даже последовательного порта стандартного нет, вот с этого нужно начинать. ...
    Жаль, что не сохранилась схема или хотя-бы сама плата контроллера СОМ-порта, а только её фото (низкого какчества).
    Можно было-бы хотя-бы представление получить о задумке автора.

    Сегодня начну эксперименты с сокетами, на предмет возможности общения (с их помощью) эмулятора и "виртуального контроллера".

  7. #6
    Guru Аватар для svofski
    Регистрация
    20.06.2007
    Адрес
    С.-Петербург
    Сообщений
    2,985
    Спасибо Благодарностей отдано 
    128
    Спасибо Благодарностей получено 
    111
    Поблагодарили
    65 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    По-моему в наше время делать отдельный COM-порт для Вектора это лишняя работа. Для ESP12F и прочих Ардуин проще всего забацать расширитель портов типа MCP23S17, который подключить к ПУ. Преобразование уровней только не забыть между 3V3 и 5V частями. Собственно, та же ESP12F может работать как вайфай-модемом, так и просто логической реализацией ком-порта.
    Больше игр нет

  8. #7
    Guru
    Регистрация
    24.01.2008
    Адрес
    Уфа
    Сообщений
    3,592
    Спасибо Благодарностей отдано 
    40
    Спасибо Благодарностей получено 
    83
    Поблагодарили
    64 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от KTSerg Посмотреть сообщение
    Сегодня начну эксперименты с сокетами, на предмет возможности общения (с их помощью) эмулятора и "виртуального контроллера".
    Кстати, СОМ-порт в моём эмуляторе может соединяться с сокетом или ждать соединения. Примеры есть в конфигах Башкирии-2М и Корвета РМП/РМУ.

  9. Этот пользователь поблагодарил b2m за это полезное сообщение:

    KTSerg (02.06.2020)

  10. #8
    Guru Аватар для svofski
    Регистрация
    20.06.2007
    Адрес
    С.-Петербург
    Сообщений
    2,985
    Спасибо Благодарностей отдано 
    128
    Спасибо Благодарностей получено 
    111
    Поблагодарили
    65 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А можно твой COM-порт подключить к Вектору? Откуда списать конфиг и где найти как его настроить, чтобы он соединялся с сокетом?

    - - - Добавлено - - -

    Извини, я идиот. Вижу, что "примеры есть в конфигах....". Вечер, понедельник.
    Больше игр нет

  11. #9
    Master
    Регистрация
    22.02.2014
    Адрес
    г. Курган
    Сообщений
    878
    Спасибо Благодарностей отдано 
    47
    Спасибо Благодарностей получено 
    66
    Поблагодарили
    43 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Очень хотелось избавиться от заморочек с идентификацией данных для разных портов в одном потоке.
    Хотелось открыть сокет (порт на сервере) в эмуляторе, в программе контроллера открыть нужное кол-во сокетов (клиентов портов) и подключиться ими к серверу. Надеялся, что сервер сможет идентифицировать каждого клиента как определённый порт (соответствующий порту Вектора). Но для сокетов клиента не могу указать конкретный порт (по умолчанию), каждый раз при подключении порты клиентских сокетов меняются.
    Сервер конечно их между собой не путает, но как серверу указать, что конкретный порт, будет соответствовать конкретному порту Вектора?
    Если только предусмотреть "рукопожатие" - т.е. после подключения клиент шлёт 2-3 байта-идентификатора, указывающие серверу, к какому порту Вектора привязать данного клиента (данный сокет, порт).
    Тогда вполне может получиться.
    И будет вполне универсально, контроллер можно настроить на любые адреса Ветора без переделок эмулятора.

  12. #10
    Guru Аватар для svofski
    Регистрация
    20.06.2007
    Адрес
    С.-Петербург
    Сообщений
    2,985
    Спасибо Благодарностей отдано 
    128
    Спасибо Благодарностей получено 
    111
    Поблагодарили
    65 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Я вот как попробовал:

    Программа для Прекрасного + конфиг b2m с двумя компортами на портах $30/tcp:15015 и $32/tcp:15016

    https://gist.github.com/svofski/da44...690d6463044820

    Там же скриншот с запущенной программой и двумя сокатами. Вроде все на удивление просто.
    Больше игр нет

  13. Эти 2 пользователя(ей) поблагодарили svofski за это полезное сообщение:

    b2m (02.06.2020), KTSerg (02.06.2020)

Страница 1 из 4 1234 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Вектор-06Ц: Эмуляция - КР580ВМ1
    от svofski в разделе Вектор
    Ответов: 44
    Последнее: 08.07.2020, 21:11
  2. Вектор-06Ц: Эмуляция
    от ZEman в разделе Вектор
    Ответов: 1231
    Последнее: 27.03.2020, 17:06
  3. Вектор-06Ц: Эмуляция - КР580ВИ53
    от Tim0xA в разделе Вектор
    Ответов: 214
    Последнее: 10.04.2019, 08:57
  4. Вектор-06Ц: Эмуляция - КР580ВМ80А
    от Ramiros в разделе Вектор
    Ответов: 199
    Последнее: 17.08.2014, 22:19
  5. Ответов: 40
    Последнее: 27.07.2012, 13:07

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •