Configuration of wireless communication signals between devices

By selecting a wireless communication transmission scheme that adapts to the device status and environment, the problem of signal interference between portable devices is solved, and more efficient wireless communication is achieved.

CN115038194BActive Publication Date: 2025-09-05GOOGLE LLC
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202210439666.1
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2021-04-28
Filing Date
2022-04-25
Publication Date
2025-09-05
Estimated Expiration
2042-04-25

AI Technical Summary

Technical Problem

Wireless communications between portable devices are susceptible to interference, resulting in unstable signal quality and poor reliability. Existing systems may require frequent retransmissions or randomly change transmission characteristics, resulting in resource waste.

Method used

By determining the transmission scheme associated with the wireless communication protocol, selecting the best transmission scheme based on the signal quality indicator, and adjusting transmission characteristics such as antenna, tuning parameters, data bit rate and power level to adapt to device state changes and interference environment.

Benefits of technology

It improves the signal quality and reliability of wireless communications, reduces the consumption of computing resources and battery power, and optimizes transmission efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115038194B_ABST
    Figure CN115038194B_ABST
Patent Text Reader

Abstract

The present disclosure relates to configuring wireless communication signals between devices. In some embodiments, a method includes determining a transmission scheme associated with transmitting a wireless signal of a specific wireless communication protocol from a first device to a second device. The transmission scheme specifies one or more transmission characteristics used for signal transmission. A test message is wirelessly sent from a first device to a second device according to the transmission scheme, and a reply message is received from the second device in response to the test message. The reply message includes one or more signal quality indicators indicating the signal quality of the test message. The transmission scheme is selected as a specified scheme based on the signal quality indicators, and data is wirelessly transmitted from the first device to the second device according to the specified scheme.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to configuration of wireless communication signals between devices. Background Art

[0002] The popularity of portable devices has allowed wireless signal transmission to become ubiquitous, enabling portable devices to send and receive information to and from other devices wirelessly. Many devices include The ability to transmit wireless signals using standards such as IEEE 802.11ac, ... and IEEE 802.11ac, thereby enabling data to be transmitted to and received from networks such as the Internet via routers and other devices. In addition, many devices are able to transmit data via standards such as IEEE 802.11ac and IEEE 802.11ac. Local communication standards, such as Wi-Fi Direct, allow devices to communicate directly with each other wirelessly. These local communication standards allow for the wireless transmission of signals between two devices without using a larger network, such as the internet. However, wireless signal transmissions can be subject to interference from various sources, including devices, users, and objects in the vicinity of the transmitted signal.

[0003] The background description provided herein is for the purpose of generally presenting the context of the present disclosure. To the extent described in this background section, the work of the presently named inventors and aspects of the description that may not have qualified as prior art at the time of filing are neither explicitly nor implicitly admitted as prior art against the present disclosure. Summary of the Invention

[0004] Embodiments of the present application relate to the configuration of wireless communication signals between devices. In some embodiments, a computer-implemented method includes: determining a first transmission scenario associated with transmitting a wireless signal of a specific wireless communication protocol from a first device to a second device. The first transmission scenario specifies one or more first transmission characteristics for the transmission of the wireless signal. According to the first transmission scenario, a first test message is wirelessly sent from the first device to the second device; and in response to the first test message, a first reply message is received from the second device. The first reply message includes one or more first signal quality indicators indicating the signal quality of the first test message. Based on the one or more first signal quality indicators, the first transmission scenario is selected as a designated scenario, and data is wirelessly transmitted from the first device to the second device according to the designated scenario.

[0005] Various embodiments and examples of the method are described. For example, in some embodiments, selecting the first transmission scheme as the designated scheme includes determining that each of the one or more first signal quality indicators meets or exceeds a corresponding threshold. In some embodiments, the method further includes detecting a change in device state, the change in device state including a threshold change in position or motion of at least one of the first device or the second device, and determining that the first transmission scheme is responsive to detecting the change in device state. In some embodiments, the method further includes detecting a change in a state of a wireless connection between the first device and the second device, the change in state including a decrease in signal quality of the wireless signal received by the second device, and determining that the first transmission scheme is responsive to detecting the change in state of the wireless connection.

[0006] In some embodiments, determining the first transmission scheme includes determining at least one first transmission characteristic of the first transmission scheme based on a state of the first device, the state including a peripheral device being connected to the first device via a physical connector and using one or more antennas of the first device via different wireless communication protocols.

[0007] In some embodiments, the method further includes determining a second transmission scheme that specifies one or more second transmission characteristics, at least one second transmission characteristic of the second transmission scheme having a different value than at least one corresponding transmission characteristic of the first transmission scheme; sending a second test message from the first device to the second device according to the second transmission scheme; and receiving a second reply message from the second device in response to sending the second test message, wherein the second reply message includes one or more second signal quality indicators, and selecting the first transmission scheme as the specified scheme includes comparing the first signal quality indicator with the second signal quality indicator. In some of these embodiments, determining the first transmission scheme is after determining the second transmission scheme and in response to at least one of the one or more second signal quality indicators being below a corresponding threshold.

[0008] In some embodiments, the method further includes: determining a set of transmission schemes associated with transmitting wireless signals of the specific wireless communication protocol from the first device to the second device, each of the transmission schemes specifying at least one transmission characteristic that is different from other transmission schemes in the set, and determining the first transmission scheme includes selecting the first transmission scheme from the set of transmission schemes. In some embodiments, the first set of transmission schemes is from a first set of transmission schemes, and the method further includes: determining a second set of transmission schemes associated with transmitting wireless signals of the specific wireless communication protocol from the first device to a third device, each of the transmission schemes in the second set specifying at least one transmission characteristic that is different from other transmission schemes in the second set; selecting a third transmission scheme from the second set of transmission schemes; sending a third test message from the first device to the third device according to the third transmission scheme; receiving a third reply message from the third device in response to sending the third test message, the third reply message including one or more third signal quality indicators; selecting the third transmission scheme as the second designated scheme based on the one or more third signal quality indicators; and causing second data to be wirelessly transmitted from the first device to the third device according to the second designated scheme.

[0009] In some embodiments, the first transmission characteristic comprises a specific antenna from a plurality of antennas of the first device, via which the wireless signal is to be transmitted from the first device to the second device, and causing the data to be wirelessly transmitted from the first device to the second device according to the specified scheme comprises selecting the specific antenna to transmit the data in the wireless signal from the first device to the second device based on the specified scheme. In some embodiments, the first transmission characteristic comprises a tuning parameter of an antenna of the first device that transmits the wireless signal from the first device to the second device, and causing the data to be wirelessly transmitted comprises selecting a value of the tuning parameter based on the first transmission scheme. In some embodiments, the first transmission characteristic comprises a bit rate for data transmission, and causing the data to be wirelessly transmitted comprises selecting a magnitude of the bit rate based on the specified scheme. In some embodiments, the first transmission characteristic comprises a hardware circuit path over which the wireless signal is to be transmitted from the first device to the second device, and causing the data to be wirelessly transmitted comprises selecting a specific hardware circuit path for the wireless signal from a plurality of hardware circuit paths of the first device based on the specified scheme. In some embodiments, the first transmission characteristic comprises a power level of a wireless signal to be transmitted from the first device to the second device, and causing the data to be transmitted wirelessly comprises selecting a magnitude of the power level based on the specified scheme.

[0010] In some embodiments, the one or more first signal quality indicators include at least one of: a received signal strength indicator (RSSI) indicating a power level or signal-to-noise ratio of the first test message received at the second device; or a link quality indicator (LQI) indicating a data throughput rate of the first test message. In some embodiments, the specific wireless communication protocol is the Bluetooth wireless communication protocol standard.

[0011] In some embodiments, a device includes one or more antennas, a memory storing instructions, and at least one processor coupled to the one or more antennas and the memory. The processor is configured to access the instructions from the memory and perform operations including: determining a first transmission scheme associated with transmitting a wireless signal from a first device to a second device, the first transmission scheme specifying a first plurality of transmission characteristics; wirelessly transmitting a first test message from the first device to the second device using at least one of the one or more antennas according to the first transmission scheme; receiving a first reply message from the second device in response to transmitting the first test message, the first reply message including one or more first signal quality indicators; determining a second transmission scheme specifying a second plurality of transmission characteristics, at least one of the second plurality of transmission characteristics being different from at least one transmission characteristic of the first transmission scheme; transmitting a second test message from the first device to the second device using one or more of the one or more antennas according to the second transmission scheme; receiving a second reply message from the second device in response to the second test message, the second reply message including one or more second signal quality indicators; selecting one of the first transmission scheme and the second transmission scheme as a designated scheme based on the first and second signal quality indicators; and wirelessly transmitting data from the first device to the second device according to the designated scheme.

[0012] Various embodiments and examples of the device are described. In some embodiments, the operation of determining the second transmission scheme is in response to each of the one or more first signal quality indicators being below a corresponding threshold, and the operation of selecting one of the first and second transmission schemes as the designated scheme includes selecting the second transmission scheme as the designated scheme. The first and second multiple transmission characteristics may include a specific antenna among multiple antennas of the first device (the wireless signal will be transmitted from the first device to the second device via this specific antenna), tuning parameters of the specific antenna, a bit rate of the data provided by the wireless signal, a specific hardware circuit path among multiple hardware circuit paths of the first device (the wireless signal will be transmitted through this specific hardware circuit path) and / or a power level of the wireless signal, etc. In some embodiments, a computer-implemented method, or software instructions stored on a non-transitory computer-readable medium, may perform the operations described for the device.

[0013] In some embodiments, a non-transitory computer-readable medium has software instructions stored thereon that, when executed by a processor, cause the processor to perform operations. The operations include determining a set of transmission schemes associated with transmitting wireless signals of a particular protocol from a first device to a second device, each of the transmission schemes specifying one or more transmission characteristics, the one or more transmission characteristics including at least one transmission characteristic that is different from other transmission schemes in the set; selecting a first transmission scheme from the set of transmission schemes; wirelessly sending a first test message from the first device to the second device according to the first transmission scheme; receiving a first reply message from the second device in response to the first test message, the first reply message including one or more first signal quality indicators; selecting the first transmission scheme as a designated transmission scheme based on the one or more first signal quality indicators; and causing the data to be wirelessly transmitted from the first device to the second device according to the designated scheme.

[0014] In various embodiments of the computer-readable medium, the set of transmission schemes is a first set of transmission schemes, and the operations further include determining a second transmission scheme from the set of transmission schemes, the second transmission scheme specifying one or more transmission characteristics, at least one of the one or more transmission characteristics being different from at least one corresponding transmission characteristic of the first transmission scheme. The operations further include sending a second test message from the first device to the second device according to the second transmission scheme, and receiving a second reply message from the second device in response to sending the second test message, the second reply message including one or more second signal quality indicators. Selecting the first transmission scheme as the designated transmission scheme includes comparing the first signal quality indicator to the second signal quality indicator. BRIEF DESCRIPTION OF THE DRAWINGS

[0015] Figure 1 is a block diagram of an exemplary network environment that may be used with one or more embodiments described herein;

[0016] Figure 2 is a diagram of an exemplary server device and client device that utilize one or more features described herein, according to some implementations.

[0017] Figure 3 is a flow chart illustrating an exemplary method of configuring wireless communication between devices according to some embodiments;

[0018] Figure 4 is a flow chart illustrating an exemplary method of configuring to enable wireless communication between devices according to some embodiments;

[0019] Figure 5 is a diagram illustrating an exemplary list of transmission schemes for configuring wireless communications between devices according to some embodiments;

[0020] Figure 6 is a block diagram of an exemplary device that can be used with one or more embodiments described herein. DETAILED DESCRIPTION

[0021] One or more embodiments described herein relate to the configuration of wireless communications between devices. In various embodiments, a first device (e.g., a server) communicates with a second device (e.g., a client device) using a specific wireless communication protocol. If a change in the state of a device or a wireless connection is detected, one or more transmission schemes associated with the specific protocol are determined. The transmission scheme specifies the transmission characteristics for transmitting wireless signals. According to one of the transmission schemes, a test message is sent from the server to the client device. A reply message is received from the client device, the reply message including one or more signal quality indicators indicating the signal quality of the test message received by the client device. Based on the signal quality indicator, the transmission scheme to be used is specified, and data is wirelessly transmitted from the server to the client device according to the specified scheme.

[0022] Various additional features are described. For example, in response to a change in the state of a device or wireless connection, a set of transmission schemes can be determined for each client device that is wirelessly connected to a server device and uses a specific protocol. A specific scheme can be determined for each such client device. Examples of changes in the state of a device or wireless connection can include a decrease in the quality of the signal received at the client device, and a change in the position, angle, or movement of the server or client device in space. The transmission characteristics configured by the transmission scheme can include a specific antenna from among multiple antennas of the server device, tuner parameters for the specific antenna, the bit rate of the data provided by the wireless signal, a specific hardware circuit path from among multiple such paths for the wireless signal, the power level of the wireless signal, etc.

[0023] In some embodiments, a transmission scheme can be determined (e.g., selected, generated, or modified) based on response messages to previously tested schemes and / or based on device states or conditions, such as peripheral devices physically connected to the server or client device, the tuning state of the antenna, and / or the current use of the server or client device's antenna by other wireless protocols (e.g., potentially interfering with the wireless signal). In some embodiments, a transmission scheme can be selected as the designated scheme for transmitting signals if test messages from the scheme are associated with one or more signal quality indicators that each meet or exceed corresponding thresholds. In some embodiments, multiple transmission schemes can be tested for a client device and the signal quality indicators generated by the schemes compared. The scheme that results in the highest signal quality indicator (e.g., indicating the most reliable or highest quality wireless signal) can be determined as the designated scheme. A ranked order of the schemes can be determined and stored.

[0024] One or more features described herein enable wireless communications between devices with improved signal quality and reliability and reduced signal interference. The disclosed features can detect actual or expected reductions in wireless signal quality, such as from detuned transmitting antennas, interference in transmitted signals, and can adjust wireless signal characteristics to compensate for such reductions. For example, a transmission scheme can test whether specific characteristics of a transmitted signal are sufficient to provide at least a threshold level of signal quality and reliability, and can change those characteristics based on test results (and other obtained device conditions) that reflect the current conditions of the server and client devices. In some embodiments, multiple transmission schemes can be tested, and the best scheme can be selected for use, for example, based on the current conditions of the server and client devices. Some embodiments can detect and compensate for various conditions, including the hardware transmission path of the device (e.g., RF circuit path and antenna) and blocked or interfered transmission conditions (e.g., the position, angle, or movement of the server or client devices relative to each other and interfering objects).

[0025] The described features can enable more reliable local wireless communication between a server and client devices using a specific wireless protocol, such as Bluetooth or ZigBee. Mobile device radios are widely used in ambient computing, and wireless link quality has a significant impact on the user experience, particularly for device tasks such as streaming content data (e.g., audio or video data) and wireless local broadcasting of data. The features described herein improve wireless signal quality and reliability without any additional cost to existing hardware in the mobile device. Furthermore, the described features can provide customized transmission configurations for each different client device wirelessly connecting to a server. The described features can dynamically select the optimal transmission scheme for a given set of device conditions based on tested and proven results rather than estimates. In some embodiments, the test conditions include the state of the wireless communication channel (wireless link) between the communicating devices, not just the conditions of the transmitting devices. For example, the described features allow the transmission scheme that provides the highest signal quality to be selected when the device's first antenna is not detuned but is blocked by the user's entire body or other objects, and the device's second antenna is slightly detuned but has a line-of-sight link to the client device. In this case, the second antenna can provide a higher quality signal and can be selected using the described features regardless of its detuning conditions.

[0026] Thus, a technical effect of one or more of the described embodiments is that a device expends fewer computing resources to obtain a result (efficient wireless transmission). For example, a technical effect of the described techniques and features is a reduction in consumption of system processing and communication resources (such as antenna or other network component utilization) and battery power for transmitting data between devices, compared to existing systems that do not provide one or more of the described techniques or features. For example, such existing systems may need to frequently retransmit data that has not been fully or reliably received by another device, which consumes system resources. In another example, such existing systems may only change transmission characteristics in a random or arbitrary manner, resulting in wasteful use of system resources. The features described herein can reduce such shortcomings by, for example, enabling the selection of customized transmission schemes that configure the transmission of wireless signals and that have been tested for actual device conditions.

[0027] In addition to the description herein, controls may be provided to the user that allow the user to choose whether and when the systems, programs, or features described herein may enable the collection of user information (e.g., information about the user's social network, social actions or activities, occupation, the user's preferences, or the user's current location) and whether to send content or communications from a server to the user. In addition, certain data may be processed in one or more ways before it is stored or used so that personally identifiable information is removed. For example, the user's identity may be processed so that personally identifiable information about the user cannot be determined, or the user's geographic location may be summarized (such as to the city, zip code, or state level) where location information is obtained so that the user's specific location cannot be determined. Thus, the user can control what information is collected about the user, how that information is used, and what information is provided to the user.

[0028] Figure 1 FIG2 illustrates a block diagram of an exemplary network environment 100 that may be used in some embodiments described herein. In some embodiments, the network environment 100 includes one or more server devices, such as, Figure 1 1. For example, server 102 can communicate via network connection 130. Network environment 100 also includes one or more client devices, such as client devices 120, 122, 124, and 126, which can communicate with server 102 and / or other client devices via network connection 130.

[0029] In the described embodiment, the network connection 130 can be implemented as a wireless communication network link. In some embodiments, the network connection 130 can implement a wireless communication protocol that provides local and direct wireless communication of signals between devices, for example, without using the Internet or other wide area network (WAN) / local area network (LAN) to communicate signals between devices. For example, the network connection 130 can be a Bluetooth wireless network connection or a related Bluetooth network connection (e.g., Bluetooth low energy) implemented using standard Bluetooth network communication components in the server 102 and the client devices 120-126. In some embodiments, other wireless communication protocols such as Zigbee, Wi-Fi Direct, etc. can be used. In some of these protocols, between two communicating devices, one device acts as a server and the other device acts as a client device. In some embodiments, the network connection 130 can include communications between client devices 120-126, for example, using a peer-to-peer wireless protocol or enabling one client device to act as a server for another client device.

[0030] In some embodiments, the server device 102 is connected to one or more networks 132, such as Wi-Fi, Ethernet, a wide area network, or other networks. For example, the server 102 can communicate with other server devices or client devices via one or more of the networks 132. It will be understood that such a connection can be local to the server device 102 or a connection to a device physically remote from the server device 102, while the connection 130 can be local (within a distance within wireless communication range using a particular wireless communication protocol) between the server device 102 and the client device 120.

[0031] As an example, Figure 1 Shown is a server 102 and four client devices 120, 122, 124, and 126 in communication with the server device 102. The server 102 may represent one or more devices including processing components, network databases, and the like. The devices 102 and 120-126 may be provided in configurations different from those shown. For example, the server 102 may communicate with other server devices and systems via a network connection 130 and / or a network 132. In some examples, databases and / or other storage devices may be included in the server 120 and / or communicate with the server 120 via a network connection similar to the connection 130 or via the network 132. In other embodiments, the network environment 100 may not have all of the components shown and / or may have other elements, including other types of elements instead of or in addition to those described herein.

[0032] In various embodiments, client devices 120-126 can interact with server 102 via applications running on the respective client devices and / or server 102. For example, respective client devices 120, 122, 124, and 126 can communicate data to and from server 102. In some embodiments, server 102 can send various data, such as content data (e.g., audio, images, video, messages, emails, etc.), notifications, commands, etc., to all or specific client devices. Each client device can send appropriate data to server 102, such as an acknowledgement, a request for data, a notification, a user command, etc. In some examples, the server and client devices can communicate various forms of data, including text data, audio data, video data, image data, or other types of data.

[0033] Server 102 and client devices 120-126 can be any type of device used in various applications. In some examples, server 102 is a mobile device, such as a smartphone or other similar computing device, that is portable and carried by a user. The mobile device communicates wirelessly with the client device via network connection 130, and the client device provides various features that can be enabled or supplemented by signals from the server mobile device.

[0034] There may be any number of client devices. Each client device may be any type of electronic device, such as a desktop computer, a laptop computer, a portable or mobile device, a camera, a cellular phone, a smartphone, a tablet computer, a television, a TV set-top box or entertainment device, a wearable device (e.g., display glasses or goggles, a head-mounted display (HMD), headphones, earbuds, a fitness band, a wristwatch, a headset, an armband, jewelry, etc.), a virtual reality (VR) and / or augmented reality (AR) enabled device, a personal digital assistant (PDA), a media player, a gaming device, etc. Some client devices may also have a local database or other storage.

[0035] For example, the client device may be a smartwatch that is worn on a user's wrist or other part of the user's body, includes a display and / or other output components, and communicates with server 102, which is a smartphone. In some examples, the smartwatch receives data from the server via network connection 130, and the data is displayed as text and / or images on the smartwatch's display, or the smartwatch outputs an alert or notification based on the received data. The smartwatch may receive commands from the smartphone to launch an application on the smartwatch. The smartwatch may send sensor data (e.g., the user's heart rate, exercise data describing the smartwatch's movements), calendar or user data updates provided to the smartwatch by user input, etc. to the smartphone. In some examples, the smartwatch may allow the user to send messages to a specific or multiple other users or user devices via network connection 130, server 102, and / or network 132 to which server 102 is connected.

[0036] In another example, the server 102 is a smartphone and the client device is a headset such as a pair of earbuds, each earbud being configured to be positioned in (or near) a respective ear of a user during operation. The headset receives audio data from the smartphone via the network connection 130 and outputs the audio data as audio output from a headset speaker. The headset may communicate an acknowledgment to the smartphone and send a user command associated with an event (e.g., a battery of the headset having a remaining power below a threshold, a malfunction, etc.) or a user action (e.g., a user activating a button or other control on the headset device, receiving a user voice command, etc.) to the server.

[0037] In some implementations, a "user" may include one or more programs or virtual entities, as well as humans interacting with a system or network.

[0038] In another example, a first client device communicates with server 102 and also operates as a server for a second client device, which in turn operates as a client for the first client device. For example, if server 102 is a mobile phone and client device 120 is a smartwatch, client device 120 can also be a server for another client device (e.g., a headset that wirelessly communicates with client device 120).

[0039] Various applications and / or operating systems executed on the server and client devices can implement various functions, including displaying content data, privacy settings, notifications, browsers, email applications, communication applications, etc. A user interface can be displayed on the client device using an application or other software executed on the client device, software on the server device, and / or a combination of client software and server software executed on the server 102 (e.g., application software or client software in communication with the server 102). The user interface can be displayed by a display device (e.g., a display screen, a projector, etc.) of the client device or the server device. In some embodiments, an application running on the server can communicate with the client device to receive user input at the client device and output data, such as visual data, audio data, etc., at the client device.

[0040] Figure 2 is a diagram of a server device and a client device using one or more wireless configuration features described herein according to some embodiments. Server 202 communicates with client device 204 via wireless link 220. For example, server 202 may be server 102, and client device 204 may be Figure 1 One of the client devices 120-126 is shown.

[0041] Server 202 can be any suitable device, examples of which are described above. In some examples, server 202 can be a mobile device such as a smartphone. For example, server 202 can be a mobile device that includes components such as one or more touch screens, audio speakers, a camera, a cellular phone, various sensors (GPS, accelerometer, gyroscope, etc.). Server 202 includes an operating system 206, device hardware 208, a solution builder 210, drivers / firmware 212, RF hardware 214, and an antenna 216. The hardware components of server 202 can be coupled via a communication bus or other hardware (not shown) that enables information to be exchanged between components.

[0042] The operating system 206 may be implemented on the hardware processor and memory of the server 202 (e.g., see below for reference). Figure 6 ). The operating system 206 can access the hardware components of the server 202 and control various functions of the server 202. For example, the operating system 206 can provide data to output devices and obtain data from input devices of the server 202. The operating system 206 can access the driver / firmware 212 to obtain information related to the wireless network protocol currently operating on the server 202, such as the Bluetooth stack.

[0043] Device hardware 208 may include interface hardware that connects to peripherals and other devices that communicate with operating system 206 or other components of server 202 via interfaces such as USB ports, headphone jacks, and other physical interfaces. Device hardware 208 may include one or more processors coupled to memory (e.g., see Figure 6 ). The device hardware can provide connection status and data from connected peripheral devices, such as headphones, microphones, storage devices (e.g., memory sticks), displays or monitors, charging sources for batteries of the server 202, etc. These peripheral devices can affect wireless signal communications, and the device interface hardware 208 can provide information about the connection status of the peripheral devices to the server 202. For example, the connection status can include whether the peripheral device is connected and whether the peripheral device is communicating with the server 202.

[0044] Device hardware 208 may include one or more sensors of server 202, such as motion sensors (e.g., accelerometers, gyroscopes, etc.) that detect the position, angle, and / or motion of server 202, cameras that capture physical images of the environment surrounding server 202, global positioning systems (GPS) that detect the regional or map location of server 202, user presence sensors (e.g., optical, capacitive, or resistive sensors) that detect a user's touch or grasp on server 202, IR sensors, and the like. The operation of the various sensors is controlled by the operating system and is based on user-specified configuration settings, such as whether a particular sensor is enabled, whether readings from a particular sensor are available to one or more applications executing on server 202, the resolution of such readings, and the like. In certain contexts (e.g., when at a location such as home or work, while driving, when the device is in certain conditions, etc.), the user is provided with controls to enable / disable sensors and / or deny one or more applications permission to use certain data obtained from the sensors. Device hardware 208 may provide sensor data indicative of characteristics sensed by these sensors based on the user-specified configuration settings.

[0045] The solution builder 210 can be implemented as part of software such as the operating system 206 or driver / firmware 212, as a separate application, or in hardware. The solution builder 210 receives information from the device interface hardware 208, including indications of the peripheral devices connected to the server 202 and the connection status (and any other status) of these peripheral devices, sensor data from sensors of the server 202 (or information derived from the sensor data), and / or other hardware information of the server 202. The solution builder 210 also receives information from the operating system 206, including information about the current wireless network protocol currently being used by the server 202 for wireless communications.

[0046] Based on the received information, the scheme builder 210 determines a transmission scheme for configuring wireless communication signals using a specific wireless network protocol ("specific protocol") (e.g., Bluetooth or other local networking protocol). For example, the scheme builder 210 can retrieve or generate an initial transmission scheme that specifies specific transmission characteristics of a transmission wireless signal of a specific protocol. In some embodiments, one or more transmission schemes can be retrieved from a memory (e.g., an accessible memory or other storage device) of the server 202. The scheme builder 210 can also modify the characteristics of the specific transmission scheme based on information obtained by the scheme builder 210 from other components such as the operating system 206, device hardware 208, and drivers / firmware (e.g., originating from the client device 204). Figure 3 Some examples of transmission schemes are described.

[0047] The driver and firmware 212 can implement various communication and other functions of the server 202, including networking protocols. The driver 212 may include software code executed by the device hardware 208 (e.g., a processor) to access and control the RF hardware 214 and / or antenna 216. For example, the driver / firmware 212 outputs information to the RF hardware 214 so that the output information is wirelessly transmitted to the client device 204 and / or other devices. The driver / firmware 212 determines the output information based on input information received from the operating system 206 and the solution builder 210. Similarly, the driver / firmware 212 receives information from the RF hardware 214 that has been wirelessly received from the client device 204 and / or one or more other devices. The driver / firmware 212 may convert the received information into a relevant format and provide the information to the operating system 206. In some embodiments, the driver 212 may also similarly provide the received information to the solution builder 208 and / or various applications.

[0048] Radio frequency (RF) hardware 214 includes hardware for converting information from drivers and firmware 212 into a form that can be wirelessly transmitted to other devices via one or more antennas 216 and / or converting incoming wireless signals from antennas 216 into information that can be used by other components of server 202. For example, RF hardware 214 may include an RF front end (e.g., amplifiers, filters, mixers, demodulators, oscillators, duplexers, digital-to-analog and analog-to-digital converters, transceiver circuitry, etc.), including at least one signal circuit path connected to antenna 242. In some embodiments, multiple signal circuit paths are provided to the antennas, and one of the signal circuit paths can be selected (e.g., based on transmission characteristics as described below) to transmit signals from the server to one or more of antennas 216 for wireless transmission. Different signal circuit paths can have different characteristics that affect signal transmission, for example, they can have varying conductive lengths, resistances, capacitances, inductances, etc., and / or can be located at different distances from other components that may provide signal interference. Thus, the transmission characteristics can vary depending on which signal circuit path is used to transmit wireless signals from server 202.

[0049] Antenna 216 may include one or more antennas for transmitting and receiving wireless signals when communicating with other devices. In some embodiments, a single antenna 216 is used to send and receive information according to multiple different wireless protocols (e.g., Bluetooth, Wi-Fi, etc.). In some embodiments, multiple antennas 216 can be used to transmit signals, such as one antenna for one protocol and another antenna for a different protocol, or multiple antennas can be shared for multiple protocols (e.g., used simultaneously or alternately). Antenna 216 is connected to RF hardware 214, which converts analog signals to digital signals and vice versa and performs other required signal processing.

[0050] Wireless signals are transmitted by antenna 216 over link 220 using the air as a communication channel, and wireless signals are similarly received by antenna 216. The transmitted wireless signals may be sent to and received by client device 204 and / or other devices.

[0051] The client device 204 may be the Figure 1 Any of the exemplary client devices described herein. Client device 204 includes one or more applications 232, one or more sensors 234, a transponder 236, a driver 238, RF hardware 240, and an antenna 242. The hardware components of client device 204 may be coupled via a communication bus or other hardware (not shown) that enables information to be exchanged between the components. Client device 204 includes hardware (e.g., as described below with reference to FIG. 2 ) that is provided in the client device 204. Figure 6One or more applications 232 of software executed on one or more hardware processors and memory (in the example described) of the client device 204. Applications 232 can control one or more functions of the client device 204, including outputting audio via a speaker, outputting images or video via a video screen, processing input provided by a user (e.g., via a touch screen or other input controls of the client device), etc. In some cases, applications 232 include an operating system similar to operating system 206 of server 202. Applications 232 can receive information from driver 238 that has been received over the wireless communication channel, including content data (audio, video, etc.), commands, requests, and messages from server 202.

[0052] The client device's sensors 234 may include various sensors that sense the client device's condition and / or the environment surrounding the client device. For example, sensors 234 may include motion sensors, such as one or more accelerometers and / or one or more gyroscopes, to sense the client device's motion and orientation in space. Sensors 234 may include one or more microphones to sense sounds in the client device's environment. Sensors 234 may include one or more cameras, IR sensors for sensing infrared light, optical sensors, capacitive sensors, and / or resistive / pressure sensors to sense whether and where a user is touching or holding the client device. Sensors 234 may include one or more other sensors, such as those included on server 202. The operation of the various sensors is controlled by the operating system and is based on user-specified configuration settings, such as whether a particular sensor is enabled, whether readings from a particular sensor are available to one or more applications executing on the client device 204, the resolution of such readings, and the like. In certain contexts (e.g., when at a location such as home or work, while driving, when the device is in certain conditions, etc.), the user is provided with controls to enable / disable sensors and / or deny permission for certain data obtained from sensors to be used by one or more applications. Sensors 234 may send sensor data indicative of characteristics sensed by the sensors to driver 238 and / or application 232 according to user-specified configuration settings.

[0053] Responder 236 can be software (e.g., an application or part of an operating system) executed on client device 204 (e.g., a processor) to examine and receive information in a server test message from server 202 and respond to server 202 with a reply message indicating the signal quality of the server test message. As described below, responder 236 receives the test message and determines a signal quality indicator, such as a received signal strength indicator (RSSI) and / or a link quality indicator (LQI), based on characteristics of the test message (e.g., power level and data throughput). Responder 236 sends a reply message back to server 202 via a wireless signal, the reply message including one or more of the signal quality indicators. The reply message may also include other status / device information of client device 204 and sensor data from sensor 234. For example, responder 236 sends the reply message to driver 238 of client device 204. Responder 236 may also periodically send the signal quality indicator and client device status to server 202.

[0054] Similar to the driver 212 of the server 202, the driver 238 can implement various communication and other functions of the client device 204, including networking protocols. The driver 238 can include software code that is executed by the client device hardware (e.g., a processor) to access and control the RF hardware 240 and / or antenna 242. For example, the driver 238 receives input information from the RF hardware 240 that has been wirelessly received from one or more other devices, such as the server 202. The driver 238 can convert the received information into a relevant format and provide the information to the application 232 and / or the transponder 236. The driver 238 can also determine output information based on the information received from the application 232, the sensor 234, and / or the transponder 236, and send the output information to the RF hardware 240, which causes the output information to be wirelessly transmitted to the other device, such as the server 202.

[0055] Radio frequency (RF) hardware 240 includes hardware for converting information from driver 238 into a form that can be wirelessly transmitted to other devices via one or more antennas 242 and / or converting incoming wireless signals from antennas 242 into information that can be used by other components of the server. For example, the RF hardware may include an RF front end similar to that described above, which includes one or more hardware circuit paths connected to antennas 242.

[0056] Similar to the antenna 216 of the server 202, the antenna 242 may include one or more different antennas for transmitting and receiving wireless signals when communicating with other devices. In some embodiments, a single antenna 242 is used to transmit and receive information according to multiple different wireless protocols (e.g., Bluetooth, Wi-Fi, etc.). In some embodiments, multiple antennas 242 may be used to transmit signals, for example, one antenna for one protocol, another antenna for a different protocol, etc.; or multiple antennas may be shared for multiple protocols (e.g., used simultaneously or alternately). The antenna 242 is connected to the RF hardware 240, which converts analog signals to digital signals and vice versa and performs other required signal processing.

[0057] The wireless outgoing signal is transmitted by antenna 242 over link 220 using the air as a communication channel, and the wireless signal is similarly received by antenna 242. The transmitted wireless signal may be sent to and received by server 202 or other devices.

[0058] Figure 3 is a flow chart illustrating an exemplary method 300 of configuring wireless communication between devices according to some embodiments. In some embodiments, the method 300 may be performed on a server (e.g., Figure 1 In the example described, the system implementing method 300 includes one or more processors or processing circuits, and one or more storage devices, such as a database or other accessible storage. In some embodiments, different components of one or more servers may execute different blocks or other portions of method 300.

[0059] Regarding the method 300, a server implementing the method 300 (eg, Figure 2 The server 202) has been connected to multiple client devices (e.g., Figure 2 The server and client devices may be configured to establish a wireless network connection by transmitting signals directly to each other, e.g., without having to send signals or information to another device such as a router, hub, or intermediary device, and without having to send data via the Internet or other networks. In various embodiments, the server may have a wireless connection to a single client device or to multiple client devices. In some embodiments, the server itself may also be a client device to different server devices at the same time.

[0060] As used herein, "server" (or "server device") and "client device" are merely names, and a single device can, for example, act as a client for one network connection and a server for another connection, simultaneously or at different times.

[0061] In some embodiments, method 300, or portions thereof, may be automatically initiated after a wireless network connection of a particular protocol is established between a server and one or more client devices. In some embodiments, method 300 may be initiated based on user input, for example, in a displayed user interface of a server. In some embodiments, method 300, or portions thereof, may be performed with guidance from a user via user input (e.g., a user selection or modification of one or more transmission characteristics in a transmission scheme). Method 300 may begin at block 302.

[0062] In block 302, a determination is made as to whether a qualified change in device state has been detected. A qualified change in device state can be any of a variety of specific types of changes in the condition or state of a server, a client device, and / or a network connection (of a particular protocol and / or other protocols being used) between the server and the client device. In some embodiments, a qualified change in device state is a decrease in the quality of the network connection between the server and the client device, e.g., a decrease in wireless signal quality. For example, the server can periodically receive one or more signal quality indicators from the client device via a wireless connection, e.g., a signal including an RSSI indicator indicating the power level (and / or signal-to-noise ratio) of a wireless signal from the server as received by the client device. In some embodiments, an LQI indicator can be received that indicates other characteristics such as the data throughput rate of the signal. The server can monitor the quality of the network connection via these received indicators. If the indicator indicates that the quality of the network connection has sufficiently decreased, e.g., if the indicator is below a particular threshold, then a qualified change in device state can be considered to have occurred.

[0063] In some embodiments, a qualifying change in device state is a specific change in the position or motion of the server in space and / or a specific change in the position or motion of the client device in space. The specific change in device position may indicate a change in wireless reception or communication signal quality in the connection between the server and the client device. In some examples, the specific change in position or motion may be a threshold (or greater) amount of distance that the device has moved through space, and / or a threshold (or greater) amount of rotation of the device in space. For example, if the server is a mobile phone that moves from a user's hand to a user's pocket, its position has changed by a distance exceeding a threshold distance of, for example, one foot (or other threshold distances may be used, such as half a meter, two feet, etc.). Similarly, if the client device is a smartwatch that has moved in space due to a user moving the user's wrist holding the smartwatch, the movement may qualify as a qualifying change in device state if the movement exceeds the threshold distance.

[0064] In some embodiments, due to the relative positioning of the antennas of the devices that can affect wireless signal quality, a change in device angle based on the rotation or tilt of the server or client device that exceeds a threshold rotation angle can be a qualifying change in device state. In some embodiments, a specific device motion (such as the speed of the server or client device moving in space that exceeds a threshold speed) can be a qualifying change in device state. In some embodiments, the server and / or client device may not include a motion sensor or other sensor that can detect changes in device position, angle, or motion, in which case such changes are not used to determine a qualifying change in device state.

[0065] If no eligible change in device state is detected in block 302 , the method continues to block 322 , as described below, to determine whether the server is to communicate with one or more of the client devices. If an eligible change in device state is detected, the method continues to block 304 .

[0066] In block 304, device operational status of the server and / or client devices is collected. For example, this status may include device physical connection status based on the physical connector to which the peripheral device or component is currently connected to the server. These components may include USB devices or other devices connected to a USB port or other port on the server, devices connected to the server's headphone jack, and / or other devices physically connected to a connector or port on the server. In some cases, one or more of these devices may interfere with wireless transmission. For example, if the physical connector is located near the server's antenna, the connected peripheral device or its connecting cable may detune the antenna or otherwise interfere with transmission or reception. A headphone device connected to the headphone jack may cause similar interference. In some embodiments, the physical connection status of one or more connected client devices may also be collected and included in the device physical connection status collected in block 304. For example, identifying headphones connected to a smartwatch client device, etc. In some embodiments, the collected physical connection status includes the charging status of the server and / or client devices, for example, whether the server is charging its battery via a physical wired connection (or magnetic field connection, such as resonant or inductive charging) to a power source (such as a wall outlet or other source).

[0067] In some embodiments, the collected device operating status may include a measurement of the tuning status of the antenna of the server and / or client device. For example, the voltage standing wave ratio (VSWR) may be used to determine the tuning status of the antenna and indicate whether the antenna is detuned under the current transmission conditions and to what extent.

[0068] In some embodiments, the collected device operating state may include a device spatial state. The spatial state may be obtained based on sensors of the device. For example, motion sensors such as an accelerometer and / or gyroscope of the server may determine the server's current position, current motion, and / or current orientation (e.g., tilt) in space. One or more cameras of the server may be used to capture image data of the server's surroundings, e.g., whether the device is in a user's pocket (if it is dark), whether the user's hand is holding the device, etc. If the client device has sensors, the spatial state of one or more connected client devices may also be collected, e.g., the server may receive client device spatial state information from the client device in box 302 or 304, e.g., similar to that described for the client device physical connection state.

[0069] In some embodiments, the device operating state may include the wireless communication state collected in block 304. The wireless communication state may indicate whether a particular wireless network communication is currently being performed by the device. For example, the wireless communication state of a server may include whether the server is currently communicating with any other device using a different wireless communication protocol and which antenna(s) of the server are being used for such communication. For example, the different wireless communication protocols may be Wi-Fi, or cellular radio and cellular protocols, such as voice calls or data cellular services. The wireless communication state may include whether the different wireless communication protocols are using a transmission frequency that is within a threshold range of frequencies used by the particular protocol to transmit wireless signals.

[0070] In some embodiments, the wireless communication status can include whether the server is currently communicating with other devices as a mobile "hotspot," e.g., enabling wireless Wi-Fi connectivity to other devices by acting as a Wi-Fi hotspot to communicate data from different devices (such as cellular data sources) to those other devices and / or to communicate data from those other devices to other devices connected via Wi-Fi.

[0071] The wireless communication state may also include the current communication mode of the device, such as a transmit (TX) mode, a receive (RX) mode, or a transceiver (TX and RX) mode (e.g., simplex, full-duplex, or half-duplex mode) using one or more communication channels and / or antennas, depending on the mode used. In some embodiments, for example, the communication mode is the current operating mode of the server's cellular radio, which uses specific frequency bands for communication signals; these frequency bands may be close to the frequency bands used by specific protocols.

[0072] In some implementations, the client device operational state can be determined by the server by receiving information from each client device, such as in block 302 or block 304. For example, such information can indicate which peripheral devices are connected to the client device, the tuning state of the client device's antenna, the wireless communication state of the client device, etc. In another example, the client device can send such information describing the current connection state to the server upon request, which can be sent by the server in block 304. The method continues at block 306.

[0073] In block 306, a set of transmission schemes is determined for the client device. For example, a set of multiple transmission schemes may be determined for each client device that currently has a wireless network connection (based on a particular protocol) with the server. The transmission schemes may be used to configure wireless communications between the server and the client device.

[0074] A transmission scheme specifies one or more transmission characteristics for wireless signals and / or for transmitting those signals to associated client devices based on a specific protocol. Transmission of the wireless signals will be configured according to these specified characteristics. In some embodiments, the transmission characteristics may include a specific antenna (or multiple such antennas) among the server's antennas via which the wireless signals will be transmitted from the server to the associated client devices. The transmission characteristics may include the values ​​of tuning parameters for the specific antenna, which are used to configure a tuner to adjust the calibration or settings of the antenna and mitigate detuning conditions of the antenna (e.g., by setting or changing the impedance of the tuner included in the antenna's circuit path). The transmission characteristics may include a specified bit rate (or modulation rate) for the data or packets transmitted in the wireless signal from the server. The transmission characteristics may include a specific transmission circuit path among multiple such paths of the server via which the wireless signal will be transmitted to the antenna. The transmission characteristics may include the magnitude or level of transmission power of the wireless signal transmitted from the server. Other transmission characteristics may be specified in various embodiments. In some embodiments, transmission characteristics not specified in the transmission scheme may be set to default values ​​and settings.

[0075] In some embodiments, a transmission scheme may specify one or more characteristics of different wireless signals (e.g., using different network protocols) to be configured. For example, different wireless signals may interfere with wireless signals of a specific protocol. In some examples, if a cellular radio is operating and may be interfering with wireless signals of a specific protocol, the transmission scheme may include a transmission characteristic that is a lower transmission power for the cellular radio signal. When the scheme is implemented to configure wireless signals of a specific protocol, it also configures the cellular radio wireless signals accordingly.

[0076] In some implementations, a corresponding set of multiple transmission schemes is determined for each client device, and each transmission scheme has at least one transmission characteristic that is different from every other scheme in the same set.

[0077] In some embodiments, a set of multiple transmission schemes is determined at least in part by retrieving one or more pre-configured or predetermined transmission schemes from storage (e.g., local storage on a server or remote storage on a different device via a network connection). The predetermined transmission schemes may specify transmission characteristics that provide a reliable wireless signal under various transmission conditions. Each scheme in the set has one or more transmission characteristics that differ from one another.

[0078] In some embodiments, one or more of the plurality of transmission schemes in a set and / or one or more of the transmission characteristics within a scheme may be initially selected, generated, or modified based on one or more collected device characteristics, e.g., based on received or collected device information (such as the device state collected or received in blocks 302 and / or 304). For example, if the detected change in device state of block 302 includes an RSSI indicator indicating a particular low level of transmission signal power received by the client device, then if it is known that a particular tuning parameter value compensates for low-power signals in most cases, then a particular stored scheme including that particular tuning parameter value may be selected or modified as the initial transmission scheme. If a particular detected device position or motion indicates that the user is holding the client device at a position and / or angle that blocks the wireless transmission path of the server's first antenna, then a transmission scheme may be determined that configures the server's second antenna for transmitting wireless signals. If the peripheral device is physically connected to a connector of the server located near the server's first antenna, then a scheme may be determined that specifies a second antenna located farther away from the connector for use (e.g., a scheme that configures the second antenna for use may be selected, or the antenna characteristics may be modified in the selected scheme to be the second antenna). In some embodiments, one or more transmission characteristics may be initially set to values ​​based on device or signal conditions; for example, a tuning parameter may be assigned an initial value based on a detuned condition of a server antenna as detected by the server.

[0079] In some embodiments, one or more transmission characteristics can be excluded from adjustment in a determined transmission scheme. For example, if a server currently uses only a first antenna of a plurality of available antennas of the server to communicate other signals of a different wireless protocol (e.g., Wi-Fi), signals of the specific protocol can be transmitted on a different (e.g., second) antenna, and transmission characteristics (e.g., tuning parameters) can be adjusted for the second antenna in the transmission scheme. However, if other signals of different wireless protocols will share the same server antenna as signals of the specific protocol, in some embodiments, the tuning parameters can be excluded from adjustment in the transmission scheme, for example, to avoid changing the transmission parameters used for communication of the other signals.

[0080] In various embodiments, a predetermined scheme having specific transmission characteristics may be retrieved and used, individual transmission characteristics in a predetermined scheme may be modified, or a transmission scheme may be generated to include specific transmission characteristics.In some embodiments, the initial transmission scheme may be a predetermined scheme.

[0081] In some embodiments, a set of multiple transmission schemes is determined. Each transmission scheme in the set of schemes can change one or more of the transmission characteristics. For example, if a first transmission scheme specifies a particular tuning parameter value, a second scheme in the set can specify a different tuning parameter value. In some embodiments, multiple transmission characteristics can be changed. For example, a transmission scheme can change the bit rate, circuit path and / or antenna to be different from another scheme in the set. In some embodiments, different combinations of transmission characteristics are provided for each scheme, which are known to complement each other and provide a reliable wireless signal in different situations (e.g., when one antenna is blocked, when the client device is touched by the user or in the pocket of the user's clothing, etc.).

[0082] In some implementations, a set of transmission schemes is determined for each client device that currently has a wireless connection to a server using a particular protocol. Each set of schemes can have a different number of schemes and different transmission characteristics. For example, the set of schemes for a smartwatch client device can be different from the set of schemes for a headset client device.

[0083] In some embodiments, the transmission schemes in each determined group are ranked. For example, each ranking can be based on an estimated performance of the scheme under general conditions. In some embodiments, the ranking can be based on the estimated performance of the scheme based on the current device characteristics of the server and / or client device associated with the group of schemes, such as based on received device information of the server and / or client device (e.g., the device state received or collected in blocks 302 and 304). For example, a scheme that provides a higher quality signal for the condition in which the user is holding the client device can be ranked higher than an equally good scheme that does not perform well for that condition. The method continues to block 308.

[0084] In block 308 , a client device is selected from the client devices connected to the server via a wireless connection using a particular protocol. The method continues to block 310 .

[0085] A transmission scheme for the selected client device is selected for testing from the set of transmission schemes associated with the selected client device in block 310. In some implementations, a particular transmission scheme is selected as an initial scheme for the selected client device, e.g., a scheme known to provide general wireless signal reliability and / or performance measured above a particular threshold.

[0086] In some implementations, the initial solution is selected based on device information (such as device status information) describing device characteristics of the server and / or client device, as collected or received in blocks 302 and 304. For example, a low signal power level indicated by the RSSI indicator received from the client device in block 302 may indicate selection of an initial solution with particular tuning parameter values ​​to tune the antenna to compensate for the signal power level; or the server may modify the tuning parameters in the selected initial solution to desired values ​​that will provide compensation.

[0087] In some embodiments, a set of multiple solutions is generated or selected based on such device information in block 306, and one of the multiple solutions is considered most likely to provide the most reliable wireless signal (e.g., ranked highest). In block 310, the highest ranked solution can be selected as the initial solution.

[0088] In subsequent iterations of block 310, one or more transmission schemes may have been previously selected and tested, and a different scheme may be selected as the next scheme to be tested (e.g., in some embodiments, if the previously tested scheme does not meet one or more thresholds). Such a scheme may be selected as the next listed scheme in the list of multiple schemes, for example, as the next ranked scheme in an ordered list of schemes that are ranked based on likely performance or other criteria. The method continues to block 312.

[0089] In block 312, a server test message is wirelessly transmitted to the selected client device, the test message being based on (e.g., configured by) the transmission characteristics of the selected transmission scheme. For example, the test message includes and is transmitted using the characteristics specified in the selected scheme, such as a particular antenna from among a plurality of antennas of the server from which the server message is transmitted, a value of a tuning parameter of the particular antenna, a specified bit rate, a particular circuit transmission path of the server, a specified power level of the wireless signal, etc. The method continues to block 314.

[0090] In block 314, a reply message is received from the selected client, the reply including a signal quality indicator of the test message signal received at the client device. The client signal quality indicator may include, for example, an RSSI and / or a LQI. The RSSI indicates the power level or signal-to-noise ratio of the test message signal received at the client device, and the LQI indicates the received data throughput rate, power level, and / or other characteristics of the test message signal received at the client device. In some embodiments, if the client device does not correctly receive the server message, an LQI below a threshold may cause the server to retransmit the test message. Other indicators related to the characteristics of the test message signal received at the client device may also or alternatively be received by the server from the client device in the reply message. In some embodiments, the reply message may include other characteristics of the client device, such as physical connection status, sensor data, wireless communication operating mode, etc., similar to those described with respect to blocks 302 and 304. In some embodiments, the signal quality indicator is obtained via an operating system executing on the server, where the operating system may access the signal quality indicator from a standard network protocol stack. The method continues to block 316.

[0091] In block 316, a determination is made as to whether a test message should be sent to the selected client device according to another transmission scheme in the group. In some embodiments, this determination is based on the reply message received in block 314. For example, if the reply message indicates that the server message sent in block 312 has one or more specific signal characteristics that have at least a corresponding threshold level as received by the client device, the server may omit sending another test message based on another transmission scheme, thereby providing a negative result for block 316. The method then proceeds to block 318. For example, the specific signal characteristics may be signal power level, data throughput rate, and / or other characteristics indicated by the reply message.

[0092] If the reply message indicates that the received server message does not have at least the threshold level of the particular signal characteristic, then another transmission scheme will be selected, indicating a positive result at block 316. In this case, the method continues to block 310 to select another transmission scheme from the set to configure another test message to be sent to the selected client device. In various embodiments, the next transmission scheme to be tested can be selected from the set of transmission schemes previously determined (e.g., previously selected or generated) in block 306, or the next transmission scheme can be generated after a positive result at block 316. For example, the next transmission scheme can be generated (or a previously determined transmission scheme modified) based on the reply message and / or based on device information from blocks 302 and / or 304. For example, if the reply message indicates a low power level and the client device is at a particular location in space, appropriate transmission scheme characteristics can be generated to compensate for the power level.

[0093] If, in the next iteration, the next test message does not have at least the threshold level, as indicated by the next received reply message, then in another iteration (e.g., based on the next reply message) another scenario is selected, generated, or modified and tested, and so on, until all scenarios in the group for the selected client device have been tested.

[0094] In some embodiments, a positive outcome in block 316 may be determined based on other criteria. For example, the server may send all or multiple server messages to the client device to test multiple scenarios, regardless of the characteristics of the received signal as indicated in the reply message. In some of these embodiments, block 316 determines whether there is another scenario in the set of transmission scenarios that has not been tested, and if so, the method continues to block 310 to select another transmission scenario to configure another server message. If no untested scenarios remain in the set, the method continues to block 318. In some of these embodiments, the next transmission scenario to be selected in block 310 may be selected based on the reply message, e.g., a scenario having one or more transmission characteristics that provide a more reliable signal than the signal indicated by the reply message. In some embodiments, the next scenario to be selected in block 310 may be a modified version of a preconfigured scenario, e.g., a modified version based on the reply message.

[0095] In block 318, a transmission scheme is assigned to the selected client based on the signal quality indicators received in one or more reply messages received in response to sending the one or more test messages in block 312. In some embodiments or situations, one test message may have already been sent to the client, and no additional test messages are sent because the reply message indicates that the test message meets or exceeds one or more thresholds (e.g., a threshold quality indicator indicating a reliable wireless signal, a threshold power level, a threshold data throughput rate, etc.). In this case, the single test scheme is the assigned scheme.

[0096] In other cases or embodiments, multiple test messages are sent to the client device according to corresponding associated transmission schemes (e.g., in multiple iterations of blocks 310 through 314), and one of these transmission schemes is selected as the designated scheme. In some of these embodiments, signal quality indicators received for the multiple test messages are compared to determine the designated scheme. For example, the scheme that results in the highest quality signal can be the designated scheme. In some examples, the transmission scheme that results in the highest power level and / or other characteristics indicative of a more reliable or quality wireless signal can be the designated scheme. In some embodiments, only schemes that cause their associated test messages to meet or exceed one or more thresholds qualify as the designated scheme (unless no such scheme exists).

[0097] In some embodiments, multiple transmission schemes for sending the test message are evaluated, and one of these schemes is selected as the designated scheme based on one or more additional criteria. For example, various characteristics can be weighted for each transmission scheme tested. In some examples, the signal power level can be heavily weighted so that the test scheme that causes a much larger signal power level will be the designated scheme. If the signal power level is equal to or within a small threshold between the two test schemes, other signal or device characteristics can be checked. For example, if a physical device state such as position, angle, or movement is reported in the reply message (or in other received information), a scheme that is more appropriate for the current physical device state can be weighted higher, which may result in that scheme being designated. The method continues to box 320.

[0098] In block 320, a determination is made as to whether there is another client device to be tested for signal reception. If these client devices were not tested by blocks 310-318, any other client device wirelessly connected to the server using the specified protocol may be selected. If there is another client device to be tested, the method proceeds to block 308 to select another client device to be tested. If there are no more client devices to be tested, the method proceeds to block 322.

[0099] In block 322, a determination is made as to whether the server will communicate with one or more of the client devices using wireless signals according to a specific protocol, e.g., by transmitting wireless signals to those client devices. For example, a user may have instructed the server to send and / or receive audio or music data, video data, game data, notification data, or other data to one of the client devices, or an application on the server may have been triggered to initiate such communication. If the server does not intend to communicate with any client device using the specific protocol, the method continues to block 302 to determine whether a qualifying change in device state has occurred. If the server will communicate with one or more client devices using the specific protocol, the method continues to block 324.

[0100] In block 324, the designated scheme determined in block 318 is selected for the client device communicating with the server. For example, if communication is to be performed with a first client device and a second client device, a corresponding designated scheme associated with each of these client devices is selected. The method continues to block 326.

[0101] In block 326, the server transmits data to the receiving client device via the wireless signal according to the specified scheme (e.g., a signal configured by the specified scheme). The server also receives the wireless signal from the client device according to the characteristics of the specified scheme (e.g., antenna, circuit path, etc.). For example, the server selects values ​​for the transmission characteristics of the wireless signal according to the specified scheme. In some embodiments, for those transmission characteristics that apply to the client device (e.g., the client device may not have the same options as the server to select one of multiple antennas, circuit path, etc.), each client device also transmits a signal to the server as configured by the associated specified transmission scheme.

[0102] In some embodiments, after block 326, the method may return to block 302 to continue monitoring for further eligible changes in the state of the server and the client device connected to the server using the specific protocol. If no eligible changes are detected, the server continues to communicate with the client device using signals configured by the specified scheme.

[0103] In some embodiments, the server 102 and / or one or more client devices 120-126 can use machine learning, for example, using a trained machine learning model to determine which transmission schemes to generate and / or select, as described in method 300. In some embodiments, the machine learning model can be a neural network having one or more nodes arranged, for example, in one or more layers according to a network architecture, wherein the various nodes are connected via the network architecture and have associated weights. For example, during a training phase of the model, the model can be trained using training data (e.g., transmission characteristics and resulting signal quality), and then during an inference phase, the trained model can determine a transmission scheme and / or specific transmission characteristics to select for transmission based on current conditions (e.g., as indicated in a reply message, device information, etc.). For example, the machine learning model can be trained using data from a test transmission indicating signal transmissions having a signal quality above a certain threshold. In some embodiments, the machine learning model can be trained based on sample data (e.g., sample transmission schemes and sample transmission data). Based on the sample transmissions, the model can determine a transmission scheme and / or transmission characteristics to use in the transmission scheme. In some embodiments, the model can be trained offline, for example, on a test device in a test lab or other setting, and the trained model can be provided to a server that performs method 300. In some embodiments, the trained model can be retrained or updated locally on the device, or an untrained model can be trained on the device. In some embodiments, with user permission, federated learning can be utilized to update the trained model, for example, where separate server devices can each perform local model training and updates to the model can be aggregated to update one or more central versions of the model.

[0104] Where appropriate, the methods, blocks, and operations described herein may be performed in a different order than shown or described, and / or performed simultaneously with other blocks or operations (partially or completely). Some blocks or operations may be performed for a portion of data, and some blocks or operations may be performed again later, for example, for another portion of data. Not all of the blocks and operations described need to be performed in various embodiments. In some embodiments, blocks and operations may be performed multiple times, in different orders, and / or at different times in the method.

[0105] Figure 4 4 is a flow chart illustrating an exemplary method 400 for implementing a configuration for wireless communication between devices according to some embodiments. In some embodiments, the method 400 may be performed on a client device (e.g., Figure 1 In the depicted example, the system implementing method 400 includes one or more processors or processing circuits, and one or more storage devices, such as a database or other accessible storage.

[0106] In method 400, a client device (eg, Figure 2 The client device 204) has been connected to the server (e.g., Figure 2 The server 202 of the embodiment of the present invention establishes a wireless network connection with the client device. Other client devices may also have similar wireless network connections with the server. For example, as described above, the wireless network connection may be based on a specific protocol, such as Bluetooth. In some embodiments, the client device itself may also be a server for different client devices at the same time.

[0107] In some exemplary embodiments, the method 400 is executed on a client device, which uses a specific protocol to communicate with a client device that is executing the reference Figure 3 The server of the described method 300 has a wireless connection.The method 400 may begin at block 402.

[0108] In block 402, a signal quality of a wireless signal from a server and a physical device state of the client device are determined at the client device. For example, for signal quality, the client device may determine the signal power of the wireless signal from the server. The client device may also or alternatively determine a data throughput rate and other signal characteristics of data received from the server via the wireless signal. Other characteristics of the wireless signal may be determined in various embodiments to determine signal quality.

[0109] Regarding the physical device state, if the client device includes appropriate sensors as described in the examples above, the position, angle, and / or movement of the client device can be determined. For example, if the client device includes one or more of these sensors, a motion sensor such as an accelerometer and / or a gyroscope can sense client device motion. If the client device includes a camera, captured images can indicate the motion or position of the client device. The method continues to block 404.

[0110] In block 404, a signal quality indicator is determined based on the signal quality of block 404 and is sent to the server. For example, the client device may determine the RSSI and / or LQI indicator based on signal power, data throughput rate, etc. Other signal indicators may also be determined. In some embodiments, the signal quality indicator is periodically determined and sent to the server in blocks 402 and 404 while a wireless connection using a specific protocol exists between the client device and the server.

[0111] A physical state indicator may be determined based on the physical device state determined in block 404. For example, the indicator may include a value indicating the amount of motion of the client device (e.g., distance moved or angle rotated), and / or a value indicating the client device's current environment (e.g., a user's hand or ear, or a user's pocket). The physical device state indicator may be periodically transmitted to the server along with the signal quality indicator. In some embodiments, the physical device state indicator may be transmitted to the server in response to a threshold change in the device's physical state. For example, the threshold change may be the client device moving greater than a threshold distance or rotating greater than a threshold angle. In some embodiments, the client device may also transmit the client device's physical connection state to the server in block 404, e.g., indicating which peripheral devices are connected to the client device and the client device's physical connector or port used for connection. In some embodiments, the client device may also transmit the client device's wireless communication state to the server in block 404, e.g., indicating the client device's current communication mode, such as transmit (TX) mode, receive (RX) mode, or transceiver (TX and RX) mode. The method continues to block 406.

[0112] In block 406, it is determined whether the client device has received a test message of a specific protocol from the server requesting a signal quality indicator. Figure 3 As described in block 312 of FIGURE 3, the server configures a test message based on the selected transmission scheme for the client device and sends the test message to the client device. If the test message has not been received, the method continues to block 402 to (e.g., periodically) determine the signal quality, as described above. If the test message has been received, the method continues to block 408.

[0113] In block 408, the client device determines the signal quality of the received test message. Similar to the above example, RSSI and / or LQI indicators can be determined for the test message, including determining the power level and data throughput rate of the message signal. In some embodiments, if the client device includes appropriate sensors, the physical device state can also be determined when receiving the server test message, such as the movement, position, or angle of the client device in space, and / or the current environment of the client device (e.g., held in hand, in ear, or in pocket). The method continues to block 410.

[0114] In block 410, a reply message is sent to the server including the signal quality indicator determined in block 408. If a physical device status was also determined in block 408, it may also be sent to the server in block 410. The method continues to block 412.

[0115] In block 412, a wireless signal is received from a server according to a specific protocol. Figure 3 As described, the wireless signal has been transmitted by the server as configured by the selected transmission scheme. In some embodiments, after or during the reception of the signal at block 412, the method may continue to block 402 to determine the signal quality of the wireless signal and send a signal quality indicator (and / or the physical device status of the client device) to the server (e.g., periodically), as described above.

[0116] Where appropriate, the methods, blocks, and operations described herein may be performed in an order different from that shown or described, and / or performed simultaneously (partially or completely) with other blocks or operations. Some blocks or operations may be performed for a portion of data, and some blocks or operations may be performed again later, for example, for another portion of data. Not all of the blocks and operations described need to be performed in various embodiments. In some embodiments, blocks and operations may be performed multiple times, in different orders, and / or at different times in the method.

[0117] One or more methods disclosed herein may operate in a number of environments and platforms, for example, as a stand-alone computer program that can run on any type of computing device, as a mobile application ("app") running on a mobile computing device, and so on.

[0118] One or more of the methods described herein can be executed in a standalone program that can be executed on any type of computing device, a program that runs on a web browser, a mobile application ("app") that runs on a mobile computing device (e.g., a cell phone, a smartphone, a tablet computer, a wearable device (a wristwatch, an armband, jewelry, headwear, virtual reality goggles or glasses, augmented reality goggles or glasses, etc.), a laptop computer, etc. In one example, a client / server architecture can be used, for example, where a mobile computing device (as a client device) sends user input data to a server device and receives final output data from the server for output (e.g., for display). In another example, all computations for the method can be performed within the mobile app (and / or other apps) on the mobile computing device. In another example, computations can be split between the mobile computing device and one or more server devices.

[0119] The methods described herein can be implemented by computer program instructions or codes that can be executed on a computer. For example, the code can be implemented by one or more digital processors (e.g., microprocessors or other processing circuits) and can be stored on a computer program product that includes a non-transitory computer-readable medium (e.g., storage medium), such as a magnetic, optical, electromagnetic or semiconductor storage medium, including semiconductor or solid-state memory, magnetic tape, removable computer disk, random access memory (RAM), read-only memory (ROM), flash memory, rigid disk, optical disk, solid-state memory drive, etc. The program instructions can also be contained in an electronic signal and provided as an electronic signal, for example in the form of software as a service (SaaS) delivered from a server (e.g., a distributed system and / or cloud computing system). Alternatively, one or more methods can be implemented in hardware (logic gates, etc.) or in a combination of hardware and software. Exemplary hardware can be a programmable processor (e.g., a field programmable gate array (FPGA), a complex programmable logic device), a general-purpose processor, a graphics processor, an application-specific integrated circuit (ASIC), etc. One or more methods can be performed as part or component of an application running on a system, or as an application or software running in combination with other applications and an operating system.

[0120] Figure 5 is a diagram of an exemplary list 500 of transmission schemes that may be used to configure wireless communications between devices according to some embodiments. Schemes such as those provided in list 500 may be used in one or more embodiments described herein.

[0121] In this example, list 500 includes multiple transmission schemes that have been retrieved or generated by the server for three client devices that have wireless connections to the server according to a specific protocol (e.g., Bluetooth protocol). Each scheme is associated with five transmission characteristics of the wireless signal transmitted based on the scheme, and the transmission characteristics can be changed by changing their values ​​to produce different schemes. In this example, these transmission characteristics are antenna ID, tuning parameters, transmit (TX) power, circuit path, and bit rate.

[0122] Client device 1 is associated with a set of three transmission schemes 502a, 502b, and 502c (collectively, schemes 502) in list 500. These transmission schemes are retrieved and / or generated for use in sending server test messages to client device 1. For example, scheme 502a specifies characteristics including antenna 1 (of the server's two available antennas), tuning parameter #0, high transmit power, circuit path A, and a high bit rate. Scheme 502b specifies the same antenna characteristics as scheme 502a, but differs from scheme 502a in other characteristics, including tuning parameter #1, medium transmit power, circuit path B, and a medium bit rate. Scheme 502c specifies the same circuit path as scheme 502a, and the same transmit power and bit rate as scheme 502b, but specifies antenna 2 and tuning parameter #2, which differ from schemes 502a and 502b. When tested in the test message, each solution receives a reply message that includes the RSSI and LQI signal quality indicators associated with that solution, as shown in table 500. In some embodiments, these indicators can be stored and compared with the corresponding indicators received for the other solutions in the group. The solution that produces the highest signal quality indicator is selected as the designated solution for Client Device 1. In this example, solution 502b is found to provide the highest signal quality and is selected as the designated transmission solution for Client Device 1.

[0123] In some embodiments, scenarios can be generated by randomly adjusting the values ​​of one or more characteristics in each of the different scenarios in a list, and all scenarios in the set can be tested and their response messages compared to determine which scenario generates the highest quality wireless signal. In some embodiments, some scenarios can be generated based on or in response to response messages received from client devices for the scenarios being tested. For example, scenario 502a can be the default initial scenario tested before generating scenarios 502b and 502c. Scenarios 502a result in response messages indicating low signal quality (e.g., below an RSSI threshold and / or LQI threshold). For example, the transmitted test message may have too high a power (e.g., the signal may interfere with different wireless signals of different protocols), so in the next generated scenarios 502b and 502c, the transmit power is reduced to an intermediate level. For the next scenarios 502b and 502c, the bit rate is also reduced to an intermediate speed. In scenario 502c, different antennas are used to transmit the signal. The tuning parameters are varied for each scenario to test different tuning arrangements of the antennas used. After testing scenarios 502b and 502c, it is determined that scenario 502b provides the highest signal quality to the client device.

[0124] Client device 2 is associated with a set of two transmission schemes 504a and 504b in list 500. For example, scheme 504a specifies the characteristics of antenna 1, tuning parameter #2, high transmit power, circuit path C, and a high bit rate. Scheme 504b specifies different transmission characteristics from scheme 504a, including tuning parameter #3, intermediate level transmit power, circuit path D, and an intermediate speed bit rate. When tested in a test message, each scheme receives a reply message that includes the RSSI and LQI signal quality indicators associated with that scheme, as shown in list 500. In this example, both schemes 504a and 504b were generated and tested, and scheme 504b was found to provide the highest signal quality of the two schemes and was selected as the designated transmission scheme for Client device 2.

[0125] Client device 3 is associated with a set of two transmission schemes 506a and 506b in list 500. For example, scheme 506a specifies the characteristics of antenna 2, tuning parameter #1, medium-level transmit power, circuit path A, and medium-speed bit rate. Scheme 506b has some transmission characteristics that differ from scheme 506a, including antenna 1, tuning parameter #2, and circuit path C. In this example, both schemes 506a and 506b were generated and tested, and scheme 506a was found to provide the highest signal quality of the two schemes and was selected as the designated transmission scheme for Client device 3.

[0126] In some embodiments, some or all of the methods may be implemented on a system such as one or more client devices. In some embodiments, one or more of the methods described herein may be implemented, for example, on a server system and / or on both a server system and a client system. In some embodiments, different components of one or more servers and / or clients may perform different blocks, operations, or other portions of the methods.

[0127] Figure 6 is a block diagram of an exemplary device 600 that can be used to implement one or more features described herein. In one example, device 600 can be used to implement a computer device, such as a server (e.g., Figure 1 In some embodiments, the device 600 may be a client device for implementing and / or using with the features described herein, for example, Figure 1 126. Device 600 may be any suitable computer system, server, or other electronic or hardware device. For example, device 600 may be a mainframe computer, a desktop computer, a workstation, a portable computer, a portable device, a mobile device, a cellular phone, a smartphone, a tablet computer, a television, a TV set-top box, a personal digital assistant (PDA), a media player, a gaming device, a wearable device, or the like.

[0128] In some implementations, device 600 includes a processor 602 , memory 604 , and an input / output (I / O) interface 606 .

[0129] Processor 602 may be one or more processors and / or processing circuitry for executing program code and controlling the basic operations of device 600. A "processor" includes any suitable hardware and / or software system, mechanism, or component that processes data, signals, or other information. A processor may include a system having a general-purpose central processing unit (CPU), multiple processing units, dedicated circuitry for implementing functionality, or other systems. Processing need not be limited to a specific geographic location or have time constraints. For example, a processor may perform its functions in "real time," "offline," in "batch mode," and the like. Portions of a processing may be performed by different (or the same) processing systems at different times and in different locations. A computer may be any processor in communication with a memory.

[0130] Memory 604 is generally provided in the device 600 for access by the processor 602 and can be any suitable processor-readable storage medium, such as random access memory (RAM), read-only memory (ROM), electrically erasable read-only memory (EEPROM), flash memory, etc., which is suitable for storing instructions executed by the processor and is located separately from and / or integrated with the processor 602. The memory 604 can store software operated by the processor 602 on the server device 600, including an operating system 608, one or more applications 610, and application data 620. In some embodiments, the applications 610 can include software that enables the processor 602 to perform the functions described herein (e.g., Figure 3 or Figure 4 The application data 620 may include data used by the application 610.

[0131] Any software in memory 604 may alternatively be stored on any other suitable storage location or computer-readable medium. Additionally, memory 604 (and / or other connected storage devices) may store drivers, firmware, signal quality indicators, sensor data, user data and preferences, and other instructions and data used in the features described herein. Memory 604 and any other type of storage (disk, optical disk, tape, or other tangible medium) may be considered "storage" or "storage devices."

[0132] The I / O interface 606 can provide the function that enables device 600 to dock with other systems and devices.Interface device can be included as a part of device 600, or can be independent and communicate with device 600.For example, network communication equipment, storage device (for example, memory and / or database 106) and input / output device can communicate via I / O interface 606.In some embodiments, I / O interface can be connected to interface device, such as input device (keyboard, pointing device, touch screen, microphone, camera, scanner, sensor, etc.) and / or output device (display device, speaker device, printer, motor, etc.).Some examples of interface device include one or more cameras that can capture image.Some embodiments can provide for capturing sound (for example, as a part of captured image, voice command, etc.) microphone, for outputting sound audio speaker device or other input and output device.

[0133] The additional examples of the interface devices that can be connected to I / O interface 606 can include one or more display devices 632, which can be used to display content, such as images, videos and / or the user interface of output applications as described herein.Display device 632 can be connected to device 600 via local connection (e.g., display bus) and / or via network connection, and can be any suitable display device.Display device 632 can include any suitable display device, such as LCD, LED or plasma display screen, CRT, television, monitor, touch screen, 3-D display screen, projector or other visual display devices.For example, display device 632 can be a flat display screen arranged on a mobile device, a plurality of display screens arranged in a goggle device or a monitor screen for a computer device.

[0134] In various examples, the application 610 stored in the memory 604 may include a display application that can display video or image data in a graphical user interface of the device, wherein the user interface can receive user input to scroll or otherwise change the displayed content. Other applications may be included in the application 610 (e.g., a communication application, a web browser application, a media display application, a web hosting engine or application, a social networking engine or application, etc.). In some examples, the device 600 can be a server, and the application 610 includes a scheme builder (e.g., scheme builder 210) for selecting or generating a transmission scheme, and the application data 620 includes a transmission scheme and a transmission feature value. In another example, the device 600 is a client device, and the application 610 includes a responder (e.g., responder 236) that provides a response message in response to a test message as described herein.

[0135] In some embodiments, application 610 may include machine learning application 612. In some examples, machine learning application 612 may include one or more named entity recognition (NER) implementations that may use supervised and / or unsupervised learning. Machine learning models may include models based on multi-task learning, residual task bidirectional LSTM (long short-term memory) with conditional random fields, statistical NER, and the like. In various embodiments, machine learning application 612 may utilize Bayesian classifiers, support vector machines, neural networks, or other learning techniques. In some embodiments, machine learning application 612 may include a trained model, an inference engine, and data, such as training data used to generate the trained model. For example, the training data may include any type of data suitable for training a model to determine transmission characteristics of a transmission scheme, etc. The training data may be obtained from any source, such as a data repository specifically labeled for training, data licensed for use as training data for machine learning, and the like. In embodiments where one or more users allow their respective user data to be used to train the trained model, the training data may include such user data. In embodiments where users grant permission for the use of their respective user data, the training data may include licensed data.

[0136] In some embodiments, the training data may include synthetic data generated for the purpose of training, such as data that is not based on user input or activity in the context of training, for example, data generated by test transmissions of wireless signals. In some embodiments, the machine learning application 612 excludes the training data. For example, in these embodiments, the training model may be generated, for example, on a different device, and provided as part of the machine learning application 612. In various embodiments, the trained model may be provided as a data file that includes a model structure or form and associated weights. The inference engine may read the data file for the trained model and implement a neural network with node connectivity, layers, and weights based on the model structure or form specified in the trained model.

[0137] In some embodiments, the training model 612 may include one or more model forms or structures. For example, the model form or structure may include any type of neural network, such as a linear network, a deep neural network implementing multiple layers (e.g., a "hidden layer" between the input layer and the output layer, where each layer is a linear network), a convolutional neural network (e.g., a network that splits or divides input data into multiple parts or tiles, processes each tile separately using one or more neural network layers, and aggregates the results from the processing of each tile), a sequence-to-sequence neural network (e.g., a network that takes sequential data (such as words in a sentence, frames in a video, etc.) as input and produces a sequence of results as output), etc. The model form or structure may specify the connectivity between various nodes and the organization of the nodes into layers. The output layer produces the output of the machine learning application. For example, depending on the specific training model, the output may be a transmission scheme or transmission characteristics, etc. In some embodiments, the model form or structure also specifies the number and / or type of nodes in each layer.

[0138] In various embodiments, a trained model may include multiple nodes arranged into layers according to a model structure or form. In some embodiments, a node may be a computational node without memory, for example, configured to process the input of a unit to produce the output of a unit. The computation performed by the node may include, for example, multiplying each of the multiple node inputs by a weight to obtain a weighted sum, and adjusting the weighted sum using a bias or intercept value to produce the node output. In some embodiments, the computation performed by the node may also include applying a step / activation function to the adjusted weighted sum. In some embodiments, the step / activation function may be a nonlinear function. In various embodiments, such computation may include operations such as matrix multiplication. In some embodiments, computations for multiple nodes may be performed in parallel, for example, using multiple processor cores of a multi-core processor, separate processing units of a GPU, or dedicated neural circuits. In some embodiments, a node may include memory, for example, to enable storage and use of one or more earlier inputs when processing subsequent inputs. For example, a node with memory may include a long short-term memory (LSTM) node. An LSTM node may use memory to maintain a "state" that allows the node to function like a finite state machine (FSM).

[0139] In some embodiments, a trained model may include embeddings or weights for individual nodes. For example, a model may be initialized as a plurality of nodes organized into layers specified by a model form or structure. Upon initialization, corresponding weights may be applied to the connections between each pair of nodes connected according to the model form (e.g., nodes in successive layers of a neural network). For example, corresponding weights may be randomly assigned or initialized to default values. The model may then be trained, for example, using training data, to produce results.

[0140] For example, training can include applying supervised learning techniques. In supervised learning, the training data can include multiple inputs (e.g., a set of signal quality indicators, server and client device states and characteristics, etc.) and corresponding expected outputs for each input (e.g., one or more transmission characteristics of a transmission scheme). Based on a comparison of the model's outputs with the expected outputs, the values ​​of the weights are automatically adjusted, for example, in a manner that increases the probability that the model will produce the expected output when similar inputs are provided.

[0141] In some embodiments, training may include applying unsupervised learning techniques. In unsupervised learning, only input data may be provided, and a model may be trained to distinguish the data, for example, clustering the input data into a plurality of groups, where each group includes input data that is similar in some manner. For example, a model may be trained to identify transmission characteristics associated with higher reliability wireless signals and / or select thresholds for determining or classifying transmission characteristics. In some embodiments, unsupervised learning may be used to generate a knowledge representation that may be used, for example, by the machine learning application 612. In various embodiments, the trained model includes a set of weights or embeddings corresponding to the model structure. In embodiments where training data is omitted, the machine learning application 612 may include a training model based on previous training performed, for example, by the developer of the machine learning application 612, by a third party, or the like. In some embodiments, the training model may include a fixed set of weights, for example, downloaded from a server that provides the weights.

[0142] The machine learning application 612 also includes an inference engine that is configured to apply the trained model to the data to provide reasoning. In some embodiments, the inference engine may include software code to be executed by the processor 602. In some embodiments, the inference engine may specify a circuit configuration (e.g., for a programmable processor, for a field programmable gate array (FPGA), etc.) that enables the processor 602 to apply the trained model. In some embodiments, the inference engine may include software instructions, hardware instructions, or a combination. In some embodiments, the inference engine may provide an application programming interface (API) that can be used by the operating system 608 and / or other applications 610 to call the inference engine, for example, to apply the trained model to the obtained data to generate reasoning.

[0143] The machine learning application 612 can provide several technical advantages. For example, when a trained model is generated based on unsupervised learning, the inference engine can apply the trained model to generate a knowledge representation (e.g., a numerical representation) from the input data. For example, a model trained on a transmission scheme can generate transmission characteristics and confidence levels for the transmission scheme. In some embodiments, such a representation can help reduce processing costs (e.g., computational cost, memory usage, etc.) to generate an output (e.g., a transmission scheme for use). In some embodiments, such a representation can be provided as input to a different machine learning application, which generates output from the output of the inference engine.

[0144] In some embodiments, the machine learning application 612 can be implemented in an offline manner. In these embodiments, a training model can be generated in a first phase and provided as part of the machine learning application 612. In some embodiments, the machine learning application 612 can be implemented in an online manner. For example, in such an embodiment, an application that calls the machine learning application 612 (e.g., one or more of the operating system 608, the application 610) can utilize the reasoning generated by the machine learning application 612, for example, to provide the reasoning to the user, and a system log can be generated (e.g., if the user permits, then the actions taken by the user are generated based on the reasoning, or if used as input for further processing, then the results of the further processing are generated). The system log can be generated periodically and can be used to update the trained model with the user's permission, for example, to update the embedding of the trained model.

[0145] In some implementations, the machine learning application 612 can be implemented in a manner that can adapt to the particular configuration of the device 600 on which the machine learning application 612 is executed. For example, the machine learning application 612 can determine a computation graph that utilizes available computing resources (e.g., the processor 602).

[0146] In some embodiments, the machine learning application 612 can implement an ensemble of trained models. For example, the trained models can include multiple trained models that are each applicable to the same input data. In these embodiments, the machine learning application 612 can select a particular training model, for example, based on available computing resources, the success rate of previous inferences, etc. In some embodiments, the machine learning application 612 can execute an inference engine that applies multiple training models. In these embodiments, the machine learning application 612 can combine the outputs from applying the individual models, for example, using a voting technique that scores the individual outputs from applying each training model, or by selecting one or more specific outputs.

[0147] For ease of explanation, Figure 6A block for each of processor 602, memory 604, I / O interface 606 and software blocks 608, 610 and 620 is shown. These blocks can represent one or more processors or processing circuits, operating systems, memories, I / O interfaces, applications and / or software modules. In other embodiments, device 600 may not have all the components shown and / or may have other elements, including elements of other types replacing or in addition to those shown herein. Although some components are described as performing the blocks and operations described in some embodiments herein, any suitable component or combination of components of any suitable one or more processors associated with network environment 100, device 600, similar systems or such systems can perform the described blocks and operations.

[0148] While the specification has been described with reference to specific embodiments, these specific embodiments are merely illustrative and not restrictive. The concepts illustrated in the examples can be applied to other examples and embodiments.

[0149] In addition to the above, controls may be provided to the user that allow the user to choose whether and when the systems, programs, or features described herein may enable the collection of user information (e.g., information about the user's social network, social actions or activities, occupation, preferences of the user, or the current location of the user or user's device) and whether to send content or communications from a server to the user. Additionally, certain data may be processed in one or more ways before it is stored or used so that personally identifiable information is removed. For example, the user's identity may be processed so that personally identifiable information about the user cannot be determined, or the user's geographic location for which location information is obtained may be generalized (such as to a city, zip code, or state level) so that the user's specific location cannot be determined. Thus, the user can control what information is collected about the user, how that information is used, and what information is provided to the user.

[0150] Note that, as will be known to those skilled in the art, the functional blocks, operations, features, methods, devices, and systems described in this disclosure can be integrated or divided into different combinations of systems, devices, and functional blocks. Any suitable programming language and programming technique can be used to implement the routines of a particular embodiment. Different programming techniques can be adopted, such as process-oriented or object-oriented. The routines can be executed on a single processing device or multiple processors. Although steps, operations, or calculations can be presented in a particular order, the order can be changed in different specific embodiments. In some embodiments, multiple steps or operations shown in sequence in this specification can be performed simultaneously.

Claims

1. A computer-implemented method comprising: determining a first transmission scheme associated with transmitting a wireless signal of a particular wireless communication protocol from a first device to a second device, the first transmission scheme specifying one or more first transmission characteristics for the transmission of the wireless signal, wherein determining the first transmission scheme comprises determining the one or more first transmission characteristics based on a state of the first device, the state of the first device comprising at least one of the following: A peripheral device is connected to the first device via a physical connector, and using one or more antennas of the first device via a second wireless communication protocol different from the particular wireless communication protocol, or a spatial state of the first device, wherein the spatial state comprises at least one of: a movement or orientation of the first device in space; wirelessly sending a first test message from the first device to the second device based on the one or more first transmission characteristics of the first transmission scheme; receiving a first reply message from the second device in response to sending the first test message, the first reply message including one or more first signal quality indicators indicating a signal quality of the first test message; selecting the first transmission scheme as a designated scheme based on the one or more first signal quality indicators; and Data is caused to be wirelessly transmitted from the first device to the second device via the wireless signal based on the one or more first transmission characteristics of the specified scheme.

2. The method according to claim 1, wherein Selecting the first transmission scheme as the designated scheme includes determining that each of the one or more first signal quality indicators meets or exceeds a corresponding threshold.

3. The method according to claim 1, further comprising: Detecting a threshold change in position or motion of at least one of the first device and the second device, wherein the threshold change is at least one of: movement of a threshold distance, rotation or tilt of a threshold angle, or movement of a threshold speed, and wherein determining the first transmission scheme is in response to detecting the threshold change.

4. The method of claim 1 , further comprising detecting a change in a state of a wireless connection between the first device and the second device, wherein The change in status comprises a decrease in signal quality of the wireless signal received by the second device, and wherein determining the first transmission scheme is in response to detecting the change in status of the wireless connection.

5. The method according to claim 1, further comprising: determining a second transmission scheme specifying one or more second transmission characteristics, wherein at least one second transmission characteristic of the second transmission scheme has a different value than a corresponding at least one first transmission characteristic of the first transmission scheme; sending a second test message from the first device to the second device based on the one or more second transmission characteristics of the second transmission scheme; and receiving a second reply message from the second device in response to sending the second test message, the second reply message including one or more second signal quality indicators, Wherein, selecting the first transmission scheme as the designated scheme includes comparing the one or more first signal quality indicators with the one or more second signal quality indicators.

6. The method according to claim 5, wherein: Determining the first transmission scheme is subsequent to determining the second transmission scheme and is in response to at least one of the one or more second signal quality indicators being below a corresponding threshold.

7. The method according to claim 1, further comprising: determining a set of transmission schemes associated with transmitting wireless signals of the particular wireless communication protocol from the first device to the second device, each transmission scheme in the set of transmission schemes specifying at least one transmission characteristic that is different from other transmission schemes in the set of transmission schemes, The determining of the first transmission scheme includes selecting the first transmission scheme from the group of transmission schemes.

8. The method according to claim 7, wherein: The set of transmission schemes is a first set of transmission schemes, and the method further comprises: determining a second set of transmission schemes associated with transmitting wireless signals of the particular wireless communication protocol from the first device to a third device, each transmission scheme in the second set of transmission schemes indicating at least one transmission characteristic that is different from other transmission schemes in the second set of transmission schemes; selecting a third transmission scheme from the second group of transmission schemes; sending a third test message from the first device to the third device according to the third transmission scheme; receiving a third reply message from the third device in response to sending the third test message, the third reply message including one or more third signal quality indicators; selecting the third transmission scheme as a second designated scheme based on the one or more third signal quality indicators; and The second data is wirelessly transmitted from the first device to the third device according to the second specified scheme.

9. The method according to claim 1, wherein The one or more first transmission characteristics include a specific antenna among multiple antennas of the first device, and the wireless signal will be transmitted from the first device to the second device via the specific antenna, wherein sending the first test message includes sending the first test message using the specific antenna, and wherein causing the data to be wirelessly transmitted from the first device to the second device via the wireless signal based on the one or more first transmission characteristics of the specified scheme includes: selecting the specific antenna to transmit the data in the wireless signal from the first device to the second device.

10. The method according to claim 1, wherein The one or more first transmission characteristics comprise values ​​of tuning parameters of an antenna of the first device that transmits the wireless signal from the first device to the second device, wherein sending the first test message comprises sending the first test message using the values ​​of the tuning parameters, and wherein causing the data to be wirelessly transmitted from the first device to the second device via the wireless signal based on the one or more first transmission characteristics of the specified scheme comprises: selecting the values ​​of the tuning parameters of the wireless signal; and / or wherein the one or more first transmission characteristics include a size of a bit rate for data transmission, wherein sending the first test message includes sending the first test message using the size of the bit rate for data transmission, and wherein causing the data to be wirelessly transmitted from the first device to the second device via the wireless signal based on the one or more first transmission characteristics of the specified scheme includes: selecting the size of the bit rate for the wirelessly transmitted data; and / or wherein the one or more first transmission characteristics include a specific hardware circuit path among a plurality of hardware circuit paths of the first device, the wireless signal is to be transmitted from the first device to the second device via the specific hardware circuit path, wherein sending the first test message includes sending the first test message using the specific hardware circuit path, and wherein causing the data to be wirelessly transmitted from the first device to the second device via the wireless signal based on the one or more first transmission characteristics of the specified scheme includes: selecting the specific hardware circuit path of the wireless signal; and / or wherein the one or more first transmission characteristics include a magnitude of a power level of the wireless signal to be transmitted from the first device to the second device, wherein sending the first test message includes sending the first test message using the magnitude of the power level, and wherein causing the data to be wirelessly transmitted from the first device to the second device via the wireless signal based on the one or more first transmission characteristics of the specified scheme includes selecting the magnitude of the power level of the wireless signal.

11. The method according to claim 1, wherein The one or more first signal quality indicators include at least one of the following: a received signal strength indicator (RSSI) indicating a power level or a signal-to-noise ratio of the first test message received at the second device; as well as A link quality indicator (LQI) indicating a data throughput rate of the first test message.

12. The method according to any one of claims 1 to 11, wherein The specific wireless communication protocol is the Bluetooth wireless communication protocol standard.

13. A communication device comprising: one or more antennas; a memory for storing instructions; At least one processor is coupled to the one or more antennas and the memory, the at least one processor being configured to cause the communication device to perform the method according to any one of claims 1 to 12.

14. A non-transitory computer-readable storage medium having software instructions stored thereon, the software instructions, when executed by a processor, causing the processor to perform the method according to any one of claims 1 to 12.

Citation Information

Patent Citations

  • Techniques for signaling QOS class indicators

    CN111869260A

  • Access point multi-level transmission power and protocol control based on the exchange of characteristics

    US20070238417A1