Разработка любого электронного устройства обычно начинается с принципиальной электрической схемы. В проекте gEDA для выполнения этой части работ служит программа gschem. gschem применяется для решения двух основных задач:
- подготовки принципиальных схем с целью разработки на их базе печатных плат,
- ввода схем для моделирования их работы.
Эта статья посещена рассмотрению некоторых аспектов процесса настройки gschem.
Подготовка к работе
Начальная настройка
«Подход, принятый в промышленности, деспотичен и не работоспособен: девиз промышленной разработки гласит: “Дизайн гениев для пользования идиотами”, а в адрес неподготовленной и “немытой” остальной публики звучит: “УБЕРИТЕ ПРОЧЬ СВОИ РУКИ!” … Гораздо более жизненный подход, который бы мне хотелось предложить, должен быть основан на способности пользователя изучать свой инструмент и получать над ним контроль. Пользователь должен будет тратить некоторую часть своего времени, занимаясь изучением того, что находится внутри оборудования, и мы должны предоставить для этого возможность, такую чтобы она не окончилась фатально ни для оборудования, ни для человека»
(Ли Фельзенштейн)
После установки пакета gEDA, можно приступить к его настройке согласно вашим предпочтениям. Приложения, входящие в gEDA Tools Suite следуют принятому соглашению о расположении конфигурационных файлов. В соответствии с этим, настройки делятся на глобальные (действующие во всей системе), пользовательские, а также настройки, специфичные для каждого отдельно взятого проекта. Глобальные настройки обычно хранятся в каталоге /etc/ или его подкаталогах (при установке из пакетов в Debian/Ubuntu, это /etc/gEDA
). Специфичные для пользователя настройки хранятся в его директории, также известной как «домашний каталог» или $HOME
. Настройки, связанные с проектом хранятся в каталоге проекта.
В gschem почти всё подаётся настройке. Все настройки хранятся в специальных файлах, написанных на GNU Guile, который является интерпретатором для языка программирования Scheme, одного из диалектов Lisp. Может показаться, что это довольно изотеричный подход, однако, на самом деле, в нём нет ничего сложного.
Далее рассмотрим основные конфигурационные файлы:
system-gschemrc
— глобальный файл инициализации gschem. При установке из пакетов в Debian/Ubuntu он располагается в/etc/gEDA/system-gschemrc
. Без этого файла gschem не может быть запущено. Пользователю не рекомендуется вносить изменения непосредственно в этот файл, а при необходимости — переопределять и делать новые установки в его собственном$HOME/.gEDA/gschemrc
или ‘pwd’/gschemrc.$HOME/.gEDA/gschemrc
— пользовательский файл инициализации gschem. Настройки, сделанные в этом файле, подменяют настройки, сделанные в системном gschemrc. К примеру, чтобы изменить стандартную цветовую схему на светлую, достаточно вставить в него следующие строки:; Загрузка цветовой схемы (load (build-path geda-rc-path "gschem-colormap-lightbg")) ; светлый фон
'pwd'/gschemrc
— файл инициализации, относящийся к проекту. Создаётся пользователем в директории проекта. Настройки, сделанные в этом файле, будут замещать настройки и в системном, и в пользовательском файлах настроек. Для примера, следующие строки включат автоматическую нумерацию компонентов при вставке:; Comment in this scheme code if you want automatic numbering when ; placing new component and copying components ; (load (string-append gedadata "/scheme/auto-uref.scm")) (add-hook! add-component-hook auto-uref)
system-gafrc
— файл инициализации для приложений gEDA/gaf (включая gschem, gnetlist). Обычно расположен в/etc/gEDA/system-gafrc
, необходим для запуска gschem. Как и в случае с system-gschemrc, модификация этого файла не желательна, в все изменения должны вноситься путём переопределения настроек в пользовательском файле$HOME/.gEDA/gafrc
или фале настройки проекта'pwd'/gafrc
.gschem-gtkrc
обычно расположенный в /etc/gEDA/gschem-gtkrc служит для задания шрифтов для всех GTK-виджетов в gschem.
Несколько замечаний по поводу внесения изменений в файлы:
- Синтаксический ошибки в конфигурационных файлах приводят к остановке работы интерпретатора (guile), так что не допускайте ошибок.
- Не вносите изменения в системные файлы. Используйте для этих целей пользовательский файл или файл настроек проекта. К примеру, вместо того, чтобы вносить исправления в
/etc/gEDA/system-gschemrc
, используйте$HOME/.gEDA/gschemrc
. Вы можете даже скопировать системный файл на место пользовательского для удобства внесения изменений; но, будьте осторожны: лучше закомментируйте в нём все строки, иначе некоторые (накопляющие) опции могут дать неожиданный результат. - При повторном определении, новые определения обычно замещают те, что были объявлены выше. Исключениями являются только накопляющие (cumulative) ключевые слова (такие как
component-library
и некоторый другие).
Запуск gschem
Если вы устанавливали gEDA из бинарных пакетов дистрибутива, должен появиться соответствующий ему элемент системного меню. Обычно он располагается в разделе “Электроника” и носит имя “gEDA редактор схем”. Кроме того, вы можете запустить gschem из терминала или диалога быстрого запуска, использую команду gschem
.
В случае установки из исходников, убедитесь, что каталог, в который были установлены бинарники, включён в переменную окружения $PATH
, а каталог с библиотеками — в $LD_LIBRARY_PATH
.
Запуск из командой строки
Список параметров, которые могут быть использованы при запуске gschem таким образом, можно посмотреть, используя ключ -h. Опишем подробнее некоторые их них:
-q
— тихий режим. Отключает вывод сообщений (в stdout и stderr). Может быть полезен при вызове из скрипта.-v
— “подробный” режим, в котором включается вывод дополнительно отладочной информации.-f имя_файла
позволяет задавать файл с дополнительными настройками, относящимся к файламsystem-gschemrc
иsystem-gafrc
(см. выше).-s имя_файла
— файл “имя_файла
” будет обработан как guile-скрипт.-o имя_файла
задаёт имя выходного файла. На пример, имя файла для вывода результата работы скрипта.Для примера рассмотрим применение скрипта, выводящего схему в PostScript файл для последующей печати. Этот скрипт обычно находится находится в каталоге gEDA:
/usr/share/gEDA/scheme/print.scm
. Результатом следующей команды будет вывод схемы из файлаschematic_1.sch
в PostScript-файлschematic_1.ps
:gschem -q -p -o schematic_1.ps -s print.scm schematic_1.sch
-p
— автоматическое размещение окна. При открытии нового окна некоторые менеджеры окон ожидают действий для размещения нового окна со стороны пользователя. Эта опция пресекает такое поведения, сообщая менеджеру окон, где должно быть расположено окно. Эта опция в большинстве случаев не требуется.-h
— вывести краткую инструкцию по использованию.
Кроме этого, в строке вызова gscheme могут быть перечисланы имена файлов со схемами, которые нужно открыть. В следующем примере будет открыт файл schematic_name.sch
:
schematic_name.sch
:
$ gschem schematic_name.sch |
Таким же образом могут быть открыты сразу несколько файлов:
$ gschem schematic_1.sch schematic_2.sch, schematic_3.sch schem_*.sch |
Резервные копии
В процессе работы со схемой gschem автоматически сохраняет резервные копии так, чтобы в случае нештатного завершения работы программы у вас была возможность восстановить сделанные изменения. Происходит это с интервалом времени, задаваемым в system-gschemrc
, и равным по-умолчанию двум минутам. Имя файла резервной формируется из имени основного файла путём добавления к нему знаков “#” с начала и с конца. При штатном завершении gschem этот файл удаляется.
При сохранении файла {filename}
в ручную, он сперва переименовывается в {filename}~
(таком образом, этот файл будет содержать предыдущую версию схемы), а затем последняя резервная копия из #{filename}#
помещается на место {filename}
.