Prisma - Linguagem de programação

Prisma-1.0 => Materiais => Tópico iniciado por: adalberto online Junho 30, 2017, 12:10:13 PM

Título: Biblioteca desp (despertador)
Enviado por: adalberto online Junho 30, 2017, 12:10:13 PM
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.