int initDriver(unsigned short patch) { ulCC3000DHCP = 0; ulCC3000Connected = 0; //ulSocket = 0; ulSmartConfigFinished=0; bEnableUnSolEvent = 0; wlan_init( CC3000_UsynchCallback,sendWLFWPatch, sendDriverPatch, sendBootLoaderPatch, ReadWlanInterruptPin, WlanInterruptEnable, WlanInterruptDisable, WriteWlanPin); wlan_start(patch); wlan_smart_config_set_prefix(aucCC3000_prefix); wlan_ioctl_set_connection_policy(0, 0, 0); wlan_set_event_mask(HCI_EVNT_WLAN_KEEPALIVE|HCI_EVNT_WLAN_UNSOL_INIT|HCI_EVNT_WLAN_ASYNC_PING_REPORT); ucStopSmartConfig = 0; bEnableUnSolEvent = 1;//Ebable timer to call hci_unsolicited_event_handler is every 500ms } void ServerSendRecv() { long sd = 0; sockaddr saddrClient,saddrServer; long socketStatus = 0; socklen_t tSoclength ; int clientDescriptor = -1; char dataSend[] = "INLINE6 WiFi Adapter TM"; char dataRecv[CC3000_MINIMAL_RX_SIZE]; unsigned long optval = 1000; int nNumOfBytesRecvd = 0; saddrClient.sa_family = AF_INET; saddrClient.sa_data[0] = 0x20;saddrClient.sa_data[1] = 0x1D; saddrClient.sa_data[2] = 0xC0; saddrClient.sa_data[3] = 0xA8;saddrClient.sa_data[4] = 0x00; saddrClient.sa_data[5] = 0x6C; saddrServer.sa_family = AF_INET; saddrServer.sa_data[0] = 0x20;saddrServer.sa_data[1] = 0x1D; saddrServer.sa_data[2] = 0x00; saddrServer.sa_data[3] = 0x00;saddrServer.sa_data[4] = 0x00; saddrServer.sa_data[5] = 0x00; if((sd = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP)) < 0) return; if((socketStatus = bind(sd,&saddrServer,sizeof(saddrServer))) != 0) return; if((socketStatus = listen(sd,1)) != 0) return; tSoclength = sizeof(saddrClient); while(clientDescriptor < 0) { clientDescriptor = accept(sd,&saddrClient,&tSoclength); } MCF_GPIO_GPIO1_OUT |= MCF_GPIO_GPIO1_OUT_GPIO_OUT32; //LG2 -CAN1 LED while(1) { //socketStatus = send(clientDescriptor, dataSend , sizeof(dataSend), 0); //tx_thread_sleep(10); nNumOfBytesRecvd = recv(clientDescriptor,dataRecv ,CC3000_MINIMAL_RX_SIZE ,0); if(nNumOfBytesRecvd) { MCF_GPIO_GPIO1_OUT ^= MCF_GPIO_GPIO1_OUT_GPIO_OUT36; } tx_thread_sleep(10); } } void ClientSendRecv() { long sd = 0; sockaddr saddrClient; long socketStatus = 0; socklen_t tSoclength ; int clientDescriptor = -1; char dataSend[] = "INLINE6 WiFi Adapter TM"; char dataRecv[CC3000_MINIMAL_RX_SIZE]; unsigned long optval = 1000; saddrClient.sa_family = AF_INET; saddrClient.sa_data[0] = 0x20;saddrClient.sa_data[1] = 0x1D; saddrClient.sa_data[2] = 0xC0; saddrClient.sa_data[3] = 0xA8;saddrClient.sa_data[4] = 0x00; saddrClient.sa_data[5] = 0x6C; if((sd = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP)) < 0) return; if((socketStatus = connect(sd,&saddrClient,sizeof(saddrClient)))!=0) return; if((socketStatus = setsockopt(sd,SOL_SOCKET,SOCKOPT_RECV_TIMEOUT,&optval, sizeof( optval ))) != 0 ) return; MCF_GPIO_GPIO_OUT |= MCF_GPIO_GPIO_OUT_GPIO_OUT29; //LG1 -CAN2 LED //MCF_GPIO_GPIO1_OUT |= MCF_GPIO_GPIO1_OUT_GPIO_OUT32; //LG2 -CAN1 LED while(1) { //send(sd, dataSend , sizeof(dataSend), 0); //tx_thread_sleep(10); socketStatus = recv(sd,dataRecv ,CC3000_MINIMAL_RX_SIZE ,0); if(socketStatus) { MCF_GPIO_GPIO1_OUT ^= MCF_GPIO_GPIO1_OUT_GPIO_OUT36; } tx_thread_sleep(10); //send(sd, dataSend , sizeof(dataSend), 0); } } int main() { init_spi(); initDriver(0); if( (lStatus1 = wlan_ioctl_del_profile(255)) != 0) break; lStatus1 = -1; if( (lStatus1 = nvmem_read_sp_version(patchversion)) != 0) break; wlan_connect(WLAN_SEC_UNSEC,(char*)"default",7,NULL,NULL,NULL); while ((ulCC3000Connected == 0) && (ulCC3000DHCP == 0)) { MCF_GPIO_GPIO_OUT |= MCF_GPIO_GPIO_OUT_GPIO_OUT16; //LG6 -WIFI LED } lStatus1 = 0; while(lStatus1 != 3) { lStatus1 = wlan_ioctl_statusget(); } ipconfig.aucIP[0] = 0x00; while(ipconfig.aucIP[0] == 0) { netapp_ipconfig(&ipconfig); } MCF_GPIO_GPIO1_OUT |= MCF_GPIO_GPIO1_OUT_GPIO_OUT37; //LG3 -J1708 LED //ServerSendRecv(); ClientSendRecv(); return 0; }