int system_send_buf_to_host( char* buf, int buf_size ) { char* sendbuf; int stat = 0; if( g_send_package_socket != 0) { stat = tcp_get_state( g_send_package_socket ); switch ( stat ) { case TCP_STATE_FREE: case TCP_STATE_CLOSED: tcp_connect ( g_send_package_socket, g_send_package_socket_ip, g_send_package_socket_port, 0); #if 1 return -2; #else // wait connect // maybe need while( 1 ){ stat = tcp_get_state( g_send_package_socket ); timer_poll (); main_TcpNet (); if( stat == TCP_STATE_CONNECT ) break; } #endif break; } if( stat == TCP_STATE_CONNECT ) { while(tcp_check_send ( g_send_package_socket) != __TRUE) { timer_poll (); main_TcpNet (); } if (tcp_check_send ( g_send_package_socket) == __TRUE) { sendbuf = tcp_get_buf( buf_size ); memcpy( sendbuf, buf, buf_size ); tcp_send ( g_send_package_socket, sendbuf, buf_size); #if 1 return 1; #else while( 1 ){ stat = tcp_get_state( g_send_package_socket ); timer_poll (); main_TcpNet (); if( stat == TCP_STATE_CONNECT ) break; } #endif } } else{ return -3; } } else return -4; return -5; }
__task void tcp_task (void) { /* Main Thread of the TcpNet. This task should have */ /* the lowest priority because it is always READY. */ dhcp_tout = DHCP_TOUT; while (1) { main_TcpNet(); dhcp_check (); os_tsk_pass(); } }
__task void tcp_poll (void) { CYASSL_MSG("TCP polling started.\n") ; while (1) { main_TcpNet (); #if defined (HAVE_KEIL_RTX) os_tsk_pass (); #endif } }
static void app_task0(void* pdat) { while (1) { #if TCP_EN == 1 main_TcpNet(); #else OSTimeDly (100000); #endif } }
int main (void) { /* Main Thread of the TcpNet */ init (); LEDrun = __TRUE; dhcp_tout = DHCP_TOUT; while (1) { timer_poll (); main_TcpNet (); dhcp_check (); blink_led (); } }
void Net_Proc(void) { static INT32U ms100Timer = 0xFFFFFFFF; if(ms100Timer != Pub_Timer.Ms100) { ms100Timer = Pub_Timer.Ms100; timer_tick(); } Unselect_SPI_Device(); //Provide timer tick SPI1_ENC28J60_Init(); Net_Para_Modi_Chk(); poll_ether(); //enc28j60Read(EPKTCNT); main_TcpNet (); //Call the TCPnet library Net_Data_Proc(); }
/* Calls the timing functions ------------------------------------------------*/ void BFH_GLCD_UDP (void) { #if (USE_UDP == 1) timer_poll (); main_TcpNet (); #endif }
int main (void) { // // Variables // char TCP_USER_i = 0; TCP_USER_INFO *TCP_USER; BOOL TCP_Connected = FALSE; int a = 0, b = 0; int RESET_VALUE_SEC = 0; // // Init // Init(); // Play saved animation if (ANIMATION_PLAY) { Animation_Start(); } // // While // while (1) { main_TcpNet(); DHCP_Check(); if (ftpFileClose == __TRUE && ftpFileWrite == __TRUE) { ftpFileClose = __FALSE; ftpFileWrite = __FALSE; if (strstr((char *)ftpFileOpen, "device.settings")) { Delay_ms(2000); NVIC_SystemReset(); } } /***************************************************************************** ** 1 ms timer *****************************************************************************/ if (TICK_1MS == __TRUE) { TICK_1MS = __FALSE; if (ANIMATION_PLAY) { if (DelayValue >= ((currentEffect.delay+1) * getDelayUnitValue(currentEffect.delayUnit))) { DelayValue = 0; if (CurrentAnimationEffect >= AnimationEffectsCount - 1) { CurrentAnimationEffect = 0; } else { CurrentAnimationEffect++; } Animation_Read_Effect(); } else { DelayValue++; } } } /***************************************************************************** ** 10 ms timer *****************************************************************************/ if (TICK_10MS == __TRUE) { TICK_10MS = __FALSE; } /***************************************************************************** ** 100 ms timer *****************************************************************************/ if (TICK_100MS == __TRUE) { TICK_100MS = __FALSE; /***************************************************************************** ** reset button *****************************************************************************/ if (!(LPC_GPIO1->FIOPIN & (1<<RESET_BUTTON_PIN))) { if (RESET_VALUE_SEC >= 5) { RESET_VALUE_SEC = 0; Status_LED1_Set(TRUE); Status_LED2_Set(TRUE); while (!(LPC_GPIO1->FIOPIN & (1<<RESET_BUTTON_PIN))); SPI_FLASH_Delete_All_Files(); NVIC_SystemReset(); Status_LED1_Set(FALSE); Status_LED2_Set(FALSE); } } else { RESET_VALUE_SEC = 0; } } /***************************************************************************** ** 1 s timer *****************************************************************************/ if (TICK_1S == __TRUE) { TICK_1S = __FALSE; if (ANIMATION_PLAY) { Status_LED2_Toggle(); } else { Status_LED2_Set(FALSE); } if (TCP_Connected) { Status_LED1_Set(TRUE); } else { Status_LED1_Set(FALSE); } if (!(LPC_GPIO1->FIOPIN & (1<<RESET_BUTTON_PIN))) { RESET_VALUE_SEC++; } } /***************************************************************************** ** UDP Socket Listener *****************************************************************************/ if (UDP_Socket_Listener_Data_Received == TRUE) { UDP_Socket_Listener_Data_Received = FALSE; // Clear listener switch (UDP_Receive_Check(UDP_Socket_Buffer_Receive, UDP_Socket_Receive_Length)) { case PROTOCOL_UDP_ReceiveCheckWhich_search_device: UDP_Socket_Send_Length = UDP_Send_Search_Device(UDP_Socket_Buffer_Send, (char *)DEVICE_IP, (char *)SETTINGS_DATA[DEVICE_NAME]); UDP_Socket_Send(UDP_Socket_Buffer_Send, UDP_Socket_Send_Length, UDP_Socket_Remote_IP); break; case PROTOCOL_UDP_ReceiveCheckWhich_cube_set: if (ANIMATION_PLAY == FALSE) { for (a=0; a<8; a++) { for (b=0; b<8; b++) { cube[a][b] = UDP_Socket_Buffer_Receive[(((a * 8) + b) + 6)]; } } } break; case PROTOCOL_UDP_ReceiveCheckWhich_reset_device: NVIC_SystemReset(); break; default: break; } } /***************************************************************************** ** TCP Users Listener *****************************************************************************/ TCP_Connected = FALSE; for (TCP_USER_i=0; TCP_USER_i<TCP_USER_NUMBER_OF_SESSIONS; TCP_USER_i++) { TCP_USER = &TCP_USER_SESSIONS[TCP_USER_i]; if (TCP_USER->State == TCP_USER_STATE_CONNECTED) { TCP_Connected = TRUE; } /* ------------------- CONNECT ------------------ */ if (TCP_USER->Connect_Flag == TRUE) { TCP_USER->Connect_Flag = FALSE; // Clear interrupt flag } /* ------------------- DISCONNECT --------------- */ if (TCP_USER->Disconnect_Flag == TRUE) { TCP_USER->Disconnect_Flag = FALSE; // Clear interrupt flag } /* ------------------- RECEIVE ------------------ */ if (TCP_USER->Received_Flag == TRUE) { TCP_USER->Received_Flag = FALSE; // Clear interrupt flag switch (TCP_Receive_Check(TCP_USER->Buffer_Receive, TCP_USER->Buffer_Receive_Length)) { case PROTOCOL_TCP_ReceiveCheckWhich_cube_set: if (ANIMATION_PLAY == FALSE) { for (a=0; a<8; a++) { for (b=0; b<8; b++) { cube[a][b] = TCP_USER->Buffer_Receive[(((a * 8) + b)+6)]; } } } break; case PROTOCOL_TCP_ReceiveCheckWhich_start_animation: AnimationFileName = GetAnimationFileNameFromBuffer(TCP_USER->Buffer_Receive, TCP_USER->Buffer_Receive_Length); Animation_Start(); break; case PROTOCOL_TCP_ReceiveCheckWhich_stop_animation: Animation_Stop(); break; default: break; } } } /***************************************************************************** ** UART CONSOLE Listener *****************************************************************************/ if (UART_Count[UART_CONSOLE_NUMBER] > 0) { UART_RBR_Disable(UART_CONSOLE_NUMBER); // program // end UART_Count[UART_CONSOLE_NUMBER] = 0; UART_RBR_Enable(UART_CONSOLE_NUMBER); } } }