Modularizando o src
Dependencies: EALib EthernetInterface_vz mbed-rtos mbed
Fork of header_main_colinas_V0-20-09-14 by
Diff: vz_protocol.cpp
- Revision:
- 78:1353744f01e1
- Parent:
- 74:81c47fff88a5
- Child:
- 79:9bc12aa305a9
diff -r e8c0253b57bc -r 1353744f01e1 vz_protocol.cpp --- a/vz_protocol.cpp Tue Nov 25 18:43:01 2014 +0000 +++ b/vz_protocol.cpp Tue Dec 16 12:13:01 2014 +0000 @@ -1,13 +1,9 @@ #include "vz_protocol.h" -//#include "debug.h" - -//extern DigitalOut led2; -//extern DigitalOut led4; +uint32_t pkg_ckserr = 0; +uint32_t pkg_zero = 0; +uint32_t pkg_cksok = 0; -uint16_t pkg_ckserr = 0; -uint16_t pkg_cksok = 0; - uint8_t * __parse_vz_pkg__( int * ext, int * port, volatile uint8_t * type, uint8_t * cb_buffer ){ uint8_t p_lsb, p_msb; uint8_t e_lsb, e_msb; @@ -94,13 +90,17 @@ uint16_t cc = ( uint16_t )cb_buffer[ 4 ] << 8 | cb_buffer[ 5 ]; - if( cc != __checksum__( cb_buffer, __CB_BUFFER_SIZE__ ) ){ - /*pc.printf("\n\r CKS ERROR: "); - for (int i=0; i< 300; i++ ){ pc.printf("%x ", cb_buffer[i]); } - pc.printf("\n\r");*/ + uint16_t cc_calculated = __checksum__( cb_buffer, __CB_BUFFER_SIZE__ ); + + if( cc != cc_calculated ){ + if( debug_cks_err ) send_msg( "Received PKG, but -- CKS ERROR: %d ( %d )", cc_calculated, cc ); + + if( cc_calculated == 30975 && cc == 0 ){ + pkg_zero++; + }else{ pkg_ckserr++; - return( NULL ); - + } + return( NULL ); }else{ pkg_cksok++; e_msb = cb_buffer[ 0 ]; @@ -115,7 +115,6 @@ return( cb_buffer + __VZ_HEADER_OFFSET__ ); } - } uint8_t * __build_cb_package__( int ext, int port, uint8_t type, char * cb_buffer, uint8_t seq_num, int length, uint8_t * pkg ){ pkg[ 0 ] = ( uint8_t )( ( ext & 0xFF00 ) >> 8 ); @@ -172,33 +171,6 @@ return pkg; } -char * __build_eth__package__( void ){ - return( NULL ); -} - -uint8_t * __read_cb_buffer__( uint8_t * dest, uint8_t * src ){ - for( register int i = 0; i < __CB_BUFFER_SIZE__; i++ ) *dest++ = *src++; - return( dest ); -} - -uint8_t * __read_eth_buffer__( uint8_t * dest, uint8_t * src ){ - - for( register int i = 0; i < __ETH_BUFFER_SIZE__; i++ ) *dest++ = *src++; - - return( dest ); -} - -uint8_t * __write_cb_buffer__( uint8_t * dest, uint8_t * src ){ - for( register int i = 0; i < __CB_BUFFER_SIZE__; i++ ) *dest++ = *src++; - return( dest ); -} - -uint8_t * __write_eth_buffer__( uint8_t * dest, uint8_t * src ){ - for( register int i = 0; i < __ETH_BUFFER_SIZE__; i++ ) *dest++ = *src++; - - return( dest ); -} - uint16_t __checksum__( uint8_t * buffer, size_t length ){ if( !buffer ) return( 0 ); uint16_t cc = 0x00;