![](/media/cache/group/default_image.jpg.50x50_q85.jpg)
Modularizando o src
Dependencies: EALib EthernetInterface_vz mbed-rtos mbed
Fork of header_main_colinas_V0-20-09-14 by
utils.h@117:e9facba9db27, 2015-04-23 (annotated)
- Committer:
- klauss
- Date:
- Thu Apr 23 21:53:28 2015 +0000
- Revision:
- 117:e9facba9db27
- Parent:
- 81:3656f00ab3db
- Child:
- 119:ee6a53069455
merge dos fw contendo as funcionalidade de bootloader e o fw que estava em campo na ultima vistoria
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
klauss | 69:65665afbad5d | 1 | /** |
klauss | 69:65665afbad5d | 2 | * @file utils.h |
klauss | 69:65665afbad5d | 3 | * @Synopsis Funções de propósito geral são encontradas nesse arquivo. |
klauss | 69:65665afbad5d | 4 | * @author Jhonatan Casale |
klauss | 69:65665afbad5d | 5 | * @version 1 |
klauss | 69:65665afbad5d | 6 | * @date 2014-11-06 |
klauss | 69:65665afbad5d | 7 | */ |
klauss | 69:65665afbad5d | 8 | |
klauss | 0:4d17cd9c8f9d | 9 | #ifndef __UTILS_H__ |
klauss | 0:4d17cd9c8f9d | 10 | #define __UTILS_H__ |
klauss | 0:4d17cd9c8f9d | 11 | |
klauss | 74:81c47fff88a5 | 12 | #include <iostream> // need for swap |
klauss | 0:4d17cd9c8f9d | 13 | #include "mbed.h" |
klauss | 74:81c47fff88a5 | 14 | #include "shared_variables.h" |
klauss | 74:81c47fff88a5 | 15 | #include "debug.h" |
klauss | 72:895ca792c647 | 16 | |
klauss | 81:3656f00ab3db | 17 | #define reset_leds() { led1 = led2 = 1; led3 = led4 = 0; } |
klauss | 0:4d17cd9c8f9d | 18 | |
klauss | 14:22a35f575502 | 19 | #define set_status(a,b) _set_status(a,b) |
klauss | 14:22a35f575502 | 20 | #define _set_status(a,b){ \ |
klauss | 31:bb5fb28a77df | 21 | if( a != b ) if( debug_sip )debug_msg("Anterior %d -- Atual %d", a, b ); \ |
klauss | 14:22a35f575502 | 22 | if( a != NULL || b != NULL ) a = b; \ |
klauss | 31:bb5fb28a77df | 23 | else if( debug_sip ) debug_msg("Paramento sip null"); \ |
klauss | 14:22a35f575502 | 24 | } |
klauss | 0:4d17cd9c8f9d | 25 | |
klauss | 69:65665afbad5d | 26 | /** |
klauss | 69:65665afbad5d | 27 | * @Synopsis Transpões os elementos de um vetor, invertendo a ordendo em que os mesmos aparecem. |
klauss | 69:65665afbad5d | 28 | * |
klauss | 69:65665afbad5d | 29 | * @param str[] Um ponteiro para o inicio da string que desejamos inverter os elementos de posição |
klauss | 69:65665afbad5d | 30 | * @param length O numero de elementos que queremos trocar. |
klauss | 69:65665afbad5d | 31 | * |
klauss | 69:65665afbad5d | 32 | * Exemplo: |
klauss | 69:65665afbad5d | 33 | * @code |
klauss | 69:65665afbad5d | 34 | * ... |
klauss | 69:65665afbad5d | 35 | * char str[ 256 ] = "This is a only test"; |
klauss | 69:65665afbad5d | 36 | * reverse( str, strlen( str ) ); |
klauss | 69:65665afbad5d | 37 | * ... |
klauss | 69:65665afbad5d | 38 | * @endcode |
klauss | 69:65665afbad5d | 39 | */ |
klauss | 0:4d17cd9c8f9d | 40 | void reverse( char str[], int length ); |
klauss | 69:65665afbad5d | 41 | |
klauss | 69:65665afbad5d | 42 | /** |
klauss | 69:65665afbad5d | 43 | * @Synopsis Implementa a funcionalidade de, dado um numero em uma base, converte o mesmo para seu equivalente em string. |
klauss | 69:65665afbad5d | 44 | * |
klauss | 69:65665afbad5d | 45 | * @param num O numero que se deseja converter em string. |
klauss | 69:65665afbad5d | 46 | * @param str Um ponteiro para o inicio da região de memória onde será montado a string. |
klauss | 69:65665afbad5d | 47 | * @param base A base de conversão adotada. |
klauss | 69:65665afbad5d | 48 | * |
klauss | 69:65665afbad5d | 49 | * @return Um ponteiro para o primeiro elemento da string montada. |
klauss | 69:65665afbad5d | 50 | * |
klauss | 69:65665afbad5d | 51 | * Exemplo: |
klauss | 69:65665afbad5d | 52 | * @code |
klauss | 69:65665afbad5d | 53 | * ... |
klauss | 69:65665afbad5d | 54 | * int tmp = 119; |
klauss | 69:65665afbad5d | 55 | * char buffer[ 16 ]; |
klauss | 69:65665afbad5d | 56 | * buffer = itoa( tmp, buffer, 10 ); |
klauss | 69:65665afbad5d | 57 | * ... |
klauss | 69:65665afbad5d | 58 | * @endcode |
klauss | 69:65665afbad5d | 59 | */ |
klauss | 0:4d17cd9c8f9d | 60 | char* itoa(int num, char* str, int base); |
klauss | 69:65665afbad5d | 61 | |
klauss | 69:65665afbad5d | 62 | /** |
klauss | 69:65665afbad5d | 63 | * @Synopsis Responsavel por escutar a porta de conexão com o servidor, verificando se o mesmo mandou algum dado. |
klauss | 69:65665afbad5d | 64 | * |
klauss | 69:65665afbad5d | 65 | * @param v_cb Um vetor contendo todos os Call_box conhecidos pela Header em um determinado momento. |
klauss | 69:65665afbad5d | 66 | * @param v_call Um vetor contendo todas as vz_calls em andamento em um dado momento. |
klauss | 69:65665afbad5d | 67 | * |
klauss | 69:65665afbad5d | 68 | * @return 0 ( zero ) se tudo correu bem, um numero menor do que zero, caso algum problema tenha acontecido na execusão, e um numero |
klauss | 69:65665afbad5d | 69 | * maior que zero indicando o ramal que deve ser removido do vetor de ligações. |
klauss | 69:65665afbad5d | 70 | * |
klauss | 69:65665afbad5d | 71 | * Exemplo: |
klauss | 69:65665afbad5d | 72 | * @code |
klauss | 69:65665afbad5d | 73 | * ... |
klauss | 69:65665afbad5d | 74 | * Vector * v_cb = new Vector(); |
klauss | 69:65665afbad5d | 75 | * Vector * v_call = new Vector(); |
klauss | 69:65665afbad5d | 76 | * // assumindo que os vetores já foram populados. |
klauss | 69:65665afbad5d | 77 | * int ret = sip_manager( v_cb, v_call ); |
klauss | 69:65665afbad5d | 78 | * if( ret > 0x00 ){ |
klauss | 69:65665afbad5d | 79 | * // tratar esse request |
klauss | 69:65665afbad5d | 80 | * } |
klauss | 69:65665afbad5d | 81 | * ... |
klauss | 69:65665afbad5d | 82 | * @endcode |
klauss | 69:65665afbad5d | 83 | */ |
klauss | 72:895ca792c647 | 84 | |
klauss | 69:65665afbad5d | 85 | /** |
klauss | 69:65665afbad5d | 86 | * @Synopsis Função usada na ordenação dos CBx para exibição no comando "ls" |
klauss | 69:65665afbad5d | 87 | * |
klauss | 69:65665afbad5d | 88 | * @param a O primeiro ramal que se quer comparar. |
klauss | 69:65665afbad5d | 89 | * @param b O segundo ramal que se quer comparar. |
klauss | 69:65665afbad5d | 90 | * |
klauss | 69:65665afbad5d | 91 | * @return 0 ( zero ) se os valores forem iguais, maior que zero, se o primeiro valor ser maior que o segundo e retorna um numero |
klauss | 69:65665afbad5d | 92 | * negativo, caso o segundo valor seja maior que o primeiro. |
klauss | 69:65665afbad5d | 93 | * |
klauss | 69:65665afbad5d | 94 | * Exemplo: |
klauss | 69:65665afbad5d | 95 | * @code |
klauss | 69:65665afbad5d | 96 | * ... |
klauss | 69:65665afbad5d | 97 | * int a = 10; |
klauss | 69:65665afbad5d | 98 | * int b = 119; |
klauss | 69:65665afbad5d | 99 | * int result = ls_comp( ( const void * )&a, ( const void * )&b ); |
klauss | 69:65665afbad5d | 100 | * ... |
klauss | 69:65665afbad5d | 101 | * @endcode |
klauss | 69:65665afbad5d | 102 | */ |
klauss | 62:07e5bdc9f8f7 | 103 | int ls_comp( const void * a, const void * b ); |
klauss | 0:4d17cd9c8f9d | 104 | |
klauss | 69:65665afbad5d | 105 | /** |
klauss | 74:81c47fff88a5 | 106 | * @Synopsis Função que converte o ramal para a porta, por definição de projeto, cara ramo possui o numero da centena incremental |
klauss | 74:81c47fff88a5 | 107 | * permanecendo o resto igual, por exemplo no ramo pilo os ramais são 5000, 5001 -- no lote 1 5100, 5101 -- porem a porta sempre |
klauss | 74:81c47fff88a5 | 108 | * se manteve a mesma, o CBx esta configurado como ramal 5000 e porta 5000, assim como o ramal 5100 e porta 5000, em outras palavras |
klauss | 74:81c47fff88a5 | 109 | * dado um ramal, calcular a porta é o mesmo que eliminar a centena do numero. |
klauss | 74:81c47fff88a5 | 110 | * |
klauss | 74:81c47fff88a5 | 111 | * @param ext O ramal do qual se quer calcular a porta vinculada. |
klauss | 74:81c47fff88a5 | 112 | * |
klauss | 74:81c47fff88a5 | 113 | * @return O valor calculado da porta. |
klauss | 74:81c47fff88a5 | 114 | * |
klauss | 74:81c47fff88a5 | 115 | * Exemplo: |
klauss | 74:81c47fff88a5 | 116 | * @code |
klauss | 74:81c47fff88a5 | 117 | * ... |
klauss | 74:81c47fff88a5 | 118 | * int ext = 5220; |
klauss | 74:81c47fff88a5 | 119 | * int port = convert_ext_to_port( ext ); |
klauss | 74:81c47fff88a5 | 120 | * ... |
klauss | 74:81c47fff88a5 | 121 | * @endcode |
klauss | 69:65665afbad5d | 122 | */ |
klauss | 74:81c47fff88a5 | 123 | int convert_ext_to_port( int ext ); |
klauss | 69:65665afbad5d | 124 | |
klauss | 74:81c47fff88a5 | 125 | void xstrcpy( uint8_t * dest, const uint8_t * src); |
klauss | 78:1353744f01e1 | 126 | void xmemcpy( uint8_t * dest, const uint8_t * src, uint16_t size ); |
klauss | 78:1353744f01e1 | 127 | void xmemcpy32( uint32_t * dest, uint32_t * src, uint16_t size ); |
klauss | 78:1353744f01e1 | 128 | uint8_t xstrmatch( const uint8_t * s1, const uint8_t * s2 ); |
klauss | 81:3656f00ab3db | 129 | uint8_t xmemmatch(const uint8_t * s1, const uint8_t * s2, uint16_t size); |
klauss | 117:e9facba9db27 | 130 | |
klauss | 117:e9facba9db27 | 131 | void hex_init(void); |
klauss | 117:e9facba9db27 | 132 | char * hex8 (uint8_t i); |
klauss | 117:e9facba9db27 | 133 | char * hex16 (uint16_t i); |
klauss | 117:e9facba9db27 | 134 | |
klauss | 0:4d17cd9c8f9d | 135 | #endif |