Notícias:

SMF - Just Installed!

Main Menu

Biblioteca desp (despertador)

Iniciado por adalberto, Junho 30, 2017, 12:10:13 PM

tópico anterior - próximo tópico

adalberto

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.