Modularizando o src
Dependencies: EALib EthernetInterface_vz mbed-rtos mbed
Fork of header_main_colinas_V0-20-09-14 by
timeslice.h@137:32dd35a6dbc9, 2015-11-24 (annotated)
- Committer:
- klauss
- Date:
- Tue Nov 24 14:06:22 2015 +0000
- Revision:
- 137:32dd35a6dbc9
- Parent:
- 121:ee02790d00b7
core source of the .bin (09/21/2015) in the field
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 | 121:ee02790d00b7 | 9 | |
klauss | 121:ee02790d00b7 | 10 | #ifndef __TIMESLICE_H__ |
klauss | 121:ee02790d00b7 | 11 | #define __TIMESLICE_H__ |
klauss | 121:ee02790d00b7 | 12 | |
klauss | 0:4d17cd9c8f9d | 13 | #include <stdint.h> |
klauss | 0:4d17cd9c8f9d | 14 | |
klauss | 121:ee02790d00b7 | 15 | const uint8_t MAX_TIMESLICES = 4; |
klauss | 69:65665afbad5d | 16 | ///< Por decisão de projeto, este foi dimensionado para o uso de 4 timeslices |
klauss | 0:4d17cd9c8f9d | 17 | |
klauss | 0:4d17cd9c8f9d | 18 | class Timeslice{ |
klauss | 0:4d17cd9c8f9d | 19 | private : |
klauss | 121:ee02790d00b7 | 20 | uint8_t timeslice[ MAX_TIMESLICES ]; |
klauss | 0:4d17cd9c8f9d | 21 | public : |
klauss | 69:65665afbad5d | 22 | /** |
klauss | 69:65665afbad5d | 23 | * @Synopsis Cria e inicializa o objeto, pronto para o uso. |
klauss | 69:65665afbad5d | 24 | * |
klauss | 69:65665afbad5d | 25 | * Exemplo: |
klauss | 69:65665afbad5d | 26 | * @code |
klauss | 69:65665afbad5d | 27 | * ... |
klauss | 69:65665afbad5d | 28 | * Timeslice * ts = new Timeslice(); |
klauss | 69:65665afbad5d | 29 | * ... |
klauss | 69:65665afbad5d | 30 | * @endcode |
klauss | 69:65665afbad5d | 31 | */ |
klauss | 0:4d17cd9c8f9d | 32 | Timeslice(); |
klauss | 69:65665afbad5d | 33 | |
klauss | 69:65665afbad5d | 34 | /** |
klauss | 69:65665afbad5d | 35 | * @Synopsis Destroi o elemento. |
klauss | 69:65665afbad5d | 36 | * |
klauss | 69:65665afbad5d | 37 | * Exemplo: |
klauss | 69:65665afbad5d | 38 | * @code |
klauss | 69:65665afbad5d | 39 | * ... |
klauss | 69:65665afbad5d | 40 | * delete( ts ); |
klauss | 69:65665afbad5d | 41 | * ... |
klauss | 69:65665afbad5d | 42 | * @endcode |
klauss | 69:65665afbad5d | 43 | */ |
klauss | 0:4d17cd9c8f9d | 44 | ~Timeslice(); |
klauss | 69:65665afbad5d | 45 | |
klauss | 69:65665afbad5d | 46 | /** |
klauss | 69:65665afbad5d | 47 | * @Synopsis Busca por timeslices disponiveis. |
klauss | 69:65665afbad5d | 48 | * |
klauss | 69:65665afbad5d | 49 | * @return zero, caso todos os timeslices já estiverem em uso, ou retorna um |
klauss | 69:65665afbad5d | 50 | * numero maior que zero que representa justamente o timeslice. |
klauss | 69:65665afbad5d | 51 | * |
klauss | 69:65665afbad5d | 52 | * Exemplo: |
klauss | 69:65665afbad5d | 53 | * @code |
klauss | 69:65665afbad5d | 54 | * ... |
klauss | 69:65665afbad5d | 55 | * ts->get_timeslice(); |
klauss | 69:65665afbad5d | 56 | * ... |
klauss | 69:65665afbad5d | 57 | * @endcode |
klauss | 69:65665afbad5d | 58 | */ |
klauss | 0:4d17cd9c8f9d | 59 | uint8_t get_timeslice(); |
klauss | 69:65665afbad5d | 60 | |
klauss | 69:65665afbad5d | 61 | /** |
klauss | 69:65665afbad5d | 62 | * @Synopsis Coloca o timeslice devolvido a disposição para novos usos. |
klauss | 69:65665afbad5d | 63 | * |
klauss | 69:65665afbad5d | 64 | * @param i O timeslice que esta sendo devolvido. |
klauss | 69:65665afbad5d | 65 | * |
klauss | 69:65665afbad5d | 66 | * Exemplo: |
klauss | 69:65665afbad5d | 67 | * @code |
klauss | 69:65665afbad5d | 68 | * ... |
klauss | 69:65665afbad5d | 69 | * ts->return_timeslice( 0x03 ); |
klauss | 69:65665afbad5d | 70 | * @endcode |
klauss | 69:65665afbad5d | 71 | */ |
klauss | 0:4d17cd9c8f9d | 72 | void return_timeslice( uint8_t i ); |
klauss | 69:65665afbad5d | 73 | |
klauss | 69:65665afbad5d | 74 | /** |
klauss | 69:65665afbad5d | 75 | * @Synopsis Reinicia a estrutura, deixando todos os timeslices a disposição para uso. |
klauss | 69:65665afbad5d | 76 | * |
klauss | 69:65665afbad5d | 77 | * |
klauss | 69:65665afbad5d | 78 | * Exemplo: |
klauss | 69:65665afbad5d | 79 | * @code |
klauss | 69:65665afbad5d | 80 | * ... |
klauss | 69:65665afbad5d | 81 | * ts->reset(); |
klauss | 69:65665afbad5d | 82 | * ... |
klauss | 69:65665afbad5d | 83 | * @endcode |
klauss | 69:65665afbad5d | 84 | */ |
klauss | 0:4d17cd9c8f9d | 85 | void reset(); |
klauss | 69:65665afbad5d | 86 | |
klauss | 69:65665afbad5d | 87 | /** |
klauss | 69:65665afbad5d | 88 | * @Synopsis Representa quantos timeslices ainda estão disponiveis para uso. |
klauss | 69:65665afbad5d | 89 | * |
klauss | 69:65665afbad5d | 90 | * @return O numero de timeslices ainda desocupados. Este numero é sempre maior ou igual a zero. |
klauss | 69:65665afbad5d | 91 | * |
klauss | 69:65665afbad5d | 92 | * Exemplo: |
klauss | 69:65665afbad5d | 93 | * @code |
klauss | 69:65665afbad5d | 94 | * ... |
klauss | 69:65665afbad5d | 95 | * ts->remain_timeslices(); |
klauss | 69:65665afbad5d | 96 | * ... |
klauss | 69:65665afbad5d | 97 | * @endcode |
klauss | 69:65665afbad5d | 98 | */ |
klauss | 0:4d17cd9c8f9d | 99 | uint8_t remain_timeslices( void ); |
klauss | 121:ee02790d00b7 | 100 | }; |
klauss | 121:ee02790d00b7 | 101 | |
klauss | 121:ee02790d00b7 | 102 | #endif |