Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: EALib EthernetInterface_vz mbed-rtos mbed
Fork of header_main_colinas_V0-20-09-14 by
timeslice.h
00001 /** 00002 * @file timeslice.h 00003 * @Synopsis Implementa o gerenciamento do uso de timeslices, necessario para a comunicação no protocolo CBx->Header 00004 * @author Jhonatan Casale 00005 * @version 1 00006 * @date 2014-10-31 00007 * \class Timeslice 00008 */ 00009 00010 #ifndef __TIMESLICE_H__ 00011 #define __TIMESLICE_H__ 00012 00013 #include <stdint.h> 00014 00015 const uint8_t MAX_TIMESLICES = 4; 00016 ///< Por decisão de projeto, este foi dimensionado para o uso de 4 timeslices 00017 00018 class Timeslice{ 00019 private : 00020 uint8_t timeslice[ MAX_TIMESLICES ]; 00021 public : 00022 /** 00023 * @Synopsis Cria e inicializa o objeto, pronto para o uso. 00024 * 00025 * Exemplo: 00026 * @code 00027 * ... 00028 * Timeslice * ts = new Timeslice(); 00029 * ... 00030 * @endcode 00031 */ 00032 Timeslice(); 00033 00034 /** 00035 * @Synopsis Destroi o elemento. 00036 * 00037 * Exemplo: 00038 * @code 00039 * ... 00040 * delete( ts ); 00041 * ... 00042 * @endcode 00043 */ 00044 ~Timeslice(); 00045 00046 /** 00047 * @Synopsis Busca por timeslices disponiveis. 00048 * 00049 * @return zero, caso todos os timeslices já estiverem em uso, ou retorna um 00050 * numero maior que zero que representa justamente o timeslice. 00051 * 00052 * Exemplo: 00053 * @code 00054 * ... 00055 * ts->get_timeslice(); 00056 * ... 00057 * @endcode 00058 */ 00059 uint8_t get_timeslice(); 00060 00061 /** 00062 * @Synopsis Coloca o timeslice devolvido a disposição para novos usos. 00063 * 00064 * @param i O timeslice que esta sendo devolvido. 00065 * 00066 * Exemplo: 00067 * @code 00068 * ... 00069 * ts->return_timeslice( 0x03 ); 00070 * @endcode 00071 */ 00072 void return_timeslice( uint8_t i ); 00073 00074 /** 00075 * @Synopsis Reinicia a estrutura, deixando todos os timeslices a disposição para uso. 00076 * 00077 * 00078 * Exemplo: 00079 * @code 00080 * ... 00081 * ts->reset(); 00082 * ... 00083 * @endcode 00084 */ 00085 void reset(); 00086 00087 /** 00088 * @Synopsis Representa quantos timeslices ainda estão disponiveis para uso. 00089 * 00090 * @return O numero de timeslices ainda desocupados. Este numero é sempre maior ou igual a zero. 00091 * 00092 * Exemplo: 00093 * @code 00094 * ... 00095 * ts->remain_timeslices(); 00096 * ... 00097 * @endcode 00098 */ 00099 uint8_t remain_timeslices( void ); 00100 }; 00101 00102 #endif
Generated on Tue Jul 12 2022 16:25:14 by
