int application_start( void ) { MICOAddNotification( mico_notify_WIFI_STATUS_CHANGED, (void *)micoNotify_WifiStatusHandler ); network_InitTypeDef_adv_st wNetConfig; #if MCU_POWERSAVE_ENABLED MicoMcuPowerSaveConfig(true); #endif power_log( "Power measure program: RTOS and wlan initialized and connect wlan, wait station up to measure" ); MicoInit( ); #if IEEE_POWERSAVE_ENABLED micoWlanEnablePowerSave(); #endif memset(&wNetConfig, 0x0, sizeof(network_InitTypeDef_adv_st)); strncpy((char*)wNetConfig.ap_info.ssid, "William Xu", 32); wNetConfig.ap_info.security = SECURITY_TYPE_AUTO; strncpy((char*)wNetConfig.key, "mx099555", 64); wNetConfig.key_len = 8; wNetConfig.dhcpMode = true; wNetConfig.wifi_retry_interval = 100; micoWlanStartAdv(&wNetConfig); power_log("connect to %s.....", wNetConfig.ap_info.ssid); mico_rtos_delete_thread( NULL ); return 0; }
void _ConnectToAP( mico_Context_t * const inContext) { mico_log_trace(); network_InitTypeDef_adv_st wNetConfig; mico_log("connect to %s.....", inContext->flashContentInRam.micoSystemConfig.ssid); memset(&wNetConfig, 0x0, sizeof(network_InitTypeDef_adv_st)); mico_rtos_lock_mutex(&inContext->flashContentInRam_mutex); strncpy((char*)wNetConfig.ap_info.ssid, inContext->flashContentInRam.micoSystemConfig.ssid, maxSsidLen); memcpy(wNetConfig.ap_info.bssid, inContext->flashContentInRam.micoSystemConfig.bssid, 6); wNetConfig.ap_info.channel = inContext->flashContentInRam.micoSystemConfig.channel; wNetConfig.ap_info.security = inContext->flashContentInRam.micoSystemConfig.security; memcpy(wNetConfig.key, inContext->flashContentInRam.micoSystemConfig.key, inContext->flashContentInRam.micoSystemConfig.keyLength); wNetConfig.key_len = inContext->flashContentInRam.micoSystemConfig.keyLength; if(inContext->flashContentInRam.micoSystemConfig.dhcpEnable == true) wNetConfig.dhcpMode = DHCP_Client; else wNetConfig.dhcpMode = DHCP_Disable; strncpy((char*)wNetConfig.local_ip_addr, inContext->flashContentInRam.micoSystemConfig.localIp, maxIpLen); strncpy((char*)wNetConfig.net_mask, inContext->flashContentInRam.micoSystemConfig.netMask, maxIpLen); strncpy((char*)wNetConfig.gateway_ip_addr, inContext->flashContentInRam.micoSystemConfig.gateWay, maxIpLen); strncpy((char*)wNetConfig.dnsServer_ip_addr, inContext->flashContentInRam.micoSystemConfig.dnsServer, maxIpLen); mico_rtos_unlock_mutex(&inContext->flashContentInRam_mutex); wNetConfig.wifi_retry_interval = 100; micoWlanStartAdv(&wNetConfig); }
int application_start( void ) { OSStatus err = kNoErr; network_InitTypeDef_adv_st wNetConfigAdv={0}; MicoInit( ); /* Register user function when wlan connection status is changed */ err = mico_system_notify_register( mico_notify_WIFI_STATUS_CHANGED, (void *)micoNotify_WifiStatusHandler, NULL ); require_noerr( err, exit ); /* Register user function when wlan connection is faile in one attempt */ err = mico_system_notify_register( mico_notify_WIFI_CONNECT_FAILED, (void *)micoNotify_ConnectFailedHandler, NULL ); require_noerr( err, exit ); /* Initialize wlan parameters */ strcpy((char*)wNetConfigAdv.ap_info.ssid, "Xiaomi.Router"); /* wlan ssid string */ strcpy((char*)wNetConfigAdv.key, "stm32f215"); /* wlan key string or hex data in WEP mode */ wNetConfigAdv.key_len = strlen(ap_key); /* wlan key length */ wNetConfigAdv.ap_info.security = SECURITY_TYPE_AUTO; /* wlan security mode */ wNetConfigAdv.ap_info.channel = 0; /* Select channel automatically */ wNetConfigAdv.dhcpMode = DHCP_Client; /* Fetch Ip address from DHCP server */ wNetConfigAdv.wifi_retry_interval = 100; /* Retry interval after a failure connection */ /* Connect Now! */ wifi_station_log("connecting to %s...", wNetConfigAdv.ap_info.ssid); micoWlanStartAdv(&wNetConfigAdv); exit: mico_rtos_delete_thread(NULL); return err; }
static void connect_ap( void ) { memset(&wNetConfigAdv, 0x0, sizeof(network_InitTypeDef_adv_st)); strcpy((char*)wNetConfigAdv.ap_info.ssid, ap_ssid); strcpy((char*)wNetConfigAdv.key, ap_key); wNetConfigAdv.key_len = strlen(ap_key); wNetConfigAdv.ap_info.security = SECURITY_TYPE_AUTO; wNetConfigAdv.ap_info.channel = 0; //Auto wNetConfigAdv.dhcpMode = DHCP_Client; wNetConfigAdv.wifi_retry_interval = 100; micoWlanStartAdv(&wNetConfigAdv); tcp_server_log("connect to %s...", wNetConfigAdv.ap_info.ssid); }
int application_start( void ) { network_InitTypeDef_adv_st wNetConfig; int udp_fd = -1; struct sockaddr_t addr; socklen_t addrLen; uint8_t *buf = NULL; #if MCU_POWERSAVE_ENABLED MicoMcuPowerSaveConfig(true); #endif power_log( "Power measure program: RTOS and wlan initialized and connect wlan, wait station up to measure" ); MicoInit( ); #if IEEE_POWERSAVE_ENABLED micoWlanEnablePowerSave(); #endif memset(&wNetConfig, 0x0, sizeof(network_InitTypeDef_adv_st)); strncpy((char*)wNetConfig.ap_info.ssid, "William Xu", 32); wNetConfig.ap_info.security = SECURITY_TYPE_AUTO; strncpy((char*)wNetConfig.key, "mx099555", 64); wNetConfig.key_len = 8; wNetConfig.dhcpMode = true; wNetConfig.wifi_retry_interval = 100; micoWlanStartAdv(&wNetConfig); power_log("connect to %s.....", wNetConfig.ap_info.ssid); buf = malloc(1024); udp_fd = socket(AF_INET, SOCK_DGRM, IPPROTO_UDP);; addr.s_port = 2000; addr.s_ip = INADDR_ANY; bind(udp_fd, &addr, sizeof(addr)); addr.s_port = 2001; addr.s_ip = inet_addr( "192.168.2.1" ); connect( udp_fd, &addr, sizeof(addr) ); while(1) { send( udp_fd, buf, 1024, 0 ); mico_thread_msleep( 10 ); } mico_rtos_delete_thread( NULL ); return 0; }
void _easylinkConnectWiFi( mico_Context_t * const inContext) { easylink_uap_log_trace(); network_InitTypeDef_adv_st wNetConfig; memset(&wNetConfig, 0x0, sizeof(network_InitTypeDef_adv_st)); mico_rtos_lock_mutex(&inContext->flashContentInRam_mutex); strncpy((char*)wNetConfig.ap_info.ssid, inContext->flashContentInRam.micoSystemConfig.ssid, maxSsidLen); wNetConfig.ap_info.security = SECURITY_TYPE_AUTO; memcpy(wNetConfig.key, inContext->flashContentInRam.micoSystemConfig.user_key, maxKeyLen); wNetConfig.key_len = inContext->flashContentInRam.micoSystemConfig.user_keyLength; wNetConfig.dhcpMode = inContext->flashContentInRam.micoSystemConfig.dhcpEnable; strncpy((char*)wNetConfig.local_ip_addr, inContext->flashContentInRam.micoSystemConfig.localIp, maxIpLen); strncpy((char*)wNetConfig.net_mask, inContext->flashContentInRam.micoSystemConfig.netMask, maxIpLen); strncpy((char*)wNetConfig.gateway_ip_addr, inContext->flashContentInRam.micoSystemConfig.gateWay, maxIpLen); strncpy((char*)wNetConfig.dnsServer_ip_addr, inContext->flashContentInRam.micoSystemConfig.dnsServer, maxIpLen); wNetConfig.wifi_retry_interval = 100; mico_rtos_unlock_mutex(&inContext->flashContentInRam_mutex); micoWlanStartAdv(&wNetConfig); easylink_uap_log("connect to %s.....", wNetConfig.ap_info.ssid); }
void mico_mfg_test(mico_Context_t *inContext) { network_InitTypeDef_adv_st wNetConfig; int testCommandFd, scanFd; uint8_t *buf = NULL; int recvLength = -1; fd_set readfds; struct timeval_t t; struct sockaddr_t addr; socklen_t addrLen; mico_uart_config_t uart_config; volatile ring_buffer_t rx_buffer; volatile uint8_t * rx_data; OSStatus err; buf = malloc(1500); require_action(buf, exit, err = kNoMemoryErr); rx_data = malloc(2048); require_action(rx_data, exit, err = kNoMemoryErr); /* Connect to a predefined Wlan */ memset( &wNetConfig, 0x0, sizeof(network_InitTypeDef_adv_st) ); strncpy( (char*)wNetConfig.ap_info.ssid, "William Xu", maxSsidLen ); wNetConfig.ap_info.security = SECURITY_TYPE_AUTO; memcpy( wNetConfig.key, "mx099555", maxKeyLen ); wNetConfig.key_len = strlen( "mx099555" ); wNetConfig.dhcpMode = DHCP_Client; wNetConfig.wifi_retry_interval = 100; micoWlanStartAdv(&wNetConfig); /* Initialize UART interface */ uart_config.baud_rate = 115200; uart_config.data_width = DATA_WIDTH_8BIT; uart_config.parity = NO_PARITY; uart_config.stop_bits = STOP_BITS_1; uart_config.flow_control = FLOW_CONTROL_DISABLED; uart_config.flags = UART_WAKEUP_DISABLE; ring_buffer_init ( (ring_buffer_t *)&rx_buffer, (uint8_t *)rx_data, 2048 ); MicoUartInitialize( UART_FOR_APP, &uart_config, (ring_buffer_t *)&rx_buffer ); err = mico_rtos_create_thread(NULL, MICO_APPLICATION_PRIORITY, "MFG UART Recv", uartRecvMfg_thread, 0x300, (void*)inContext ); /* Initialize UDP interface */ t.tv_sec = 5; t.tv_usec = 0; scanFd = socket(AF_INET, SOCK_DGRM, IPPROTO_UDP); require_action(IsValidSocket( scanFd ), exit, err = kNoResourcesErr ); addr.s_port = 23230; addr.s_ip = INADDR_ANY; err = bind(scanFd, &addr, sizeof(addr)); require_noerr(err, exit); testCommandFd = socket(AF_INET, SOCK_DGRM, IPPROTO_UDP); require_action(IsValidSocket( testCommandFd ), exit, err = kNoResourcesErr ); addr.s_port = 23231; addr.s_ip = INADDR_ANY; err = bind(testCommandFd, &addr, sizeof(addr)); require_noerr(err, exit); while(1) { /*Check status on erery sockets on bonjour query */ FD_ZERO( &readfds ); FD_SET( testCommandFd, &readfds ); FD_SET( scanFd, &readfds ); select( 1, &readfds, NULL, NULL, &t ); /* Scan and return MAC address */ if (FD_ISSET(scanFd, &readfds)) { recvLength = recvfrom(scanFd, buf, 1500, 0, &addr, &addrLen); sendto(scanFd, inContext->micoStatus.mac, sizeof(inContext->micoStatus.mac), 0, &addr, addrLen); } /* Recv UDP data and send to COM */ if (FD_ISSET(testCommandFd, &readfds)) { recvLength = recvfrom(testCommandFd, buf, 1500, 0, &addr, &addrLen); MicoUartSend(UART_FOR_APP, buf, recvLength); } } exit: if(buf) free(buf); }