Особенности: Портирование в другие операционные системы возможно в случае наличия в них
устройства speaker(4) и идентичного интерфейса к нему. Если вы заинтересованы
в портировании под системы, не удовлетворяющие этому требованию, попробуйте
связаться со мной.
1.02.03b:
1.02.02b:
1.01.01b:
1.01b:
После инсталляции настройте конфигурационный файл alarm.cfg, который
располагается в каталоге $PREFIX/etc/alarm. Назначение переменных
конфигурационного файла описано внутри самого файла.
Что это?
Данная программа реализует функции будильника.
Преимущества:
ЭТА ПРОГРАММА ЯВЛЯЕТСЯ СВОБОДНО РАСПРОСТРАНЯЕМОЙ И ПОСТАВЛЯЕТСЯ ПО ПРИНЦИПУ
"AS IS". АВТОР НЕ НЕСЕТ ОТВЕТСТВЕННОСТИ ЗА ЛЮБЫЕ ПОСЛЕДСТВИЯ ЕЕ ИСПОЛЬЗОВАНИЯ.
Системные требования.
Программа написана на FreeBSD 4.4, однако должна работать на всех (?)
версиях FreeBSD. Для успешной компиляции и работы необходима библиотека
ncurses(3x) и наличие устройства speaker(4) в ядре.
Изменения.
[*] - исправлена ошибка, приводившая к незакрытию устройства /dev/speaker
при автоматическом отключении сигнала.
[*] - испpавлены некотоpые ошибки в документации.
[+] - расширена обработка параметров командной строки.
[+] - добавлена возможность отключения сигнала по истечении промежутка
времени.
[-] - при остановке сигнала закрывается устройство /dev/speaker, что
позволяет другим задачам использовать его.
[*] - испpавлены некотоpые ошибки в документации.
Инсталляция.
Для установки программы необходимо
скачать
исходный код и выполнить следующие команды из-под пользователя root:
gzip -cd alarm-1.02.03b.tar.gz | tar xf -
cd alarm-1.02.03b
make
make install
Перед компиляцией можно изменить PREFIX и некоторые другие настройки в
Makefile. По умолчанию PREFIX=/usr/local.
| Опция | Параметр конфига | Значение по умолчанию | Описание |
| -h | вывести справку по опциям и выйти. | ||
| -d device | device | ttyv9 | Терминал, к которому присоединится будильник. Если значение пустое, программа запускается в текущем терминале. Если первый символ не равен /, в начало добавляется /dev/. |
| -t term | term | cons25 | Тип терминала |
| -p playdevice | playdevice | /dev/speaker | Путь к устройству speaker(4). |
| -s savefile | savefile | $(PREFIX)/etc/alarm/save | Имя файла, в который будет производиться сохранение "будильников". |
| -locktime N | locktime | 10 | Время (минут), через которое блокируется клавиатура при отсутствии нажатий. |
| -unlockstr password | unlockstr | unlock | Строка для разблокирования клавиатуры. |
| -autosave {yYnN} | autosave | Y | Автосохранение "будильников". |
| -autodisable N | autodisable | 120 | Автоматическое отключение сигнала после истечения указанного времени (минут). |
Для запуска из файла /etc/ttys в него необходимо добавить строку
ttyv9 "/usr/local/bin/alarm -d" cons25 on insecureи перегрузить машину или послать сигнал HUP процессу init.
ВНИМАНИЕ! Для запуска программы ядро должно быть собрано с устройством speaker(4). Если это условие не выполнено, программа не сможет издавать звуковой сигнал.
Назначение колонок:
Для управления программой можно использовать следующие клавиши:
При отсутствии нажатий в течение времени заданного параметром
locktime (по умолчанию 10 мин.) клавиатура блокируется,
что сопровождается выводом соответствующего сообщения в строку подсказки.
Если параметр autosave равен Y, при этом сохраняется состояние будильников.
Для разблокирования клавиатуры необходимо набрать строку, заданную параметром
unlockstring (по умолчанию unlock). В режиме заблокированной клавиатуры
сохраняет функциональность только клавиша Escape, с помощью которой можно
отключить сигнал. Данная функциональность реализована для защиты от случайных
нажатий и гарантированного просыпания, которое необходимо для набора пароля.
Наибольший эффект достигается при использовании будильников с автоповтором
сигнала, для отключения которых необходимо разблокировать клавиатуру.
При срабатывании будильника включается звуковой сигнал. Если значение
повтора для сработавшего будильника равно 0, он блокируется, иначе, если
авторазблокирование отключено, к времени срабатывания добавляется время повтора,
иначе будильник блокируется и создается временный будильник с отключенным
авторазблокированием и нужным временем следующего срабатывания, на который
устанавливается курсор. Таким образом, при срабатывании будильника с ненулевым
временем повтора и включенным авторазблокированием создается временный
будильник, который обеспечивает дальнейшие повторы сигнала, а основной
сохраняет время для срабатывания на следующие сутки. Для удаления
вспомогательного будильника и, таким образом отключения повторов сигнала,
необходимо, если клавиатура заблокирована, что наиболее вероятно к моменту
срабатывания, разблокировать ее.
Если в течении времени autodisable сигнал не был запрещен, происходит
автоматическая блокировка сигнала. Разблокировка сигнала происходит при
разблокировании клавиатуры, или, если она не заблокирована, при нажатии любой
клавиши, или по достижению полуночи.
Программа обрабатывает сигнал HUP и при его приходе перегружает
конфигурационный файл. Состояние будильников при этом не затрагивается.
Данная документация доступна по адресу Исходный код доступен по адресу По всем вопросам, касающимся данной программы вы можете обращаться ко мне
по адресам: Если вы имеете желание и возможность перевести документацию на английский
язык, или создать man page для программы, или заняться каким либо продвижением
программы - пожалуйста, свяжитесь со мной.
Работа с программой.
Alarm - время, на которое поставлен будильник.
Repeat - время (в минутах), через которое будет дан повторный сигнал.
Autounlock - автоматическое разблокирование будильника в 00:00:00. Сделано
для повтора сигнала на следующие сутки.
Locked - блокировка будильника.
A a - добавить новый будильник
I i Insert - вставить новый будильник
D d Delete - удалить будильник
Стрелки управления курсором - перемещение
0-9 - изменение значений времени и повтора
Пробел - при нахождении курсора в колонке Autounlock и Locked - изменение их
значения
L l - переключение состояния блокировки
U u - переключение состояния авторазблокировки
S s W w - сохранение будильников
R r ^L - перерисовка экрана
Escape - отключение сигнала
Q q - выход.
Ограничения.
Проблемы.
close(0); close(1);
open(device, O_RDONLY);
open(device, O_WRONLY);
Подробнее смотри alarm.c функция init_alarm(). Если вы знаете, как это делать
корректнее - сообщите мне. Использование freopen(3) для данной
цели точно хуже, так как init(8) почему-то забывает открыть stdin, stdout и
stderr при перезапуске.Где взять?
http://kot.spb.ru/projects/alarm/.
FTP: ftp://kot.spb.ru/pub/src/projects/alarm/alarm-1.02.03b.tar.gz.
HTTP: http://kot.spb.ru/projects/alarm/alarm-1.02.03b.tar.gz.
Обратная связь.
E-Mail: KOT@MATPOCKuH.SPb.Ru
FIDONet: 2:5030/1340@fidonet.org
IRC: MATPOCKuH@IRCNet, EFNet, Dalnet, Undernet.
MATPOCKuH
06.11.2001