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 <aqui> (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:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
/**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, pessoal. Falou…