The present disclosure generally relates to systems and methods for testing a wireless connection, and more specifically, to systems and methods for automatically testing a wireless connection of an access point filtered from a plurality of access points.
Many devices nowadays can support wireless connections based on, e.g. Wi-Fi, Zigbee, etc. A network device, e.g. an Internet of Thing (IoT) device, a Wi-Fi point of delivery (POD), needs to be tested to determine its wireless connectivity. A manual wireless connection test requires manually going through all network identifications (IDs) being broadcast, to find the right one for a current device being tested, and connecting to it manually by typing a ping message via a command prompt to verify the wireless connectivity of the device being tested. In a situation when thousands of network devices need to be tested, e.g. for verification, amendment, or refurbishment, existing method based on manually connecting and sending pings to each network device would take too long to make the test process cost effective.
An object of the present disclosure, among others, is to provide systems and methods to automatically test wireless connections of network access points.
In one embodiment, a method, implemented by at least one processor and at least one memory, for automatically testing wireless connections is disclosed. The method comprises: receiving a first input from a user via a graphic user interface (GUI); scanning, based on the first input, for available wireless networks to find a plurality of network identifications (IDs); filtering the plurality of network IDs to generate a subset of network IDs meeting a predetermined criterion; providing, to the user, the subset of network IDs representing a list of access points via the GUI; receiving a second input from the user, wherein the second input indicates that the user selects a network ID from the subset of network IDs; receiving a third input from the user via the GUI; performing, based on the third input, a wireless connection test for a selected access point associated with the selected network ID to generate a connection test result; generating at least one label based on the connection test result; and providing, to the user, the at least one label via the GUI.
In another embodiment, a system for automatically testing wireless connections is disclosed. The system comprises: a plurality of access points, each of which is broadcasting a network identification (ID); a computer comprising at least one processor and at least one memory. The at least one processor is configured to: receive a first input from a user via a graphic user interface (GUI) of the computer; scan, based on the first input, for available wireless networks to find a plurality of network IDs broadcasted by the plurality of access points; filter the plurality of network IDs to generate a subset of network IDs meeting a predetermined criterion; provide, to the user, the subset of network IDs representing a list of access points via the GUI; receive a second input from the user, wherein the second input indicates that the user selects a network ID from the subset of network IDs; receive a third input from the user via the GUI; perform, based on the third input, a wireless connection test for a selected access point associated with the selected network ID to generate a connection test result; generate at least one label based on the connection test result; and provide, to the user, the at least one label via the GUI.
Various exemplary embodiments of the present disclosure are described in detail below with reference to the following Figures. The drawings are provided for purposes of illustration only and merely depict exemplary embodiments of the present disclosure to facilitate the reader's understanding of the present disclosure. Therefore, the drawings should not be considered limiting of the breadth, scope, or applicability of the present disclosure. It should be noted that for clarity and ease of illustration these drawings are not necessarily drawn to scale.
Various exemplary embodiments of the present disclosure are described below with reference to the accompanying figures to enable a person of ordinary skill in the art to make and use the present disclosure. As would be apparent to those of ordinary skill in the art, after reading the present disclosure, various changes or modifications to the examples described herein can be made without departing from the scope of the present disclosure. Thus, the present disclosure is not limited to the exemplary embodiments and applications described and illustrated herein. Additionally, the specific order and/or hierarchy of steps in the methods disclosed herein are merely exemplary approaches. Based upon design preferences, the specific order or hierarchy of steps of the disclosed methods or processes can be re-arranged while remaining within the scope of the present disclosure. Thus, those of ordinary skill in the art will understand that the methods and techniques disclosed herein present various steps or acts in a sample order, and the present disclosure is not limited to the specific order or hierarchy presented unless expressly stated otherwise.
This description of the exemplary embodiments is intended to be read in connection with the accompanying drawings, which are to be considered part of the entire written description. In the description, relative terms such as “lower,” “upper,” “horizontal,” “vertical,”, “above,” “below,” “up,” “down,” “top” and “bottom” as well as derivative thereof (e.g., “horizontally,” “vertically,” “downwardly,” “upwardly,” etc.) should be construed to refer to the orientation as then described or as shown in the drawing under discussion. These relative terms are for convenience of description and do not require that the apparatus be constructed or operated in a particular orientation.
A test for wireless connection of a network device is needed for fixing or refurbishing the network device. A manual wireless connection test requires manually connecting and sending a ping to the network device. First, a user gets a list of available wireless networks or access points when clicking on a network icon on the computer. For an in-house testing of network devices, the user would get hundreds or even thousands of access points in the list, which would make it very difficult for the user to find the correct one device to be tested. In addition, the user needs to click a connect button and enter the device's password, to connect to the network device. After the connection, the user also needs to find the gateway Internet Protocol (IP) address, e.g. by clicking through “Network Connections”->“Wi-Fi Status”->“Network Connection Details” under a Windows operation system. Then, the user has to open up a command prompt, and type in a ping message with the gateway IP address. After all of these manual operations, the user can finally verify the wireless connectivity of the network device based on the ping result shown in the command prompt. Throughout the disclosure, the term “click” or “clicking” on a button is used to mean an activation of a function associated with the button, which can include but not limited to: a click on a button by a computer mouse, a press on a button by a finger, a tap on a button by a stylus pen, etc.
Since developing an automated or semi-automated testing is critical for an in-house testing project to be profitable, one purpose of the present teaching is to simplify wireless connectivity testing for network devices. Various embodiments of the present disclosure provide methods and systems for automatically testing wireless connections of network devices, including a Wi-Fi point of delivery (POD) used in smart home security systems. A Wi-Fi POD may be an IoT smart device or hub to extend Wi-Fi network to cover various Wi-Fi and/or Zigbee devices at home. The Wi-Fi POD can connect to Wi-Fi and/or Zigbee devices, e.g. door sensors, window sensors, motion sensors, etc. A wireless connectivity of a Wi-Fi POD should be tested, for fixing some issue, firmware update, refurbishment, etc., especially when a POD model has been discontinued by its manufacturer.
Each network device is broadcasting a network ID, e.g. a Wi-Fi service set identifier (SSID). When a Wi-Fi POD is being tested or when its firmware is updated, its SSID needs to be discovered for a Wi-Fi connection test. In some embodiments, an app or testing software is used to filter out all SSID's discovered that are not from the Wi-Fi PODs. The app is running on a test computer to scan for open Wi-Fi networks to look for specific devices whose SSIDs meeting certain criteria, which allows the operator to be able to test these devices. This enables an automatic way to test network devices.
The test computer 110 in this example may be any computer including at least one processor and at least one memory storing a test application (app) or test software. Examples of the test computer 110 may include a personal computer (PC), laptop, tablet, smartphone, etc. The test computer 110 has Wi-Fi functionality enabled, e.g. by at least one Wi-Fi adapter.
The UUT devices 120 in this example can be any device to be tested. For example, the UUT devices 120 may be any network device supporting Wi-Fi or Zigbee connection. In some embodiments, each of the UUT devices 120 is a Wi-Fi POD to be tested. After plugging in each Wi-Fi POD into a power outlet of the power supply 130, the Wi-Fi POD may be reset to broadcast its network ID, which may be a unique Wi-Fi SSID. As shown in
In some embodiments, instead of manually looking for a specific Wi-Fi SSID and running a ping test, an app or testing software is used on the test computer 110 to automatically run a Wi-Fi connection test, based on user inputs received via the GUI of the test computer 110. In some embodiments, the app may be written in C# language.
The operation is simple for the user based on the app. Once the devices 120 are powered on, the app will automatically search for the SSID's broadcasted by the devices 120, filter the SSID's to find only a subset of SSID's that meet certain criteria, and display the found subset of SSID's, representing a list of network devices, via the GUI to the user. All of these operations are performed automatically by the app on the test computer 110, either based on a predetermined auto setup by the user, or based on one button click from the user. For example, based on certain criteria, the list of network devices include merely Wi-Fi PODs produced by a certain company, of a certain type, or under a certain brand. As such, the list would not be long.
Then, the user may click on one of the listed network devices to highlight its selection, and click a connect button via the GUI. Accordingly, the app will attempt to connect to that POD's Wi-Fi, and upon successful connection, will send a ping to verify a two-way communication with the POD.
In some embodiments, the test application running on the test computer 110 may be designed to test any network device broadcasting a wireless network ID.
As shown in
According to various embodiments, the predetermined criterion includes at least one of: the subset of network IDs includes all network IDs starting with a same predetermined prefix among the plurality of network IDs; the subset of network IDs includes all network IDs ending with a same predetermined suffix among the plurality of network IDs; or the subset of network IDs includes all network IDs containing a same predetermined word or phrase among the plurality of network IDs.
In the example shown in
As shown in
In some embodiments, the test app running on the test computer instructs the test computer to perform the following based on the user's click on the scan button 250: scan for SSID's on the selected wireless network adapter; store all discovered SSID's in a list variable; loop through all SSID's discovered, to populate a list of access points with SSID's starting with “Cox_” and populate signal strength for SSID's starting with “Cox_”.
In the example shown in
Then, the user may click a connect button 260 located below the scan button 250 in the GUI 200-1, to start a wireless connection test for the selected access point. Accordingly, the test computer can receive a third input based on the click on a connection button in the GUI 200-1 by the user. Based on the third input, the system can perform a wireless connection test for the selected access point associated with the selected network ID “Cox_22860d” to generate a connection test result; automatically generate at least one label based on the connection test result; and provide, to the user, the at least one label via the GUI 200-1.
In some embodiments, performing the wireless connection test comprises: initiating, based on the third input, a wireless connection to the selected access point associated with SSID “Cox_22860d”; and upon a successful wireless connection to the selected access point, sending a ping test to a gateway address of the selected access point to generate a ping result, wherein the at least one label is generated based on the ping result. In the example shown in
As shown in
The ping result may be shown in a second pane 220 that is located below the first pane 210 in the GUI 200-1. The second pane 220 shows log data from the ping test. The log data may include: an indication indicating whether a ping message is successfully received, a response delay time of the ping test, and/or an indication indicating whether the ping result is a pass or fail.
For easy and fast understanding by the user, the test computer generates the at least one label based on the ping result data, and displays the at least one label in a label section 280 in the GUI 200-1. In some embodiments, the at least one label may include: a first label showing an Internet Protocol (IP) address with respect to the selected access point; a second label showing a connection status indicating whether the selected access point is connected or not; and a third label showing a ping result summary indicating whether the ping test is a pass or fail. In the example shown in
In some embodiments, the test app running on the test computer instructs the test computer to perform the following based on the user's click on the connect button 260: initiate Wi-Fi connection to a selected SSID in the list; upon successful connection, send a Ping (via .NET ping) to the connected network's gateway address; gather ping results in the second pane 220; and based on the Ping result, populate the labels with data from the ping test.
The click on the connect button 260 triggers the following: establishing a handshake connection between the test computer and the selected device; and sending a ping test to the gateway IP address. If the connect button 260 is clicked without selecting any device, the GUI 200-1 can show a message to instruct the user to select a device to connect.
In some embodiments, if the ping test passed and the connection is successful, the user can perform other steps for amendment or refurbishment. In some embodiments, if the ping test failed or the connection failed, the user can unplug the device, reset it again, and try the connection test again. If the device failed twice, the user may count it as a connection failure.
As shown in
As shown in
The GUI 200-2 shown in
The disclosed systems and methods enable automatically looking for network devices that are on the Wi-Fi band and meet some certain criteria. For example, only the devices whose SSID starting, ending or containing a predetermined word or phrase will show up in the list in the first pane 210. This keeps the operator from having to find the device from thousands of network devices, which makes the job simple enough for the operator. For example, the operator can plug in dozens or even hundreds of devices at once. By clicking on the scan button, the system automatically finds the device(s) the operator wants to test. The operator can choose a device and click the connect button, which will take care of the ping test, and automatically connect to the Wi-Fi network and enter the password for the device, such that the operator does not have to do any of that manually. In some embodiments, this automatic test process takes about 20 seconds per connection test of a device, compared to 3-4 minutes for a manual test process.
As shown in
Then at operation 340, the test computer may provide, to the user, the subset of network IDs representing a list of access points via the GUI. At operation 350, the test computer may receive a second input indicating that the user selects a network ID from the subset of network IDs. At operation 360, the test computer may receive a third input from the user via the GUI. At operation 370, the test computer may perform, based on the third input, a wireless connection test for a selected access point associated with the selected network ID to generate a connection test result. At operation 380, the test computer may generate at least one label based on the connection test result. At operation 390, the test computer may provide, to the user, the at least one label via the GUI.
As shown in
Then at operation 420, the test computer determines whether the wireless connection to the selected access point is successful or not. If so, the process goes to operation 440, where the test computer may send a ping test to a gateway address of the selected access point to generate a ping result; and the test computer may provide the ping result to the user via the GUI at operation 450. If not, the process goes to operation 430, where the test computer indicates a connection fail to the user via the GUI.
The order of the operations in
Embodiments of the subject matter and the functional operations described in this specification can be implemented in digital electronic circuitry, or in computer software, firmware, or hardware, including the structures disclosed in this specification and their structural equivalents, or in combinations of one or more of them. Embodiments of the subject matter described in this specification can be implemented as one or more computer program products, i.e., one or more modules of computer program instructions encoded on a tangible program carrier for execution by, or to control the operation of, data processing apparatus. The tangible program carrier can be a computer readable medium. The computer readable medium can be a machine-readable storage device, a machine-readable storage substrate, a memory device, or a combination of one or more of them.
The term “processor” encompasses all apparatus, devices, and machines for processing data, including by way of example a programmable processor, a computer, or multiple processors or computers. The processor can include, in addition to hardware, code that creates an execution environment for the computer program in question, e.g., code that constitutes processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more of them.
A computer program (also known as a program, software, software application, app, script, or code) can be written in any form of programming language, including compiled or interpreted languages, or declarative or procedural languages, and it can be deployed in any form, including as a standalone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program does not necessarily correspond to a file in a file system. A program can be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, sub programs, or portions of code). A computer program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communication network or as an app on a mobile device such as a tablet, Phablet, PDA, smartphone, or wearable technology
The processes and logic flows described in this specification can be performed by one or more programmable processors executing one or more computer programs to perform functions by operating on input data and generating output. The processes and logic flows can also be performed by, and apparatus can also be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application specific integrated circuit).
Processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer or mobile device, smartphone or tablet. Generally, a processor will receive instructions and data from a read only memory or a random access memory or both. The essential elements of a computer are a processor for performing instructions and one or more data memory devices for storing instructions and data. Generally, a computer will also include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto optical disks, or optical disks. However, a computer need not have such devices. Moreover, a computer can be embedded in another device, e.g., a mobile telephone, a mobile smartphone, a personal digital assistant (PDA), tablet, a mobile audio or video player, a game console, a Global Positioning System (GPS) receiver, to name just a few.
Computer readable media suitable for storing computer program instructions and data include all forms data memory including non-volatile memory, media and memory devices, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks; magneto optical disks; and CD ROM and DVD-ROM disks. The processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.
To provide for interaction with a user, embodiments of the subject matter described in this specification can be implemented on a computer having a display device, e.g., a CRT (cathode ray tube), LCD (liquid crystal display) monitor or other monitor, for displaying information to the user and a keyboard and a pointing device, e.g., a mouse or a trackball, by which the user can provide input to the computer. Other kinds of devices can be used to provide for interaction with a user as well; for example, input from the user can be received in any form, including acoustic, speech, or tactile input.
Although examples are illustrated and described herein, embodiments are nevertheless not limited to the details shown, since various modifications and structural changes may be made therein by those of ordinary skill within the scope and range of equivalents of the claims.
This application claims priority to U.S. Provisional Application No. 63/302,751 filed 25 Jan. 2022, entitled “Systems and Methods for Automatically Testing a Wireless Connection”, and hereby incorporates herein by reference the entirety of the aforementioned provisional application.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/US2023/011521 | 1/25/2023 | WO |
Number | Date | Country | |
---|---|---|---|
63302751 | Jan 2022 | US |