/** * \brief Main application function. * * Initializing the board and connect to wireless router. * And event handling the Wi-Fi and SW timer. */ int main(void) { tstrWifiInitParam param; int8_t ret; /* Initialize the board. */ system_init(); /* Initialize the UART console. */ configure_console(); /* Initialize the Timer. */ configure_timer(); /* Initialize the HTTP client service. */ configure_http_client(); /* Initialize the BSP. */ nm_bsp_init(); /* Output example information */ printf(STRING_HEADER); /* Initialize Wi-Fi driver with data and Wi-Fi status callbacks. */ param.pfAppWifiCb = wifi_callback; /* Set Wi-Fi event callback. */ ret = m2m_wifi_init(¶m); if (M2M_SUCCESS != ret) { printf("main: m2m_wifi_init call error!(%d)\r\n", ret); while (1) { /* Loop forever. */ } } /* Initialize Socket module */ socketInit(); registerSocketCallback(socket_event_handler, socket_resolve_handler); /* Connect to router. */ ret = m2m_wifi_connect((char *)MAIN_WLAN_SSID, sizeof(MAIN_WLAN_SSID), MAIN_WLAN_AUTH, (char *)MAIN_WLAN_PSK, M2M_WIFI_CH_ALL); if (M2M_SUCCESS != ret) { printf("main: failed to connect access point!\r\n"); while (1) { } } while (1) { /* Handle pending events from network controller. */ m2m_wifi_handle_events(NULL); /* Checks the timer timeout. */ sw_timer_task(&swt_module_inst); } }
/** * \brief Main application function. * * Application entry point. * * \return program return value. */ int main(void) { tstrWifiInitParam param; int8_t ret; /* Initialize the board. */ system_init(); /* Initialize the UART console. */ configure_console(); printf(STRING_HEADER); /* Initialize the BSP. */ nm_bsp_init(); /* Initialize Wi-Fi parameters structure. */ memset((uint8_t *)¶m, 0, sizeof(tstrWifiInitParam)); /* Initialize Wi-Fi driver with data and status callbacks. */ param.pfAppWifiCb = wifi_cb; ret = m2m_wifi_init(¶m); if (M2M_SUCCESS != ret) { printf("main: m2m_wifi_init call error!(%d)\r\n", ret); while (1) { } } /* Initialize Socket module */ socketInit(); registerSocketCallback(socket_cb, resolve_cb); /* Connect to router. */ m2m_wifi_connect((char *)MAIN_WLAN_SSID, sizeof(MAIN_WLAN_SSID), MAIN_WLAN_AUTH, (char *)MAIN_WLAN_PSK, M2M_WIFI_CH_ALL); while (1) { m2m_wifi_handle_events(NULL); if (gbConnectedWifi && gbHostIpByName) { if (gu8SocketStatus == SocketInit) { if (tcp_client_socket < 0) { gu8SocketStatus = SocketWaiting; if (sslConnect() != SOCK_ERR_NO_ERROR) { gu8SocketStatus = SocketInit; } } } } } return 0; }
int WiFiClass::init() { tstrWifiInitParam param; int8_t ret; // Initialize the WiFi BSP: nm_bsp_init(); // Initialize WiFi module and register status callback: param.pfAppWifiCb = wifi_cb; ret = m2m_wifi_init(¶m); if (M2M_SUCCESS != ret) { // Error led ON (rev A then rev B). m2m_periph_gpio_set_val(M2M_PERIPH_GPIO18, 0); m2m_periph_gpio_set_dir(M2M_PERIPH_GPIO6, 1); return ret; } // Initialize socket API and register socket callback: socketInit(); socketBufferInit(); registerSocketCallback(socketBufferCb, resolve_cb); _init = 1; _status = WL_IDLE_STATUS; _localip = 0; _submask = 0; _gateway = 0; _dhcp = 1; memset(_client, 0, sizeof(WiFiClient *) * TCP_SOCK_MAX); // Initialize IO expander LED control (rev A then rev B).. m2m_periph_gpio_set_val(M2M_PERIPH_GPIO15, 1); m2m_periph_gpio_set_val(M2M_PERIPH_GPIO16, 1); m2m_periph_gpio_set_val(M2M_PERIPH_GPIO18, 1); m2m_periph_gpio_set_dir(M2M_PERIPH_GPIO15, 1); m2m_periph_gpio_set_dir(M2M_PERIPH_GPIO16, 1); m2m_periph_gpio_set_dir(M2M_PERIPH_GPIO18, 1); m2m_periph_gpio_set_val(M2M_PERIPH_GPIO4, 1); m2m_periph_gpio_set_val(M2M_PERIPH_GPIO5, 1); m2m_periph_gpio_set_val(M2M_PERIPH_GPIO6, 1); m2m_periph_gpio_set_dir(M2M_PERIPH_GPIO4, 1); m2m_periph_gpio_set_dir(M2M_PERIPH_GPIO5, 1); m2m_periph_gpio_set_dir(M2M_PERIPH_GPIO6, 1); return ret; }
/** * @brief Initializes mcu sockets layer */ bool winc1500_socket_layer_init(void) { int i; if (!cb_registered) { socketInit(); registerSocketCallback(socket_layer_cb, NULL); cb_registered = true; for (i=0; i<NO_OF_SOCKETS; ++i) sockets[i].sock = -1; } /* if (!winc1500_is_wifi_connected()) */ /* return false; */ if (winc1500_is_socket_layer_active()) return true; return false; }
/** * \brief Main application function. * * Application entry point. * * \return program return value. */ int main(void) { tstrWifiInitParam param; int8_t ret; init_state(); /* Initialize the board. */ sysclk_init(); board_init(); /* Initialize the UART console. */ configure_console(); printf(STRING_HEADER); printf("This example may not work as it requires internet connectivity.\r\n"); /* Initialize the Timer. */ configure_timer(); /* Initialize the HTTP client service. */ configure_http_client(); /* Initialize the BSP. */ nm_bsp_init(); /* Initialize SD/MMC storage. */ init_storage(); /* Initialize Wi-Fi parameters structure. */ memset((uint8_t *)¶m, 0, sizeof(tstrWifiInitParam)); /* Initialize Wi-Fi driver with data and status callbacks. */ param.pfAppWifiCb = wifi_cb; ret = m2m_wifi_init(¶m); if (M2M_SUCCESS != ret) { printf("main: m2m_wifi_init call error!(%d)\r\n", ret); while (1) { } } /* Initialize socket module. */ socketInit(); /* Register socket callback function. */ registerSocketCallback(socket_cb, resolve_cb); /* Connect to router. */ printf("main: Waiting for Wi-Fi connection. AP:%s\r\n", (char *)MAIN_WLAN_SSID); m2m_wifi_connect((char *)MAIN_WLAN_SSID, sizeof(MAIN_WLAN_SSID), MAIN_WLAN_AUTH, (char *)MAIN_WLAN_PSK, M2M_WIFI_CH_ALL); while (!(is_state_set(COMPLETED) || is_state_set(CANCELED))) { /* Handle pending events from network controller. */ m2m_wifi_handle_events(NULL); /* Checks the timer timeout. */ sw_timer_task(&swt_module_inst); } printf("main: Exit program. Please unplug the card.\r\n"); while (1) { } /* Loop forever. */ return 0; }
/** * \brief Main application function. * * Initialize system, UART console, network then start time client. * * \return Program return value. */ int main(void) { tstrWifiInitParam param; int8_t ret; struct sockaddr_in addr_in; /* Initialize the board. */ system_init(); /* Initialize the UART console. */ configure_console(); printf(STRING_HEADER); /* Initialize the BSP. */ nm_bsp_init(); /* Initialize Wi-Fi parameters structure. */ memset((uint8_t *)¶m, 0, sizeof(tstrWifiInitParam)); /* Initialize Wi-Fi driver with data and status callbacks. */ param.pfAppWifiCb = wifi_cb; ret = m2m_wifi_init(¶m); if (M2M_SUCCESS != ret) { printf("main: m2m_wifi_init call error!(%d)\r\n", ret); while (1) { } } /* Turn LED0 off initially. */ port_pin_set_output_level(LED_0_PIN, true); /* Initialize Socket module */ socketInit(); /* Register socket handler, resolve handler */ registerSocketCallback(socket_cb, resolve_cb); /* Connect to router. */ m2m_wifi_connect((char *)MAIN_WLAN_SSID, sizeof(MAIN_WLAN_SSID), MAIN_WLAN_AUTH, (char *)MAIN_WLAN_PSK, M2M_WIFI_CH_ALL); while (1) { /* Handle pending events from network controller. */ m2m_wifi_handle_events(NULL); if (gbConnectedWifi) { /* * Create the socket for the first time. */ if (udp_socket < 0) { udp_socket = socket(AF_INET, SOCK_DGRAM, 0); if (udp_socket < 0) { printf("main: UDP Client Socket Creation Failed.\r\n"); continue; } /* Initialize default socket address structure. */ addr_in.sin_family = AF_INET; addr_in.sin_addr.s_addr = _htonl(MAIN_DEFAULT_ADDRESS); addr_in.sin_port = _htons(MAIN_DEFAULT_PORT); bind(udp_socket, (struct sockaddr *)&addr_in, sizeof(struct sockaddr_in)); } } } return 0; }
/** * \brief Main application function. * * Initialize system, UART console, network then start function of SMTP email client. * * \return Program return value. */ int main(void) { tstrWifiInitParam param; int8_t ret; /* Initialize the board. */ system_init(); /* Initialize the UART console. */ configure_console(); printf(STRING_HEADER); /* Initialize the BSP. */ nm_bsp_init(); /* Initialize Wi-Fi parameters structure. */ memset((uint8_t *)¶m, 0, sizeof(tstrWifiInitParam)); /* Initialize Wi-Fi driver with data and status callbacks. */ param.pfAppWifiCb = wifi_cb; ret = m2m_wifi_init(¶m); if (M2M_SUCCESS != ret) { printf("main: m2m_wifi_init call error!(%d)\r\n", ret); while (1) { } } /* Initialize Socket module */ socketInit(); registerSocketCallback(socket_cb, resolve_cb); /* Connect to router. */ m2m_wifi_connect((char *)MAIN_WLAN_SSID, sizeof(MAIN_WLAN_SSID), MAIN_WLAN_AUTH, (char *)MAIN_WLAN_PSK, M2M_WIFI_CH_ALL); while (1) { m2m_wifi_handle_events(NULL); if (gbConnectedWifi && gbHostIpByName) { if (gu8SocketStatus == SocketInit) { if (tcp_client_socket < 0) { gu8SocketStatus = SocketWaiting; if (smtpConnect() != SOCK_ERR_NO_ERROR) { gu8SocketStatus = SocketInit; } } } else if (gu8SocketStatus == SocketConnect) { gu8SocketStatus = SocketWaiting; if (smtpStateHandler() != MAIN_EMAIL_ERROR_NONE) { if (gs8EmailError == MAIN_EMAIL_ERROR_INIT) { gu8SocketStatus = SocketError; } else { close_socket(); break; } } } else if (gu8SocketStatus == SocketComplete) { printf("main: Email was successfully sent.\r\n"); port_pin_set_output_level(LED_0_PIN, false); close_socket(); break; } else if (gu8SocketStatus == SocketError) { if (gu8RetryCount < MAIN_RETRY_COUNT) { gu8RetryCount++; printf("main: Waiting to connect server.(30 seconds)\r\n\r\n"); retry_smtp_server(); } else { printf("main: Failed retry to server. Press reset your board.\r\n"); gu8RetryCount = 0; close_socket(); break; } } } } return 0; }
/** * \brief Main application function. * * Initialize system, UART console, network then start function of UDP socket. * * \return program return value. */ int main(void) { tstrWifiInitParam param; int8_t ret; struct sockaddr_in addr; /* Initialize the board. */ sysclk_init(); board_init(); /* Initialize the UART console. */ configure_console(); printf(STRING_HEADER); /* Initialize the BSP. */ nm_bsp_init(); /* Initialize socket address structure. */ addr.sin_family = AF_INET; addr.sin_port = _htons(MAIN_WIFI_M2M_SERVER_PORT); addr.sin_addr.s_addr = _htonl(MAIN_WIFI_M2M_SERVER_IP); /* Initialize Wi-Fi parameters structure. */ memset((uint8_t *)¶m, 0, sizeof(tstrWifiInitParam)); /* Initialize Wi-Fi driver with data and status callbacks. */ param.pfAppWifiCb = wifi_cb; ret = m2m_wifi_init(¶m); if (M2M_SUCCESS != ret) { printf("main: m2m_wifi_init call error!(%d)\r\n", ret); while (1) { } } /* Initialize socket module */ socketInit(); registerSocketCallback(socket_cb, NULL); /* Connect to router. */ m2m_wifi_connect((char *)MAIN_WLAN_SSID, sizeof(MAIN_WLAN_SSID), MAIN_WLAN_AUTH, (char *)MAIN_WLAN_PSK, M2M_WIFI_CH_ALL); packetCnt = 0; while (1) { if (packetCnt >= MAIN_WIFI_M2M_PACKET_COUNT) { printf("UDP Server test Complete!\r\n"); close(rx_socket); rx_socket = -1; break; } m2m_wifi_handle_events(NULL); if (wifi_connected == M2M_WIFI_CONNECTED) { /* Create socket for Rx UDP */ if (rx_socket < 0) { if ((rx_socket = socket(AF_INET, SOCK_DGRAM, 0)) < 0) { printf("main : failed to create RX UDP Client socket error!\r\n"); continue; } /* Socket bind */ bind(rx_socket, (struct sockaddr *)&addr, sizeof(struct sockaddr_in)); } } } return 0; }
/** * \brief Main application function. * * Application entry point. * * \return program return value. */ int main(void) { tstrWifiInitParam param; int8_t ret; char topic[strlen(MAIN_CHAT_TOPIC) + MAIN_CHAT_USER_NAME_SIZE + 1]; /* Initialize the board. */ system_init(); /* Initialize the UART console. */ configure_console(); /* Output example information */ printf(STRING_HEADER); /* Initialize the Timer. */ configure_timer(); /* Initialize the MQTT service. */ configure_mqtt(); /* Initialize the BSP. */ nm_bsp_init(); /* Setup user name first */ printf("Enter the user name (Max %d characters)\r\n", MAIN_CHAT_USER_NAME_SIZE); scanf("%64s", mqtt_user); printf("User : %s\r\n", mqtt_user); sprintf(topic, "%s%s", MAIN_CHAT_TOPIC, mqtt_user); /* Initialize Wi-Fi parameters structure. */ memset((uint8_t *)¶m, 0, sizeof(tstrWifiInitParam)); /* Initialize Wi-Fi driver with data and status callbacks. */ param.pfAppWifiCb = wifi_callback; /* Set Wi-Fi event callback. */ ret = m2m_wifi_init(¶m); if (M2M_SUCCESS != ret) { printf("main: m2m_wifi_init call error!(%d)\r\n", ret); while (1) { /* Loop forever. */ } } /* Initialize socket interface. */ socketInit(); registerSocketCallback(socket_event_handler, socket_resolve_handler); /* Connect to router. */ m2m_wifi_connect((char *)MAIN_WLAN_SSID, sizeof(MAIN_WLAN_SSID), MAIN_WLAN_AUTH, (char *)MAIN_WLAN_PSK, M2M_WIFI_CH_ALL); while (1) { /* Handle pending events from network controller. */ m2m_wifi_handle_events(NULL); /* Try to read user input from USART. */ usart_read_job(&cdc_uart_module, &uart_ch_buffer); /* Checks the timer timeout. */ sw_timer_task(&swt_module_inst); /* Checks the USART buffer. */ check_usart_buffer(topic); } }
/** * \brief Main application function. * * Application entry point. * Initialize board and WINC1500 Wi-Fi module. * Read input data from serial interface and sent it to the remote device. * * \return program return value. */ int main(void) { tstrWifiInitParam param; int8_t ret; /* Initialize the board. */ system_init(); /* Initialize the UART console. */ configure_console(); printf(STRING_HEADER); /* Initialize the BSP. */ nm_bsp_init(); /* Initialize Wi-Fi parameters structure. */ memset((uint8_t *)¶m, 0, sizeof(tstrWifiInitParam)); /* Initialize Wi-Fi driver with data and status callbacks. */ param.pfAppWifiCb = wifi_cb; ret = m2m_wifi_init(¶m); if (M2M_SUCCESS != ret) { printf("main: m2m_wifi_init call error!(%d)\r\n", ret); while (1) { } } /* Initialize socket interface. */ socketInit(); registerSocketCallback(socket_cb, NULL); /* Connect to router. */ m2m_wifi_connect((char *)MAIN_WLAN_SSID, sizeof(MAIN_WLAN_SSID), MAIN_WLAN_AUTH, (char *)MAIN_WLAN_PSK, M2M_WIFI_CH_ALL); while (1) { if (wifi_connected == M2M_WIFI_CONNECTED && tcp_server_socket < 0) { struct sockaddr_in addr; /* Create TCP server socket. */ if ((tcp_server_socket = socket(AF_INET, SOCK_STREAM, 0)) < 0) { printf("Failed to create TCP server socket!\r\n"); continue; } /* Initialize socket address structure and bind service. */ addr.sin_family = AF_INET; addr.sin_port = _htons(MAIN_WIFI_M2M_SERVER_PORT); addr.sin_addr.s_addr = 0; bind(tcp_server_socket, (struct sockaddr *)&addr, sizeof(struct sockaddr_in)); } /* Handle pending events from network controller. */ m2m_wifi_handle_events(NULL); /* Try to read user input from EDBG. */ usart_read_job(&cdc_uart_module, &uart_ch_buffer); /* Handle user message from EDBG. */ handle_input_message(); } return 0; }