User Tag List

Показано с 1 по 10 из 10

Тема: Локальная сеть корвет

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #6

    Регистрация
    17.04.2011
    Адрес
    Санкт-Петербург
    Сообщений
    328
    Спасибо Благодарностей отдано 
    32
    Спасибо Благодарностей получено 
    209
    Поблагодарили
    50 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Итак, выкладываю программу KL, выполняющую серверные функции в сети корвет-РМУ. По сути, обычный ПК превращается в сервер ПК8020. Сеть корветов подключается к любому последовательному порту ПК, можно даже в переходник USB-serial. Схемы подключения я ранее уже приводил, на всякий случай вложил их в тот же архив. Схемы проверены и на 100% рабочие.

    Программа позволяет делать следующее:

    - загружать в РМУ бейсик-программы и двоичные файлы с возможным автозапуском
    - выгружать из РМУ бейсик-программы и любые области памяти
    - просматривать бейсик-программы из РМУ в распакованном (символьном) виде, как по команде бейсика list
    - посылать сообщения на консоль РМУ и принимать COM-сообщения
    - наблюдать за трафиком в сети (функция сниффера, как tcpdump)
    - использовать ПК как интерактивный сервер данных - посылать программы в РМУ по запросу с самих РМУ (COM-командами). Список команд есть в исходниках, на всякий случай привожу сюда:

    Код:
    @L file 	  загрузка бейсик-программы
    @S file           сохранение бейсик-прогаммы 
    @LB file adr     загрузка двоичного файла с адреса adr
    @LBR file adr     загрузка двоичного файла с адреса adr c автозапуском
    @SB file adr len  сохранение участка памяти с адреса adr длиной len
    Как тут уже заметили, такая функциональность в свое время уже была реализована, но с другим форматом командной строки. Ну тут уж что получилось, то получилось. Переделывать уже неохота, да и привык я к таким командам.

    Несколько слов о ключах настройки параметров. Адреса и размеры участков памяти всегда задаются в HEX-коде, например 3с00. Адрес РМУ и параметры времени задержки задаются в десятичном коде.

    -t - устанавливает таймаут последовательного порта в 0.1с. По умолчанию 8 - 0.8c. Чем меньше параметр - тем быстрее идет опрос сети при поиске активных РМУ и меньше время подвисания при потере данных. С другой стороны, слишком маленький таймаут приводит к тому, что РМУ просто не успеет передать данные, и программа вывалится в бесконечный цикл перепосылки данных.

    -u - устанавливает задержку перед посылкой адресного пакета. Дело в том, что по окончании обмена данными РМУ нужно определенное время для подготовки к приему нового адресного пакета. Если это время слишком маленькое - пакет уйдет раньше, чем РМУ подготовится к его приему, и программа вывалится по таймауту. Для одиночных операций (послать или принять файл) этот ключ практически не имеет значения - там адрес посылается всего один раз. Но при постоянном обмене, как например в режиме сервера, слишком большое значение этого параметра может серьезно замедлить работу.

    На самом деле, программа не использует режим корректировки ошибок сети. Если пришел битый пакет, или РМУ ответило N, то просто файл перепосылается с самого начала. У меня еще ни разу не было ошибок передачи данных, а делать перепосылку отдельных пакетов на всякий случай без возможности отладки мне неохота.

    Программа написана на С под Linux. Но особо на линукс не завязана (использует только termios для доступа к последовательному порту) и, по идее, может собраться и под другими ОС. Под FreeBSD точно работает. Собирается программа и в x86, и в x86_64 режиме. На всякий случай (вообще-то это очевидно) команда для сборки:

    Код:
    gcc -o kl kl.c
    Надо бы, конечно, написать документацию, или хотя бы README к программе, но как-то неохота пока. Во времена, когда я копал винты, документацию писать я даже любил, но теперь постарел и обленился. Думаю, и сами разберетесь с программой, ничего сложного там нет и есть подсказка по ключу -h.

    Вопросы, пожелания, замечания - оставляйте здесь, обсудим. Программа будет еще дорабатываться. Если кто-нибудь сам доработает программу - не поленитесь выложить сюда изменения, будьте людьми.
    Вложения Вложения
    • Тип файла: 7z kl.7z (45.7 Кб, Просмотров: 260)

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

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

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

Похожие темы

  1. Локальная Wiki: обсуждение
    от CityAceE в разделе Форум
    Ответов: 113
    Последнее: 26.11.2025, 23:35
  2. Сеть УКНЦ
    от nzeemin в разделе ДВК, УКНЦ
    Ответов: 166
    Последнее: 25.01.2024, 18:38
  3. Сеть MSX-1
    от Eugeny в разделе MSX
    Ответов: 36
    Последнее: 23.02.2020, 20:55
  4. Сеть в КУВТах
    от CodeMaster в разделе ДВК, УКНЦ
    Ответов: 8
    Последнее: 04.02.2017, 11:25

Ваши права

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