Modularizando o src
Dependencies: EALib EthernetInterface_vz mbed-rtos mbed
Fork of header_main_colinas_V0-20-09-14 by
timeslice.h@69:65665afbad5d, 2014-11-12 (annotated)
- 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?
User | Revision | Line number | New 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 | }; |