int main(int argc, char **argv) { int server_sock, session_sock; if (argc > 1) TestInit(0); server_sock = OpenUDPSocket( 1701 ); session_sock = OpenPPPoL2TPSocket(); /* Try sending packets first to see if that helps */ // SendRawPacket( server_sock, 1701, control_packet, sizeof( control_packet ) ); // SendRawPacket( server_sock, 1701, data_packet, sizeof( data_packet ) ); fcntl( server_sock, F_SETFL, O_NONBLOCK ); fcntl( session_sock, F_SETFL, O_NONBLOCK ); CheckPipe( server_sock ); ConnectSock( session_sock, server_sock, 1701, 1, 2, 3, 4 ); system( "./subtest-proc" ); SendRawPacket( server_sock, 1701, control_packet, sizeof( control_packet ) ); SendRawPacket( server_sock, 1701, data_packet, sizeof( data_packet ) ); system( "./subtest-proc" ); CheckPipe( server_sock ); CheckPipe( session_sock ); system( "./subtest-proc" ); /* Close session socket first, because other way round breaks right now */ TestPrintf( "Closing session socket\n" ); close( session_sock ); TestPrintf( "Closing server socket\n" ); close( server_sock ); return 0; }
void xbee_routine_thread_process_other_api_buf(void) { static uint8 rbuf[255]={0}; uint16 len=0; while(1) { MUTEX_LOCK(&mutex09_xbee_other_api_buf); len = read_one_package_f_queue( &xbee_other_api_buf , rbuf ); MUTEX_UNLOCK(&mutex09_xbee_other_api_buf); if(len) { switch(rbuf[3]) { case receive_packet: if(rbuf[15]=='C' && rbuf[16]=='F' && rbuf[17]=='G') { //TestPrintf("C F G",len,rbuf); XBeeProcessCFG(rbuf); } else if(rbuf[15]=='C' && rbuf[16]=='T' && rbuf[17]=='L') XBeeProcessCTL(rbuf); else if(rbuf[15]=='S' && rbuf[16]=='E' && rbuf[17]=='N') { //TestPrintf("S E N",len,rbuf); XBeeProcessSEN(rbuf); } else if(rbuf[15]=='O' && rbuf[16]=='T' && rbuf[17]=='A') {} break; case at_command_response: ProcessATRes(rbuf); break; case remoto_AT_command_response: if(*(rbuf+17) == 1 || *(rbuf+17) == 4) { //XBeeRemoteATCmd(rbuf+5 , rbuf+13 , 2 , (uint8*)(rbuf+15) , param , 1 , 1); } TestPrintf("remote",len,rbuf); break; default: break; } } usleep(15000); } }
int main(int argc, char **argv) { int server_sock1, session_sock1; int server_sock2, session_sock2; if (argc > 1) TestInit(0); server_sock1 = OpenUDPSocket( 1701 ); session_sock1 = OpenPPPoL2TPSocket(); server_sock2 = OpenUDPSocket( 1702 ); session_sock2 = OpenPPPoL2TPSocket(); #if 0 /* Try sending packets first to see if that helps */ SendTestPacket( server_sock1, 1702 ); SendTestPacket( server_sock2, 1701 ); #endif fcntl( server_sock1, F_SETFL, O_NONBLOCK ); fcntl( session_sock1, F_SETFL, O_NONBLOCK ); fcntl( server_sock2, F_SETFL, O_NONBLOCK ); fcntl( session_sock2, F_SETFL, O_NONBLOCK ); fcntl( server_sock1, F_SETFD, FD_CLOEXEC ); fcntl( session_sock1, F_SETFD, FD_CLOEXEC ); fcntl( server_sock2, F_SETFD, FD_CLOEXEC ); fcntl( session_sock2, F_SETFD, FD_CLOEXEC ); CheckPipe( server_sock1 ); CheckPipe( server_sock2 ); ConnectSock( session_sock1, server_sock1, 1702, 1, 2, 3, 4 ); ConnectSock( session_sock2, server_sock2, 1701, 3, 4, 1, 2 ); system( "./subtest-proc" ); SendTestPacket( session_sock1, 1702 ); SendTestPacket( session_sock2, 1701 ); system( "./subtest-proc" ); CheckPipe( server_sock1 ); CheckPipe( session_sock1 ); CheckPipe( server_sock2 ); CheckPipe( session_sock2 ); if (argc == 0) { StartLoopingFunction( session_sock1, 0, 0 ); StartLoopingFunction( session_sock2, 0, 0 ); StartLoopingFunction( server_sock1, 1702, 0 ); StartLoopingFunction( server_sock2, 1701, 0 ); } else { StartLoopingFunction( session_sock1, 0, 1000 ); StartLoopingFunction( session_sock2, 0, 2000 ); StartLoopingFunction( server_sock1, 1702, 3000 ); StartLoopingFunction( server_sock2, 1701, 4000 ); } if (argc == 0) { char buf[16]; fprintf( stdout, "Press any key to continue\n" ); fgets( buf, 10, stdin ); } else { fprintf(stdout, "Waiting 60 seconds...\n"); sleep(60); } system( "./subtest-proc" ); TestPrintf( "Closing server2 socket\n" ); close( server_sock2 ); TestPrintf( "Closing session2 socket\n" ); close( session_sock2 ); TestPrintf( "Closing session1 socket\n" ); close( session_sock1 ); TestPrintf( "Closing server1 socket\n" ); close( server_sock1 ); return 0; }