Modularizando o src

Dependencies:   EALib EthernetInterface_vz mbed-rtos mbed

Fork of header_main_colinas_V0-20-09-14 by VZTECH

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?

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 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