voltando a versao de n aberturas e fechamentos de sockets
Dependencies: EthernetInterface NTPClient mbed-rtos_old mbed
Fork of header_main_public by
Diff: test.h
- Revision:
- 0:4d17cd9c8f9d
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test.h Tue Sep 09 20:01:24 2014 +0000 @@ -0,0 +1,229 @@ +#ifndef __TEST_H__ +#define __TEST_H__ + +typedef struct{ + uint8_t * buffer_ptr; + volatile uint8_t * status_ptr; + int * dest_ext; + bool * __symbolic_flag__; +}test_control; + +void _unit_test_( void const * args ); + +//#define test_mode_on +#ifdef test_mode_on + +void test_registry( void const * args ); +void test_aging_registry( void const * args ); +void __unit_test_invite__( void const * args ); +void test_many_cb_registry( void const * args ); +void change_buffer( void const * args ); +void unit_test_cb_to_server( void const * args ); +void unit_test_cb_from_server( void const * args ); + +void change_buffer( void const * args ){ + if( args != NULL ){ + uint8_t * buffer = ( uint8_t *)args; + uint8_t ref = 0x21; + while( true ){ + for( register int i = 0; i < __CB_BUFFER_SIZE__ - 5 ; i++ ) buffer[ i ] = ref; + ref++; + } + } +} + +void unit_test_cb_to_server( void const * args ){ + if( args != NULL ){ + test_control * tc = ( test_control * )args; + + /* Como vai acontecer esse teste + o que eu tenho que mudar no buffer + mandar o invite da primeira chamada, depois mandar o invite da segunda chamada depois ficar trocando dados + */ + tc->buffer_ptr[ 0 ] = 0x03; + tc->buffer_ptr[ 1 ] = 0x59; // ext 857 + tc->buffer_ptr[ 2 ] = 0x12; + tc->buffer_ptr[ 3 ] = 0x12; // port 4626 + tc->buffer_ptr[ 4 ] = __INVITE__; + *( tc->status_ptr ) = (uint8_t)0x01; + while( *( tc->status_ptr ) == 0x01 ) continue; + + tc->buffer_ptr[ 0 ] = 0x03; + tc->buffer_ptr[ 1 ] = 0x79; // ext 889 + tc->buffer_ptr[ 2 ] = 0x12; + tc->buffer_ptr[ 3 ] = 0x13; // port 4627 + tc->buffer_ptr[ 4 ] = __INVITE__; + *( tc->status_ptr ) = (uint8_t)0x01; + while( *( tc->status_ptr ) == 0x01 ) continue; + + led3 = 1; + tc->buffer_ptr[ 4 ] = __AUDIO__; + Timer time_out; + time_out.start(); + while( time_out.read() < 10 ){ + while( *( tc->status_ptr ) == 0x01 ) continue; // nao posso escrever se isso nao estiver em 0 + tc->buffer_ptr[ 0 ] = 0x03; + tc->buffer_ptr[ 1 ] = 0x59; // ext 857 + tc->buffer_ptr[ 2 ] = 0x12; + tc->buffer_ptr[ 3 ] = 0x12; // port 4626 + *(tc->dest_ext) = 813; + *(tc->status_ptr) = (uint8_t)0x01; + + while( *( tc->status_ptr ) == 0x01 ) continue; // nao posso escrever se isso nao estiver em 0 + tc->buffer_ptr[ 0 ] = 0x03; + tc->buffer_ptr[ 1 ] = 0x79; // ext 889 + tc->buffer_ptr[ 2 ] = 0x12; + tc->buffer_ptr[ 3 ] = 0x13; // port 4627 + *(tc->dest_ext) = 814; // ??? confirmar nro do ramal + *(tc->status_ptr) = (uint8_t)0x01; + } + led3 = 0; + } +} + +void unit_test_cb_from_server( void const * args ){ + if( args != NULL ){ + test_control * tc = ( test_control * )args; + + tc->buffer_ptr[ 0 ] = 0x03; + tc->buffer_ptr[ 1 ] = 0x59; // ext 857 + tc->buffer_ptr[ 2 ] = 0x12; + tc->buffer_ptr[ 3 ] = 0x12; // port 4626 + tc->buffer_ptr[ 4 ] = __INVITE__; + *( tc->status_ptr ) = (uint8_t)0x01; + + while( *( tc->status_ptr ) == 0x01 ) continue; + + led3 = 1; + tc->buffer_ptr[ 4 ] = __AUDIO__; + Timer time_out; + time_out.start(); + while( time_out.read() < 10 ){ + // *(tc->status_ptr) = (uint8_t)0x01; + *(tc->__symbolic_flag__) = false; + } + led3 = 0; + } +} + +void test_registry( void const * args ){ + if( args != NULL ){ + test_control * tc = ( test_control * )args; + if( tc == NULL ) return; + + uint16_t cc = __checksum__( tc->buffer_ptr + __CHECKSUM_OFFSET__, __CB_BUFFER_SIZE__ - __CHECKSUM_OFFSET__ ); + + tc->buffer_ptr[ 0 ] = 0x03; + tc->buffer_ptr[ 1 ] = 0x5d; // 861 + tc->buffer_ptr[ 2 ] = 0x10; + tc->buffer_ptr[ 3 ] = 0x11; // 4113 + tc->buffer_ptr[ 4 ] = ( uint8_t )( ( cc & 0xFF00 ) >> 8 ); + tc->buffer_ptr[ 5 ] = ( uint8_t )( cc & 0x00FF ); + tc->buffer_ptr[ 6 ] = __REGISTRY__; + tc->buffer_ptr[ 7 ] = 0x03; // seq + for( register int i = 8; i < 8 + __CLOCK_SYNC_SIZE__; i++ )// clock + tc->buffer_ptr[ i ] = 0x00; + tc->buffer_ptr[ 10 ] = 0x23; + + *(tc->status_ptr) = (uint8_t)__READ__; + } +} + +void __unit_test_invite__( void const * args ){ + if( args != NULL ){ + test_control * tc = ( test_control * )args; + + uint16_t cc = __checksum__( tc->buffer_ptr + __CHECKSUM_OFFSET__, __CB_BUFFER_SIZE__ - __CHECKSUM_OFFSET__ ); + + tc->buffer_ptr[ 0 ] = 0x03; + tc->buffer_ptr[ 1 ] = 0x5f; // 863 + tc->buffer_ptr[ 2 ] = 0x10; + tc->buffer_ptr[ 3 ] = 0x11; // 4113 + tc->buffer_ptr[ 4 ] = ( uint8_t )( ( cc & 0xFF00 ) >> 8 ); + tc->buffer_ptr[ 5 ] = ( uint8_t )( cc & 0x00FF ); + tc->buffer_ptr[ 6 ] = __INVITE__; + tc->buffer_ptr[ 7 ] = 0x07; // seq + for( register int i = 8; i < 8 + __CLOCK_SYNC_SIZE__; i++ ) + tc->buffer_ptr[ i ] = i; + *(tc->status_ptr) = __READ__; + + tc->buffer_ptr[ 7 ] = 0x41; // seq + for( register int i = 8; i < 8 + __CLOCK_SYNC_SIZE__; i++ ) + tc->buffer_ptr[ i ] = 0x41; + while( *( tc->status_ptr ) == __READ__ ) continue; + led3 = 1; + tc->buffer_ptr[ 6 ] = __AUDIO__; + Timer time_out; + time_out.start(); + while( time_out.read() < 10 ){ + *(tc->status_ptr) = __READ__; + *(tc->__symbolic_flag__) = false; + } + led3 = 0; + } +} + +void test_aging_registry( void const * args ){ // single cb, try many + if( args != NULL ){ + test_control * tc = ( test_control * )args; + if( tc == NULL ) return; + + uint16_t cc = __checksum__( tc->buffer_ptr + __CHECKSUM_OFFSET__, __CB_BUFFER_SIZE__ - __CHECKSUM_OFFSET__ ); + + tc->buffer_ptr[ 0 ] = 0x03; + tc->buffer_ptr[ 1 ] = 0x5d; // 861 + tc->buffer_ptr[ 2 ] = 0x10; + tc->buffer_ptr[ 3 ] = 0x11; // 4113 + tc->buffer_ptr[ 4 ] = ( uint8_t )( ( cc & 0xFF00 ) >> 8 ); + tc->buffer_ptr[ 5 ] = ( uint8_t )( cc & 0x00FF ); + tc->buffer_ptr[ 6 ] = __REGISTRY__; + tc->buffer_ptr[ 7 ] = 0x03; // seq + for( register int i = 8; i < 8 + __CLOCK_SYNC_SIZE__; i++ )// clock + tc->buffer_ptr[ i ] = 0x00; + tc->buffer_ptr[ 10 ] = 0x23; + + *(tc->status_ptr) = (uint8_t)__READ__; + } +} + + +void test_many_cb_registry( void const * args ){ + if( args != NULL ){ + test_control * tc = ( test_control * )args; + if( tc == NULL ) return; + + tc->buffer_ptr[ 0 ] = 0x03; + tc->buffer_ptr[ 1 ] = 0x53; // 851 + tc->buffer_ptr[ 2 ] = 0x1b; + tc->buffer_ptr[ 3 ] = 0xbd; // 7101 + tc->buffer_ptr[ 6 ] = __REGISTRY__; + tc->buffer_ptr[ 7 ] = 0x03; // seq + for( register int i = 8; i < 8 + __CLOCK_SYNC_SIZE__; i++ )// clock + tc->buffer_ptr[ i ] = 0x00; + tc->buffer_ptr[ 11 ] = 0x23; + uint16_t cc = __checksum__( tc->buffer_ptr + __CHECKSUM_OFFSET__, __CB_BUFFER_SIZE__ - __CHECKSUM_OFFSET__ ); + tc->buffer_ptr[ 4 ] = ( uint8_t )( ( cc & 0xFF00 ) >> 8 ); + tc->buffer_ptr[ 5 ] = ( uint8_t )( cc & 0x00FF ); + + *(tc->status_ptr) = (uint8_t)__READ__; + while( *(tc->status_ptr) == (uint8_t)__READ__ ); + + int ext = 851; + int port = 7101; + for( register int i = 0; i < 23; i++ ){ + *(tc->status_ptr) = (uint8_t)__READ__; + tc->buffer_ptr[ 0 ] = ( uint8_t )( ( ext & 0xFF00 ) >> 8 ); + tc->buffer_ptr[ 1 ] = ( uint8_t )( ++ext & 0x00FF ); + tc->buffer_ptr[ 2 ] = ( uint8_t )( ( port & 0xFF00 ) >> 8 ); + tc->buffer_ptr[ 3 ] = ( uint8_t )( ++port & 0x00FF ); + uint16_t cc = __checksum__( tc->buffer_ptr + __CHECKSUM_OFFSET__, __CB_BUFFER_SIZE__ - __CHECKSUM_OFFSET__ ); + tc->buffer_ptr[ 4 ] = ( uint8_t )( ( cc & 0xFF00 ) >> 8 ); + tc->buffer_ptr[ 5 ] = ( uint8_t )( cc & 0x00FF ); + *(tc->status_ptr) = (uint8_t)__READ__; + while( *(tc->status_ptr) == (uint8_t)__READ__ ); + } + } +} + +#endif // test_mode_on +#endif // test.h \ No newline at end of file