コード例 #1
0
ファイル: main21.c プロジェクト: malachi-iot/asf
/**
 * \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(&param);
	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);
	}
}
コード例 #2
0
/**
 * \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 *)&param, 0, sizeof(tstrWifiInitParam));

	/* Initialize Wi-Fi driver with data and status callbacks. */
	param.pfAppWifiCb = wifi_cb;
	ret = m2m_wifi_init(&param);
	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;
}
コード例 #3
0
ファイル: WiFi.cpp プロジェクト: Cacowned/WiFi101
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(&param);
	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;
}
コード例 #4
0
/**
 * @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;
}
コード例 #5
0
ファイル: main.c プロジェクト: Gr3yR0n1n/SAINTCON-2015-Badge
/**
 * \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 *)&param, 0, sizeof(tstrWifiInitParam));

	/* Initialize Wi-Fi driver with data and status callbacks. */
	param.pfAppWifiCb = wifi_cb;
	ret = m2m_wifi_init(&param);
	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;
}
コード例 #6
0
ファイル: main21.c プロジェクト: malachi-iot/asf
/**
 * \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 *)&param, 0, sizeof(tstrWifiInitParam));

	/* Initialize Wi-Fi driver with data and status callbacks. */
	param.pfAppWifiCb = wifi_cb;
	ret = m2m_wifi_init(&param);
	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;
}
コード例 #7
0
ファイル: main_samd21.c プロジェクト: InSoonPark/asf
/**
 * \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 *)&param, 0, sizeof(tstrWifiInitParam));

	/* Initialize Wi-Fi driver with data and status callbacks. */
	param.pfAppWifiCb = wifi_cb;
	ret = m2m_wifi_init(&param);
	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;
}
コード例 #8
0
ファイル: main.c プロジェクト: Gr3yR0n1n/SAINTCON-2015-Badge
/**
 * \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 *)&param, 0, sizeof(tstrWifiInitParam));

	/* Initialize Wi-Fi driver with data and status callbacks. */
	param.pfAppWifiCb = wifi_cb;
	ret = m2m_wifi_init(&param);
	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;
}
コード例 #9
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 *)&param, 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(&param);
	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);
	}
}
コード例 #10
0
ファイル: main21.c プロジェクト: malachi-iot/asf
/**
 * \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 *)&param, 0, sizeof(tstrWifiInitParam));

	/* Initialize Wi-Fi driver with data and status callbacks. */
	param.pfAppWifiCb = wifi_cb;
	ret = m2m_wifi_init(&param);
	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;
}