Board.KolibriOS.org

Официальный форум KolibriOS
Текущее время: Пт окт 20, 2017 2:51 am

Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 5 сообщений ] 
Автор Сообщение
СообщениеДобавлено: Пт мар 18, 2011 9:40 am 
Не в сети

Зарегистрирован: Пн сен 24, 2007 11:11 am
Сообщения: 2814
Очень часто мне нужно следить за временем, запускать программы по расписанию, в общем, нужно что-то вроде будильника.
Чем больше я времени провожу в Колибри, тем больше мне не хватает всяких разных мелочей, которыми я пользуюсь в своем мятном линуксе.
Потому написал маленькую программку, которая выполняет программы в заданное время.
Пока что программа почти ничего не умеет - ни повторяющихся событий, ни будильников по пятницам в 7 утра. Надеюсь, я добавлю это в будущем. Кроме того, программка очень прожорлива по отношению к памяти (это всё потому, что написана с использованием menuetlibc, но в скором времени я переведу ее на newlib).

Итак, встречайте - job. Запускается без параметров, окна не создает, на панели не отображается, только в CPU. Наличие @notify в /rd/1/ очень желательно, иначе вы не получите сверхважных сообщений "File not found" или "Job is done". Для работы программы необходим файл jobs.dat в одной папке с программой, его синтаксис такой:
Код:
09:41
/rd/1/calendar


Первая строка - время (пять байт, если часов менее 12, то первый 0 обязателен).
Вторая строка - запускаемая по расписанию программа.
Enter после второй строки обязателен (потому что запуск с параметрами пока что не поддерживается, какие-то косяки с этим, но обязательно будет).

Пока что всё. В перспективе - поддержка ini-файлов, множества задач и всё такое. :mrgreen:


Вложения:
job.7z [13.72 КБ]
121 скачивание
Вернуться к началу
СообщениеДобавлено: Вс мар 20, 2011 11:48 am 
Не в сети
Аватара пользователя

Зарегистрирован: Вт янв 24, 2006 8:50 am
Сообщения: 249
Хорошая работа, молодец.


Вернуться к началу
СообщениеДобавлено: Пт мар 25, 2011 1:54 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пт июн 27, 2008 3:22 pm
Сообщения: 974
Sorcerer
Лучше сразу писать на ассемблере.
13Кб это по-моему слишком для такой программы.
Вот посмотри например.


Вложения:
JOB.7z [9.84 КБ]
149 скачиваний
Вернуться к началу
СообщениеДобавлено: Вс мар 27, 2011 8:34 am 
Не в сети

Зарегистрирован: Пн сен 24, 2007 11:11 am
Сообщения: 2814
Огого! Круто как! Я так не умею :(
Если бы знал ассемблер - то, наверное, на нем и писал бы...
Вопрос по коду: JOB.done сделан для того, чтобы одна и та же программа несколько раз не запустилась в течении одной минуты?
Что будет, если более 255 заданий будет в файле? Просто лишние не будут разбираться?


Вернуться к началу
СообщениеДобавлено: Пн мар 28, 2011 3:56 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пт июн 27, 2008 3:22 pm
Сообщения: 974
Sorcerer писал(а):
Вопрос по коду: JOB.done сделан для того, чтобы одна и та же программа несколько раз не запустилась в течении одной минуты?

Да.

Sorcerer писал(а):
Что будет, если более 255 заданий будет в файле? Просто лишние не будут разбираться?

Ты нашёл логическую ошибку. :) Если в ini файле JobsNum будет больше 255, то в результате
JobsNum=JobsNum mod 256
Нужно поставить ограничитель.
Код:
   ; Get jobs number
   invoke   ini_get_int, ini_path, aMain, aJobsNum, 0

   cmp eax, 256
   jl       @f
   mov  eax, 255
@@:


Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 5 сообщений ] 

Часовой пояс: UTC+03:00


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость


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

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Limited
Русская поддержка phpBB