Обмен файлами через последовательный порт


Главная / ЭКВМ / ПО

Назначение

Программа предназначена для обмена файлами между персональным компьютером и памятью ЭКВМ. Программа позволяет записывать и считывать файлы программ (mkp), данных (mkb, mkd, mkt), блокнота (mkn), содержимого экранной памяти (mki) и журнала (mkj).

Программа распространяется с открытым исходным текстом под лицензией GPL 2 (или старше - по выбору). Программа работает под операционными системами GNU/Linux, Windows. Возможна компиляция под другие ОС.

Запуск программы

Запуск программы производится средствами ОС. В качестве параметра требуется указать имя файла и ключи:

pmkcom [file] -key

Если имя файла не указано, программа при записи создаёт файл noname требуемого типа.

При запуске программы без ключей выводится краткая подсказка. При запуске программы с ключами [-v] номер версии и тип ОС, [-c] ссылка на GPL и предупреждение об отсутствии гарантий. Имя файла игнорируется, обмен не выполняется.

При запуске программы с ключом [-a] выполняется поиск подключенных устройств в установленном последовательном порту. Для обнаруженного устройства выводится его название, версия встроенного ПО и организация-разработчик.

Допустимо дополнительно указать три числовых параметра: начального и конечного адреса диапазона поиска (от 0 до 255) и вывод дополнительной информации о найденном устройстве на русском языке (1). По умолчанию программа ищет устройства в диапазоне от 0 до 255 и выводит информацию только латиницей, что соответствует строке "-a 0 255 0".

Ключ -r позволяет считать файл из памяти ЭКВМ, может объединяться с ключами pbdtni в различных сочетаниях, позволяя считывать пакеты файлов. Имя файла соответствует файлам на диске персонального компьютера, необходимые расширения добавляются соответственно типу данных.

Ключ -w позволяет записать файл в энергонезависимую память ЭКВМ, может объединяться с ключами pbdtn в различных сочетаниях, позволяя записывать пакеты файлов.

Ключ -p используется для считывания или записи файла программы MKP. Дополнительно допустимо указать два числовых параметра: начальную страницу и длину файла в страницах. По умолчанию используется начальная страница 0 и длина файла 1 страница (не более 100 шагов программы), что соответствует строке "-p 0 1".

Ключ -b используется для считывания или записи файла двоичных данных MKB. Параметры отсутствуют.

Ключ -d используется для считывания или записи файла десятичных данных MKD. Параметры отсутствуют.

Ключ -t используется для считывания или записи текстового файла MKT. Параметры отсутствуют.

Ключ -n используется для считывания или записи файла данных блокнота. Дополнительно допустимо указать два числовых параметра: начальную и конечную группу записей. По умолчанию используется начальная группа 0 и конечная 16374, что соответствует строке "-n 0 16374".

Ключ -i используется для считывания информации в файл MKI из области основного или графического экрана. Параметр 0 соответствует графическому экрану и используется по умолчанию, параметр 1 - основному.

Ключ -j используется для считывания информации из журнала ЭКВМ в файл MKJ.

Параметры обмена с ЭКВМ через последовательный порт задаются при помощи ключей. До версии 0.21 использовались также данные файла mk.cfg, имевшие меньший приоритет.

Ключ --port (или --p) указывает номер последовательного порта персонального компьютера, определяемый числовым параметром от 0 до 255. Параметр 0 соответствует устройству /dev/ttyS0 для GNU/Linux или COM1 для DOS и Windows.

Ключ --name (или --n) передаёт в программу наименование устройства последовательного порта. Наименование записывается без кавычек. Имеет приоритет над ключом --port. Следует использовать максимально аккуратно, поскольку позволяет вывести информацию в существующий сторонний файл, доступный пользователю для записи.

Примеры применения:
--n /dev/ttyS0 (Linux)
--n /dev/ttyd0 (FreeBSD)
--n /dev/ttya (Solaris)
--n /dev/ser1 (QNX)
--n COM1 (DOS, Windows)

Ключ --address (или --a) указывает адрес устройства (сетевой номер ЭКВМ, см. описание регистра функции R9049), определяемый числовым параметром от 0 до 255.

Ключ --speed (или --s) позволяет указать скорость обмена с устройством. Параметр от 0 до 13 соответствует значениям скорости обмена от 600 до 57600 бит/с. По умолчанию используется значение 0 (или 9 - 9600 бит/с). Значение 11 соответствует 19200 бит/с, 12 - 38400 бит/с, 13 - 57600 бит/с, 7 - 4800 бит/с.

Параметры порта по умолчанию соответствуют порту 0, устройству 0, скорости обмена 9600 бит/с.

При успешном завершении программа возвращает код 0. При возникновении ошибок - код ошибки в соответствии с соглашениями BSD.


Версии

0.01-0.08 (не распространялись)
- отладка подпрограмм.

0.09 (09.01.10)
- приём и передача команд kom_mtest для GNU/Linux.

0.10 (12.02.10)
- чтение и запись файлов MKP-100.

0.11 (30.05.10)
- изменён алгоритм приёма команды;
- таймаут порта по poll() для GNU/Linux;
- исключена ошибка при обработке управляющих символов '3','26','28' для GNU/Linux;
- добавлены параметры настройки порта, отсутствующие в POSIX (через #ifdef, но не все!).

0.12 (11.06.10)
- обработка файлов других типов и ключей -bdtni командной строки.

0.13 (20.05.11)
- работа с ДОС ЭКВМ, обход дерева каталогов, считывание информации о дисках 0-255.

0.14 (01.11.11)
- в программу pmkfile перенесена работа с ДОС, в т.ч. все функции записи/чтения файлов и каталогов;
- добавлен -ri 1 для чтения основного экрана (ЭКР).

0.15 (08.11.11)
- изменены параметры команды Z, R для чтения основного экрана (ЭКР).

0.16 (16.01.12)
- изменен способ задания параметров порта, кроме чтения CFG введены ключи: --p[ort], --a[ddress], --s[peed].

0.17 (18.01.12)
- в отдельные файлы выделен код драйвера порта, специфичный для ОС;
- скомпилирована версия EXE-файла для win32.

0.18 (13.09.13)
- ключ j;
- поддержка чтения файлов журнала MKJ-8.

0.19 (11.12.13)
- ключ "--name" - наименование устройства порта передаётся в виде строки.

0.20 (14.08.14)
- вывод информации о ходе обмена (для динамического вывода используется fflush (stdout)).

0.21 (23.10.15)
- удалён вывод информации о ходе обмена;
- изменён алгоритм обмена с устройством, введены дополнительные проверки и задержки;
- не используется файл конфигурации "mk.cfg", а также связанные с ним структуры, переменные и подпрограммы.


Программа и ее исходный текст - на странице "программное обеспечение".


НПП "СЕМИКО" (383) 271-01-25 (многоканальный)