Há algum tempo, eu criei uma lib para usar como despertador, assim ao invés de criar um despertador do zero, você tem uma classe pronta com os métodos necessários para criá-lo.
Baixe o arquivo em anexo (uma pasta desp zipada), descompacte-a e copie para o diretório de libs Prisma. (já está incluso desde as primeiras versões Prisma, mas fiz uma pequena correção por isso upei aqui)
Segue um exemplo:
/**desp-1.0
Esta é uma biblioteca prisma 1.0 com a classe despertador para criar funções de marcação de datas e horários para execução de tarefas.
**/
//primeiro devemos incluir a biblioteca assim:
local desp = inclua'desp';
local despertador = desp:novo(); //criamos um novo objeto da classe desp
//agora, criamos uma tabela usada como alarme, deve ter os seguintes parâmetros:
alarme1 = { nome = 'Meu Alarme 1', dia=30, mes=6, hora=11, minuto=50, ano=2017};
//é preciso criar a função na tabela acima que é executada quando o alarme dispara:
funcao alarme1.func(a)
imprima'ALARME DISPARADO:\n\n';
imprima('nome: ', a.nome , 'Horário:', a.hora ..':'..a.minuto );
imprima('\nAgora: ' .. sis.data() );
//se quiser pode definir uma soneca:
despertador:defSoneca(a,6,3);
//temos no alarme disparado 'a' uma soneca de 6 min por 3 vezes será repetida.
fim
//pronta a tabela do alarme basta definir o despertador com a função abaixo:
despertador:defAlarme( alarme1 );
//você poderia definir quantos alarmes precisar!
//pronto,
//basta criar um laço de repetição enquanto, ou repita,
//ou ate mesmo um temporizador se voce estiver usando a biblioteca
//grafica 'igbr' para criar um alarme visual.
//e testar os alarmes com a funcao :testeAlarmes();
//aqui vou usar o enquanto:
enquanto 1 inicio
//cada vez que testeAlarmes() é chamada, todos os alarmes definidos são testados e disparados se o tempo bater.
local ret = despertador:testeAlarmes();
imprima( sis.data() , ret );
se ret entao leia(); fim
sis.durma(1000); //espera um segundo
se sis.nome == 'linux' entao
sis.execute'clear'; //limpa tela no linux
senao
sis.execute'cls'; //limpa tela no win.
fim
fim
Por enquanto é isso, falou.