/*---------------------------------------------------------------------------*/ T_uezError UEZNetworkConnect( const char *aNetworkName, const char *aJoinName, const T_uezNetworkAddr *aIPAddr, const T_uezNetworkAddr *aIPMask, const T_uezNetworkAddr *aIPGateway, TBool aEnableDHCP, T_uezDevice *aNetwork, T_uezNetworkStatus *aStatus) { #if 0 T_uezNetworkSettings settings; T_uezError error = UEZ_ERROR_NONE; char networkName[32 + 1]; T_uezDevice network; *aNetwork = 0; memset(&settings, 0, sizeof(settings)); memset(aStatus, 0, sizeof(T_uezNetworkStatus)); settings.iNetworkType = UEZ_NETWORK_TYPE_INFRASTRUCTURE; settings.iScanChannel = 0; // auto settings.iAutoConnectToOpen = ETrue; settings.iTXRate = 0; settings.iTXPower = UEZ_NETWORK_TRANSMITTER_POWER_HIGH; settings.iEnableDHCP = aEnableDHCP; settings.iScanSSID[0] = '\0'; settings.iJoinSSID[0] = '\0'; if (aIPAddr) memcpy(settings.iIPAddress.v4, aIPAddr->v4, 4); if (aIPMask) memcpy(settings.iSubnetMask.v4, aIPMask->v4, 4); if (aIPGateway) memcpy(settings.iGatewayAddress.v4, aIPGateway->v4, 4); error = UEZNetworkOpen(aNetworkName, &network, &settings); if (error) return error; if (aNetwork) *aNetwork = network; error = UEZNetworkScan(network, 0, 0, IScanGetNetworkName, (void *)networkName, 5000); if (error) { UEZNetworkClose(network); network = 0; return error; } if (aJoinName) { error = UEZNetworkJoin(network, aJoinName, "fdifdifdiFDI", 5000); if (error) { UEZNetworkClose(network); network = 0; return error; } } error = UEZNetworkGetStatus(network, aStatus); if (error) { UEZNetworkClose(network); network = 0; return error; } return error; #else // Deprecated! return UEZ_ERROR_NOT_SUPPORTED; #endif }
void WiFiBlastTask(void) { T_uezDevice network = 0; T_uezError error; T_uezNetworkStatus status; T_uezNetworkSocket socket; printf("WifiBlast: Starting...\n"); T_uezNetworkAddr addr; char buffer[80]; TUInt32 count = 0; // Hardcoded to send UDP packets to 192.168.1.2, port 10080 addr.v4[0] = 192; addr.v4[1] = 168; addr.v4[2] = 1; addr.v4[3] = 2; // Get access to the network error = UEZNetworkOpen("WirelessNetwork0", &network); if (error) goto stop; // Wait/Ensure we have joined a network (can be done with other commands) do { error = UEZNetworkGetStatus(network, &status); if (error) goto stop; if (status.iJoinStatus != UEZ_NETWORK_JOIN_STATUS_SUCCESS) { printf("WifiBlast: Waiting for network join\n"); UEZTaskDelay(1000); } } while (status.iJoinStatus != UEZ_NETWORK_JOIN_STATUS_SUCCESS); // Go ahead and start spamming the network with as many packets as we can while (1) { error = UEZNetworkSocketCreate(network, UEZ_NETWORK_SOCKET_TYPE_TCP, &socket); if (error) { printf("WiFiBlast: Cannot create socket!\n"); UEZTaskDelay(1000); } else { error = UEZNetworkSocketConnect(network, socket, &addr, 8010); if (error) { printf("WiFiBlast: Cannot connect!\n"); } else { while (1) { // Good, we connected (which really just sets up a destination); // Let's send a packet to the target sprintf(buffer, "WiFiBlast: Packet %d\r\n", ++count); error = UEZNetworkSocketWrite(network, socket, buffer, strlen(buffer), ETrue, 5000); if (error) break; // Delay a little bit to share the CPU a bit even though the // above may delay. Our goal is to keep the transmitter // energy level high. UEZTaskDelay(1); // Print a + to the display to show we sent a packet printf("+"); } } // Close the connection and try to reopen UEZNetworkSocketClose(network, socket); UEZNetworkSocketDelete(network, socket); } } stop: if (error) printf("WifiError: %d\n", error); if (network) UEZNetworkClose(network); printf("WifiBlast: Ended.\n"); G_wifiBlastStarted = EFalse; }