Modularizando o src

Dependencies:   EALib EthernetInterface_vz mbed-rtos mbed

Fork of header_main_colinas_V0-20-09-14 by VZTECH

Committer:
klauss
Date:
Wed Nov 12 13:25:54 2014 +0000
Revision:
69:65665afbad5d
Parent:
0:4d17cd9c8f9d
Child:
121:ee02790d00b7
versao em re-valida??o a priori, os dados de audio est?o se perdendo

Who changed what in which revision?

UserRevisionLine numberNew contents of line
klauss 69:65665afbad5d 1 /**
klauss 69:65665afbad5d 2 * @file timeslice.h
klauss 69:65665afbad5d 3 * @Synopsis Implementa o gerenciamento do uso de timeslices, necessario para a comunicação no protocolo CBx->Header
klauss 69:65665afbad5d 4 * @author Jhonatan Casale
klauss 69:65665afbad5d 5 * @version 1
klauss 69:65665afbad5d 6 * @date 2014-10-31
klauss 69:65665afbad5d 7 * \class Timeslice
klauss 69:65665afbad5d 8 */
klauss 0:4d17cd9c8f9d 9 #include <stdint.h>
klauss 0:4d17cd9c8f9d 10
klauss 0:4d17cd9c8f9d 11 #define __MAX_TIMESLICES__ 4
klauss 69:65665afbad5d 12 ///< Por decisão de projeto, este foi dimensionado para o uso de 4 timeslices
klauss 0:4d17cd9c8f9d 13
klauss 0:4d17cd9c8f9d 14 class Timeslice{
klauss 0:4d17cd9c8f9d 15 private :
klauss 0:4d17cd9c8f9d 16 uint8_t timeslice[ __MAX_TIMESLICES__ ];
klauss 0:4d17cd9c8f9d 17 public :
klauss 69:65665afbad5d 18 /**
klauss 69:65665afbad5d 19 * @Synopsis Cria e inicializa o objeto, pronto para o uso.
klauss 69:65665afbad5d 20 *
klauss 69:65665afbad5d 21 * Exemplo:
klauss 69:65665afbad5d 22 * @code
klauss 69:65665afbad5d 23 * ...
klauss 69:65665afbad5d 24 * Timeslice * ts = new Timeslice();
klauss 69:65665afbad5d 25 * ...
klauss 69:65665afbad5d 26 * @endcode
klauss 69:65665afbad5d 27 */
klauss 0:4d17cd9c8f9d 28 Timeslice();
klauss 69:65665afbad5d 29
klauss 69:65665afbad5d 30 /**
klauss 69:65665afbad5d 31 * @Synopsis Destroi o elemento.
klauss 69:65665afbad5d 32 *
klauss 69:65665afbad5d 33 * Exemplo:
klauss 69:65665afbad5d 34 * @code
klauss 69:65665afbad5d 35 * ...
klauss 69:65665afbad5d 36 * delete( ts );
klauss 69:65665afbad5d 37 * ...
klauss 69:65665afbad5d 38 * @endcode
klauss 69:65665afbad5d 39 */
klauss 0:4d17cd9c8f9d 40 ~Timeslice();
klauss 69:65665afbad5d 41
klauss 69:65665afbad5d 42 /**
klauss 69:65665afbad5d 43 * @Synopsis Busca por timeslices disponiveis.
klauss 69:65665afbad5d 44 *
klauss 69:65665afbad5d 45 * @return zero, caso todos os timeslices já estiverem em uso, ou retorna um
klauss 69:65665afbad5d 46 * numero maior que zero que representa justamente o timeslice.
klauss 69:65665afbad5d 47 *
klauss 69:65665afbad5d 48 * Exemplo:
klauss 69:65665afbad5d 49 * @code
klauss 69:65665afbad5d 50 * ...
klauss 69:65665afbad5d 51 * ts->get_timeslice();
klauss 69:65665afbad5d 52 * ...
klauss 69:65665afbad5d 53 * @endcode
klauss 69:65665afbad5d 54 */
klauss 0:4d17cd9c8f9d 55 uint8_t get_timeslice();
klauss 69:65665afbad5d 56
klauss 69:65665afbad5d 57 /**
klauss 69:65665afbad5d 58 * @Synopsis Coloca o timeslice devolvido a disposição para novos usos.
klauss 69:65665afbad5d 59 *
klauss 69:65665afbad5d 60 * @param i O timeslice que esta sendo devolvido.
klauss 69:65665afbad5d 61 *
klauss 69:65665afbad5d 62 * Exemplo:
klauss 69:65665afbad5d 63 * @code
klauss 69:65665afbad5d 64 * ...
klauss 69:65665afbad5d 65 * ts->return_timeslice( 0x03 );
klauss 69:65665afbad5d 66 * @endcode
klauss 69:65665afbad5d 67 */
klauss 0:4d17cd9c8f9d 68 void return_timeslice( uint8_t i );
klauss 69:65665afbad5d 69
klauss 69:65665afbad5d 70 /**
klauss 69:65665afbad5d 71 * @Synopsis Reinicia a estrutura, deixando todos os timeslices a disposição para uso.
klauss 69:65665afbad5d 72 *
klauss 69:65665afbad5d 73 *
klauss 69:65665afbad5d 74 * Exemplo:
klauss 69:65665afbad5d 75 * @code
klauss 69:65665afbad5d 76 * ...
klauss 69:65665afbad5d 77 * ts->reset();
klauss 69:65665afbad5d 78 * ...
klauss 69:65665afbad5d 79 * @endcode
klauss 69:65665afbad5d 80 */
klauss 0:4d17cd9c8f9d 81 void reset();
klauss 69:65665afbad5d 82
klauss 69:65665afbad5d 83 /**
klauss 69:65665afbad5d 84 * @Synopsis Representa quantos timeslices ainda estão disponiveis para uso.
klauss 69:65665afbad5d 85 *
klauss 69:65665afbad5d 86 * @return O numero de timeslices ainda desocupados. Este numero é sempre maior ou igual a zero.
klauss 69:65665afbad5d 87 *
klauss 69:65665afbad5d 88 * Exemplo:
klauss 69:65665afbad5d 89 * @code
klauss 69:65665afbad5d 90 * ...
klauss 69:65665afbad5d 91 * ts->remain_timeslices();
klauss 69:65665afbad5d 92 * ...
klauss 69:65665afbad5d 93 * @endcode
klauss 69:65665afbad5d 94 */
klauss 0:4d17cd9c8f9d 95 uint8_t remain_timeslices( void );
klauss 0:4d17cd9c8f9d 96 };