//one shot联网成功之后,把MAC地址用广播包发送出去,通知手机app void DemoStdSockOneshotSendMac(void) { struct sockaddr_in pin; int idx; int socket_num; u8 mac_addr[8]; memset(&pin, 0, sizeof(struct sockaddr)); pin.sin_family=AF_INET; //AF_INET表示使用IPv4 pin.sin_addr.s_addr=htonl(0xffffffffUL); //IPADDR_BROADCAST pin.sin_port=htons(65534); socket_num = socket(AF_INET,SOCK_DGRAM,IPPROTO_UDP); //printf("\nstd sk one shot sock num=%d\n",socket_num); memset(mac_addr,0,sizeof(mac_addr)); tls_get_mac_addr(mac_addr); tls_os_time_delay(200); for(idx = 0;idx < 3;idx++) { sendto(socket_num, mac_addr, 6, 0, (struct sockaddr *)&pin, sizeof(struct sockaddr)); tls_os_time_delay(50); //printf("========> socket num=%d\n",socket_num); } closesocket(socket_num); //printf("\none shot success!\n"); }
void DemoRawSockOneshotSendMac(void) { int idx; int socket_num = 0; u8 mac_addr[8]; struct tls_socket_desc socket_desc; memset(&socket_desc, 0, sizeof(struct tls_socket_desc)); socket_desc.cs_mode = SOCKET_CS_MODE_CLIENT; socket_desc.protocol = SOCKET_PROTO_UDP; for(idx = 0; idx < 4; idx++){ socket_desc.ip_addr[idx] = 255; } socket_desc.port = 65534; socket_num = tls_socket_create(&socket_desc); //printf("\nraw sk one shot sock num=%d\n",socket_num); memset(mac_addr,0,sizeof(mac_addr)); tls_get_mac_addr(mac_addr); tls_os_time_delay(200); for(idx = 0;idx < 3;idx ++) { tls_socket_send(socket_num,mac_addr, 6); tls_os_time_delay(50); } tls_socket_close(socket_num); socket_num = 0; //printf("\none shot success!\n"); }
/***************************************************************************** * Function Name // task_start * Descriptor // before create multi_task, we create a task_start task * // in this example, this task display the cpu usage * Input * Output * Return ****************************************************************************/ void task_start (void *data) { extern void CreateUserTask(void); extern void RestoreParamToDefault(void); int err; u8 mac_addr[6]; u8 tx_gain[12]; u8 errstatus; tls_irq_init(); /* initial os ticker */ tls_os_timer_init(); #if OS_TASK_STAT_EN > 0 /* Initialize uC/OS-II's statistics */ OSStatInit(); #endif tls_spi_slave_sel(SPI_SLAVE_FLASH); tls_spi_init(); tls_fls_init(); tls_fls_gd25qxx_drv_install(); tls_restore_param_from_backup(); RestoreParamToDefault(); //tls_param_to_default(); err = tls_param_init(); if (err) { TLS_DBGPRT_INFO("read spi param err\n"); } tls_fwup_init(); /* ¶ÁÈ¡efuseÖеÄmacµØÖ· */ tls_get_mac_addr(mac_addr); tls_get_tx_gain(tx_gain); TLS_DBGPRT_INFO("tx gain "); TLS_DBGPRT_DUMP(&tx_gain[0], 12); TLS_DBGPRT_INFO("mac addr "); TLS_DBGPRT_DUMP(&mac_addr[0], 6); if(tls_wl_init(tx_gain, &mac_addr[0]) == NULL){ TLS_DBGPRT_INFO("wl driver initial failured\n"); } if (wpa_supplicant_init(mac_addr)) { TLS_DBGPRT_INFO("supplicant initial failured\n"); } tls_ethernet_init(); tls_sys_init(); #if TLS_CONFIG_HOSTIF tls_hostif_init(); #endif #if (TLS_CONFIG_HOSTIF && TLS_CONFIG_HS_SPI) tls_hspi_init(); #endif #if (TLS_CONFIG_HOSTIF &&TLS_CONFIG_UART) tls_uart_init(); #endif tls_sys_auto_mode_run(); tls_netif_add_status_event(tls_main_net_status_changed); BLINKTIMER = OSTmrCreate(0, 10, 2, BlinkTimerProc, NULL, NULL, &errstatus); if (BLINKTIMER){ OSTmrStart(BLINKTIMER, &errstatus); } tls_wifi_one_shot_init(); disp_version_info(); /* User start here */ CreateUserTask(); for (;;) { tls_os_time_delay(0x10000000); } }