Repositório para códigos do painel da plataforma SATC
Dependencies: MFRC522 mbed-STM32F103C8T6 mbed
Fork of C_005_EA_Painel_sem_bms by
helpers.cpp
00001 #include "helpers.h" 00002 00003 int16_t FindIndex( const uint16_t a[], uint16_t size, uint16_t value ) 00004 { 00005 int16_t index = 0; 00006 while ( index < size && a[index] != value ){ 00007 ++index; 00008 } 00009 return ( index == size ? -1 : index ); 00010 } 00011 00012 uint16_t converteDTCWeg(uint16_t dtc_weg){ 00013 int16_t index = FindIndex(tabela_dtc_weg,sizeof(tabela_dtc_weg)/sizeof(tabela_dtc_weg[0]),dtc_weg); 00014 if(index == -1){ 00015 return 0x00; 00016 } 00017 uint16_t dtc_mobilis = tabela_dtc_weg_mobilis[index]; 00018 return dtc_mobilis; 00019 } 00020 00021 uint16_t converteDTCBms(unsigned char flags){ 00022 uint16_t dtc_mobilis = 0x00; 00023 if(flags & 1){ 00024 dtc_mobilis = 0xF29; 00025 } 00026 if(flags & (1 << 1)){ 00027 dtc_mobilis = 0xF30; 00028 } 00029 if(flags & (1 << 4)){ 00030 dtc_mobilis = 0xF31; 00031 } 00032 if(flags & (1 << 5)){ 00033 dtc_mobilis = 0xF32; 00034 } 00035 if(flags & (1 << 6)){ 00036 dtc_mobilis = 0xF33; 00037 } 00038 if(flags & (1 << 7)){ 00039 dtc_mobilis = 0xF34; 00040 } 00041 if(flags & (1 << 8)){ 00042 dtc_mobilis = 0xF41; 00043 } 00044 if(flags & (1 << 9)){ 00045 dtc_mobilis = 0xF42; 00046 } 00047 return dtc_mobilis; 00048 } 00049 00050 /* 00051 Funcao auxiliar para funcao 'checkButtons()' 00052 Retorna a soma de todos os 'n' elementos de array 'v' de tamanho 00053 */ 00054 uint16_t arraySum(uint16_t* v,uint16_t n){ 00055 uint16_t result = 0; 00056 for(int i = 0; i<n;i++){ 00057 result += v[i]; 00058 } 00059 return result; 00060 } 00061 00062 /* 00063 Funcao auxiliar para funcao 'checkButtons()' 00064 Empurra um elemento 'input' no final de um array 'v' de tamanho 'n' 00065 ou seja: 00066 Realiza uma rotacao de elementos do array 'v' 00067 v[0] some, 00068 v[1] vai para v[0] 00069 v[2] vai para v[1] 00070 v[n] vai para v[n-1] 00071 input vai para v[n] 00072 Insere um elemento 'input' no final de um array 'v' de tamanho 'n' 00073 */ 00074 void arrayPush(uint16_t* v, uint16_t input, uint16_t n){ 00075 for(int i = 0; i<(n-1) ;i++){ 00076 v[i] = v[i+1]; 00077 } 00078 v[n-1] = input; 00079 }
Generated on Wed Jul 13 2022 23:43:00 by
1.7.2
