# Patent

## Title
Integration of add-on interior modules into driver user interface

## Abstract

A listing of wireless in-vehicle components installed to a vehicle may be maintained by the vehicle. The listing may include in-vehicle components that are factory-installed to the vehicle as well as add-on in-vehicle components that may be added or removed by a user. A wireless transceiver may scan for changes to the add-on in-vehicle components within the vehicle. A user interface may display a unified interface including both the factory-installed wireless in-vehicle components and the add-on wireless in-vehicle components. A user may review and adjust the configuration of the in-vehicle components of the in-vehicle components using the user interface.

## Background
TECHNICAL FIELD
Aspects of the disclosure generally relate to integration of add-on interior modules for the user interface of a head unit or other vehicle interface.
BACKGROUND
Sales of personal devices, such as smartphones and wearables, continue to increase. Thus, more personal devices are brought by users into the automotive context. Smartphones can already be used in some vehicle models to access a wide range of vehicle information, to start the vehicle, and to open windows and doors. Some wearables are capable of providing real-time navigation information to the driver. Device manufacturers are implementing frameworks to enable a more seamless integration of their brand of personal devices into the driving experience.
BLUETOOTH technology may be included in various user devices to allow the devices to communicate with one another. BLUETOOTH low energy (BLE) is another wireless technology designed to provide for communication of data between devices. As compared to BLUETOOTH, BLE offers communication of smaller amounts of data with reduced power consumption.
BLE devices may perform the roles of central device or peripheral device. Central devices wirelessly scan for advertisements by peripheral devices, while peripheral devices make the advertisements. Once the peripheral device connects to the central device, the peripheral device may discontinue the advertisement, such that other central devices may no longer be able to wirelessly identify it or connect to it until the existing connection is terminated.
BLE devices transfer data using concepts referred to as services and characteristics. Services are collections of characteristics. A central device may connect to and access one or more of the characteristics of a service of a peripheral device. Characteristics encapsulate a single value or data type having one or more bytes of data as well as zero or more descriptors that describe the value of the characteristic. The descriptors may include information such as human-readable descriptions, a range for the value of the characteristic, or a unit of measure of the value of the characteristics. A Service Discovery Protocol (SDP) may allow a device to discover services offered by other devices and their associated parameters. The services may be identified by universally unique identifiers (UUIDs).
SUMMARY
In a first illustrative embodiment, a system includes a display integrated into a vehicle; a wireless transceiver; and a processor, coupled to the display and transceiver, programmed to maintain a list of wireless factory-installed in-vehicle components, scan for add-on wireless in-vehicle components within the vehicle using the wireless transceiver, generate a user interface listing both the factory-installed wireless in-vehicle components and the add-on wireless in-vehicle components, and provide the listing to the display.
In a second illustrative embodiment, a method includes maintaining an in-vehicle component listing including factory-installed components and add-on components added after a vehicle is built; scanning, using a wireless transceiver, for add-on in-vehicle components within the vehicle; removing a first add-on wireless in-vehicle component from the listing responsive to failure to locate the first in-vehicle component during the scanning; and adding a second add-on wireless in-vehicle component to the listing located during the scanning.
In a third illustrative embodiment, a computer program product embodied in non-transitory computer readable storage having instructions for programming a processor of a vehicle in communication with a wireless transceiver to control a display, including instructions for maintaining a list of installed in-vehicle components, scanning for current in-vehicle components within the vehicle using the wireless transceiver, updating the list based on the scanning, and sending, to the display, a generated user interface listing of the current in-vehicle components.



BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1A illustrates an illustrates an example system including a vehicle having a mesh of in-vehicle components configured to interact with a vehicle computing system;
FIG. 1B illustrates an example vehicle computing system equipped with a wireless transceiver configured to facilitate detection of and communication with in-vehicle components;
FIGS. 2A and 2B illustrate an example removable add-on in-vehicle component;
FIG. 3 illustrates an example user interface for selection of applications for use on a display of the vehicle computing system;
FIG. 4A illustrates an example user interface of the vehicle component interface application illustrating in-vehicle components detected by the vehicle computing system;
FIG. 4B illustrates an example user interface for control of a factory-installed in-vehicle component;
FIG. 4C illustrates an example user interface for control of an add-on in-vehicle component;
FIG. 5 illustrates an example process for scanning for in-vehicle components by the vehicle computing system; and
FIG. 6 illustrates an example process for displaying the user interface for control of the in-vehicle components.



DETAILED DESCRIPTION
As required, detailed embodiments of the present invention are disclosed herein; however, it is to be understood that the disclosed embodiments are merely exemplary of the invention that may be embodied in various and alternative forms. The figures are not necessarily to scale; some features may be exaggerated or minimized to show details of particular components. Therefore, specific structural and functional details disclosed herein are not to be interpreted as limiting, but merely as a representative basis for teaching one skilled in the art to variously employ the present invention.
Traditional vehicle interior components, such as reading lights or speakers, may be updated to incorporate a communication interface such as BLE. As BLE has a relatively low processor footprint, processors of the interior components may be able to integrate functionality of the communication interface without requiring additional or more powerful processors. These enhanced components of the vehicle interior may be referred to as in-vehicle components.
The in-vehicle components may include components integrated into the vehicle at the factory. As some examples, factory-installed in-vehicle components may include overhead lights, speakers, and built-in headrest video screens. Additionally, the in-vehicle components may include after-market components that may be added to or removed from the vehicle by vehicle occupants. These removable in-vehicle components may include, as some examples, car seats with integrated vibrate or music functionality, or window shades with remote up-down functionality. As the in-vehicle components may be installed or removed, the in-vehicle components available within the vehicle may change over time.
A vehicle computing system may include a communication interface such as BLE. Using the communication interface, the vehicle computing system may be configured to discover, identify, and interact with the in-vehicle components located within the vehicle. The vehicle computing system may perform the discovery of in-vehicle components periodically. As some other examples, the vehicle computing system may perform the discovery in response to a user command to re-identify in-vehicle components, or upon anther trigger condition, such as entry of a vehicle occupant, upon vehicle key-on, or upon initialization of the vehicle computing system itself.
The vehicle computing system may further provide a user interface in which the configuration of the in-vehicle components may be reviewed and adjusted. Accordingly, by using information advertised by the in-vehicle modules, the vehicle computing system may be able to provide a dynamic user interface descriptive of the currently available in-vehicle modules and services. Moreover, by using connectivity such as BLE that does not require access to the vehicle bus, development of the in-vehicle components may be performed independent of development of the vehicle systems, and without the validation required for components that do access the vehicle bus.
FIG. 1A illustrates an example system 100 including a vehicle 102 having a mesh of in-vehicle components 106 configured to interact with a vehicle computing system 110. The system 100 may be configured to allow the users, such as vehicle occupants, to use the vehicle computing system 110 to seamlessly interact with the in-vehicle components 106 in the vehicle 102 or with any other framework-enabled vehicle 102.
The vehicle 102 may include various types of automobile, crossover utility vehicle (CUV), sport utility vehicle (SUV), truck, recreational vehicle (RV), boat, plane or other mobile machine for transporting people or goods. In many cases, the vehicle 102 may be powered by an internal combustion engine. As another possibility, the vehicle 102 may be a hybrid electric vehicle (HEV) powered by both an internal combustion engine and one or more electric motors, such as a series hybrid electric vehicle (SHEV), a parallel hybrid electrical vehicle (PHEV), or a parallel/series hybrid electric vehicle (PSHEV). As the type and configuration of vehicle 102 may vary, the capabilities of the vehicle 102 may correspondingly vary. As some other possibilities, vehicles 102 may have different capabilities with respect to passenger capacity, towing ability and capacity, and storage volume.
The personal devices 104-A, 104-B and 104-C (collectively 104) may include mobile devices of the users, and/or wearable devices of the users. The mobile devices may be any of various types of portable computing device, such as cellular phones, tablet computers, smart watches, laptop computers, portable music players, or other devices capable of networked communication with other mobile devices. The wearable devices may include, as some non-limiting examples, smartwatches, smart glasses, fitness bands, control rings, or other personal mobility or accessory device designed to be worn and to communicate with the user's mobile device.
The in-vehicle components 106-A through 106-N (collectively 106) may include various elements of the vehicle 102 having user-configurable settings. These in-vehicle components 106 may include, as some examples, overhead light in-vehicle components 106-A through 106-D, climate control in-vehicle components 106-E and 106-F, seat control in-vehicle components 106-G through 106-J, and speaker in-vehicle components 106-K through 106-N. Other examples of in-vehicle components 106 are possible as well, such as rear seat entertainment screens or automated window shades. In many cases, the in-vehicle component 106 may expose controls such as buttons, sliders, and touchscreens that may be used by the user to configure the particular settings of the in-vehicle component 106. As some possibilities, the controls of the in-vehicle component 106 may allow the user to set a lighting level of a light control, set a temperature of a climate control, set a volume and source of audio for a speaker, and set a position of a seat.
The vehicle 102 interior may be divided into multiple zones 108, where each zone 108 may be associated with a seating position within the vehicle 102 interior. For instance, the front row of the illustrated vehicle 102 may include a first zone 108-A associated with the driver seating position, and a second zone 108-B associated with a front passenger seating position. The second row of the illustrated vehicle 102 may include a third zone 108-C associated with a driver-side rear seating position and a fourth zone 108-D associated with a passenger-side rear seating position. Variations on the number and arrangement of zones 108 are possible. For instance, an alternate second row may include an additional fifth zone 108 of a second-row middle seating position (not shown). Four occupants are illustrated as being inside the example vehicle 102, three of whom are using personal devices 104. A driver occupant in the zone 108-A is not using a personal device 104. A front passenger occupant in the zone 108-B is using the personal device 104-A. A rear driver-side passenger occupant in the zone 108-C is using the personal device 104-B. A rear passenger-side passenger occupant in the zone 108-D is using the personal device 104-C.
Each of the various in-vehicle components 106 present in the vehicle 102 interior may be associated with the one or more of the zones 108. As some examples, the in-vehicle components 106 may be associated with the zone 108 in which the respective in-vehicle component 106 is located and/or the one (or more) of the zones 108 that is controlled by the respective in-vehicle component 106. For instance, the light in-vehicle component 106-C accessible by the front passenger may be associated with the second zone 108-B, while the light in-vehicle component 106-D accessible by passenger-side rear may be associated with the fourth zone 108-D. It should be noted that the illustrated portion of the vehicle 102 in FIG. 1A is merely an example, and more, fewer, and/or differently located in-vehicle components 106 and zones 108 may be used.
The vehicle computing system 110 may be configured to provide telematics services to the vehicle 102. These services may include, as some non-limiting possibilities, navigation, turn-by-turn directions, vehicle health reports, local business search, accident reporting, and hands-free calling. In an example, the vehicle computing system 110 may include the SYNC system manufactured by The Ford Motor Company of Dearborn, Mich.
Referring to FIG. 1B, the vehicle computing system 110 may interface with a wireless transceiver 112 configured to communicate with the in-vehicle components 106 located within the vehicle 102. In an example, the wireless transceiver 112 may support communication over BLUETOOTH and/or BLE.
The vehicle computing system 110 may also receive input from human-machine interface (HMI) controls 114 configured to provide for occupant interaction with the vehicle 102. For instance, the vehicle computing system 110 may interface with one or more buttons or other HMI controls 114 configured to invoke functions on the vehicle computing system 110 (e.g., steering wheel audio buttons, a push-to-talk button, instrument panel controls, etc.). The vehicle computing system 110 may also drive or otherwise communicate with one or more displays 116 configured to provide visual output to vehicle occupants. In some cases, the display 116 may be a touch screen further configured to receive user touch input (e.g., operating as an HMI control 114), while in other cases the display 116 may be an output device only, without also having input capabilities.
The vehicle computing system 110 may be further configured to communicate with other components of the vehicle 102 via one or more in-vehicle networks. The in-vehicle networks may include one or more of a vehicle controller area network (CAN), an Ethernet network, and a media oriented system transfer (MOST), as some examples. The in-vehicle networks may allow the vehicle computing system 110 to communicate with other vehicle systems, such as a vehicle modem (which may not be present in some configurations), a global positioning system (GPS) module configured to provide current vehicle location and heading information, and various other vehicle controllers.
Each in-vehicle component 106 may also be equipped with a wireless transceiver 118. The wireless transceiver 118 may be configured to facilitate communication with the vehicle computing system 110. In an example, the wireless transceiver 118 may include a wireless device, such as a Bluetooth Low Energy transceiver. In an example, the wireless transceiver 112 of the vehicle computing system 110 may communicate data with the wireless transceiver 118 of the in-vehicle component 106 over a wireless connection 120. The wireless connections 120 may be a BLE connection, but other types of local wireless connection 120 may be utilized as well.
The vehicle component interface application 122 may be an application installed to the vehicle computing system 110. The vehicle component interface application 122 may be configured to facilitate vehicle occupant access to features of the in-vehicle components 106 exposed for networked configuration via the wireless transceiver 118. In some cases, the vehicle component interface application 122 may be configured to identify the available in-vehicle components 106, and maintain an in-vehicle component list 124 of the available in-vehicle components 106. In an example, the in-vehicle component list 124 may include a listing of factory-installed wireless in-vehicle components 106 as well as a listing of add-on wireless in-vehicle components 106 detected by the vehicle component interface application 122. The vehicle component interface application 122 may also be configured to identify the available features and current settings of the identified in-vehicle components 106. The vehicle component interface application 122 may be further configured to display a user interface descriptive of the available features of the in-vehicle components 106 on the in-vehicle component list 124, receive user input, and provide commands to the in-vehicle components 106 based on the user input to allow the user to control the features of the in-vehicle components 106. Thus, the system 100 may be configured to allow vehicle occupants to seamlessly interact with the in-vehicle components 106 in the vehicle 102.
The vehicle component interface application 122 executed by the vehicle computing system 110 may be configured to scan for and update the in-vehicle component list 124 of available in-vehicle components 106. As some examples, the scanning may be performed periodically, responsive to a user request to refresh, or upon activation of the vehicle component interface application 122. In examples where the scanning is performed automatically, the correct set of functionality is continuously refreshed and the user interface of the vehicle component interface application 122 is updated to reflect the changes in installed or removed in-vehicle components 106.
FIGS. 2A and 2B illustrate an example removable add-on in-vehicle component 106. As shown in FIG. 2A, the removable in-vehicle component 106 is a smart-shade for attachment to a vehicle 102 window. The smart-shade in-vehicle component 106 may include a motor 202 for raising and lowering the shade, semi-rigid jointed side shafts 204 to stretch the shade fabric open and fold it closed, and stretchable anchors 206 to hold the shade in place. The smart-shade in-vehicle component 106 may further include a controller 208 programmed to direct the motor 202 to open and close.
As shown in the block diagram of FIG. 2B, the smart-shade may further include other components, such as an ultraviolet or other light sensor 210 configured to monitor light conditions and provide the light intensity information to the controller 208. The controller 208 may utilize controller logic 212 to allow the controller to automatically open and close the shade. For instance, the controller logic 212 may include a first light threshold level above which the controller 208 directs the motor 202 to close the shade, and a second light threshold level below which the controller 208 directs the motor 202 to open the shade. The controller 208 may also be programmed to direct the motor 202 in accordance with user input to controls 214 of the smart shade. The controls 214 may include, in an example, open and close buttons that, when selected, send signals to the controller 208 to direct the shade to raise or lower. The controller logic 212 may accordingly receive the signals from the controls 214 and command the motor 202 to raise or lower the shade. The controller 208 may also be programmed to receive wireless commands from the wireless transceiver 118 to control the shade, as well as to direct the wireless transceiver 118 to broadcast information regarding the available functions and current status of the smart-shade (e.g., open, close, etc.).
FIG. 3 illustrates an example user interface 300 for selection of applications for use on a head unit display 116 of the vehicle computing system 110. The head unit display 116 may be driven, for example, by a video connection to the vehicle computing system 110 of the vehicle 102. The user interface 300 may include a category listing 302 of one or more screen of content to be displayed in the main screen area 304 of the head unit display 116. As some examples, the category listing 302 may include an audio screen from which configuration of vehicle 102 audio settings may be performed, a climate control screen from which vehicle 102 climate control settings may be configured, a phone screen from which calling services may be utilized, a navigation screen from which maps and routing may be performed, an applications screen from which installed applications may be invoked, and a settings screen from which backlighting or other general settings of the head unit display 116 may be accessed. The user interface 300 may also include a general information area 306 from which time, current temperature, and other information may remain visible to the user, regardless of the specific screen or application that is active in the main screen area 304.
As shown, the applications screen is illustrated as selected from the category listing 302, and the main screen area 304 is illustrated as showing a listing of available applications that may be invoked. These applications may include, for example, a find new apps application item 308-A, an internet radio item 308-B, a satellite radio item 308-C, a streaming radio item 308-D, an icon 308-E for selection of the vehicle component interface application 122, a maps item 308-F, a messages icon 308-G, and a weather icon 308-G. To invoke the vehicle component interface application 122 to control the in-vehicle components 106, the user may select the icon 308-E from the user interface 300.
FIG. 4A illustrates an example user interface 400-A of the vehicle component interface application 122 illustrating in-vehicle components 106 detected by the personal device 104. As shown, the user interface 400-A may be presented by the vehicle component interface application 122 on the display 116 of the vehicle computing system 110, and may include a listing 402 configured to display selectable list entries 404-A through 404-D (collectively 404) indicative of the identified in-vehicle components 106. Each of the selectable list entries 404 may indicate a detected in-vehicle component 106 family available for configuration by the user. Thus, the selectable list entries 404 may be based on the in-vehicle components 106 maintained by the vehicle computing system 110 on the in-vehicle component list 124. The user interface 400-A may also include a title label 406 to indicate to the user that the user interface 400-A is displaying a menu of in-vehicle components 106 as detected by the vehicle component interface application 122.
As illustrated, the listing 402 of the vehicle component interface application 122 includes an entry 404-A for a shade in-vehicle component 106 (e.g., such as described above with respect to FIGS. 2A and 2B), an entry 404-B for a light in-vehicle component 106, an entry 404-C for a seat in-vehicle component 106, and an entry 404-D for a climate control in-vehicle component 106. Notably, the listing 402 may include a unified listing of both factory-installed in-vehicle components 106 and add-on in-vehicle components 106. The listing 402 may operate as a menu, such that a user of the user interface 400-A may be able to scroll through list entries of the list control 402 (e.g., using up and down arrow buttons and a select button to invoke a selected menu item). In some cases, the list control 402 may be displayed on a touch screen such that the user may be able to touch the list control 402 to select and invoke a menu item. As another example, the user interface 400-A may support voice command selection of the menu items. For example, to invoke the options of the light in-vehicle component 106, the user may speak the voice command “LIGHT.” It should be noted that the illustrated entries 404 are merely examples, and more or different in-vehicle components 106 may be available.
FIG. 4B illustrates an example user interface 400-B for control of a factory-installed in-vehicle component 106. The user interface 400-B may be provided to the display 116 of the vehicle computing system 110. In an example, the user interface 400-B may display functions of a lighting in-vehicle component 106 responsive to user input to the entry 404-B in the user interface 400-A. The user interface 400-B may also include the title label 406 to indicate to the user that the user interface 400-B is displaying functions of the selected lighting in-vehicle component 106.
As shown, the user interface 400-B may include a listing 408 configured to display selectable controls 410-A through 410-C (collectively 410) based on the identified in-vehicle components 106 features. Each of the selectable controls 410 may indicate a function of the indicated in-vehicle component 106 that is available for configuration by the user. The user interface 400-B may also include a title label 308 to indicate to the user that the user interface 400-B is displaying a menu of functions of the indicated in-vehicle component 106. In some cases, when the title label 308 is selected the user interface 400-B may revert back to the user interface 300 allowing the user to return to the listing of currently active in-vehicle components 106.
As illustrated, the listing 408 includes a control 410-A for toggling on and off the light of the in-vehicle component 106, a control 410-B for specifying an intensity of the light in-vehicle component 106, and a control 410-C for specifying a color of the light of the in-vehicle component 106. The listing 408 may also provide for scrolling in cases where there are more controls 410 that may be visually represented in the display 116 at one time. In some cases, the control 410 may be displayed on a touch screen such that the user may be able to touch the controls 410 to make adjustments to the functions of the in-vehicle component 106. As another example, the user interface 400-B may support voice commands. For example, to toggle the light on, the user may speak the voice command “LIGHT ON,” or simply “ON.” It should be noted that the illustrated controls 410 are merely examples, and more or different functions or layouts of functions of the in-vehicle component 106 may be utilized.
It should be noted that while the controls 410 of the user interface 400-B include a toggle switch used to turn the light on and off, and two sliders used to adjust intensity and ambient color based on the characteristics, the actual physical in-vehicle component 106 may have a different user interface 400-B. For instance, the in-vehicle component 106 may include a simpler user interface, such as a single mechanical or proximity switch to turn the light on and off, so the occupant would not have to depend on use of the vehicle computing system 110 to utilize basic functionality of the in-vehicle component 106.
In some examples, the user interface 400-B may further include a zone interface 412 to allow a user of the display 116 to switch among the in-vehicle components 106 within different zones 108. As one possibility, the zone interface 412 may include a control 414-A for selection of a driver-side rear zone 108-C, and a control 414-B for selection of a passenger-side rear zone 108-D (collectively controls 414). Responsive to selection of one of the controls 414, the user interface 400-B may accordingly display the controls 410 of corresponding in-vehicle component 106 for the selected zone 108. For instance, if the light controls in the zone 108-C is currently being displayed and the user selects the control 414-B to display the corresponding control for the zone 108-D, the user interface 400-B may display the functions of the light control for the zone 108-D.
FIG. 4C illustrates an example user interface 400-C for control of an add-on in-vehicle component 106. As with the user interface 400-B, the user interface 400-C may also be provided to the display 116 of the vehicle computing system 110. In an example, the user interface 400-B may display functions of a shade in-vehicle component 106 responsive to user input to the entry 404-A in the user interface 400-A. The user interface 400-C may also include the title label 406 to indicate to the user that the user interface 400-C is displaying functions of the selected shade in-vehicle component 106. Thus, the vehicle component interface application 122 may provide for a consistent user interface across factory-installed and add-on in-vehicle components 106.
As illustrated, the listing 408 includes a control 410-A for toggling on and off the shade of the in-vehicle component 106, and a control 410-B for specifying a location of the shade (e.g., how far up or down the shade is to be placed). Responsive to user input to the control 410-A or control 410-B, the vehicle computing system 110 may wirelessly command the shade in-vehicle component 106. In an example, if the user selects to adjust the shade position using the control 410-B, the vehicle computing system 110 may utilize the wireless transceiver 112 to send a wireless command addressed to the wireless transceiver 118 of the shade in-vehicle component 106. The controller 208 of the shade in-vehicle component 106 may accordingly receive the command, and utilize the controller logic 212 to direct the motor 202 to raise or lower the shade to the desired position. Notably, these operations may be performed without requiring the vehicle computing system 110 or the shade in-vehicle component 106 to communicate with one another across the vehicle bus.
FIG. 5 illustrates an example process 500 for scanning for in-vehicle components 106 by the vehicle computing system 110. In an example, the process 500 may be performed by the vehicle computing system 110 executing the vehicle component interface application 122.
At operation 502, the vehicle computing system 110 performs scanning. In an example, a scanning service of the vehicle component interface application 122 executed by the vehicle computing system 110 may utilize the wireless transceiver 112 to scan for BLE advertisements. The triggering of the scanning may be performed periodically, in an example. As some other examples, the vehicle computing system 110 may perform the discovery in response to a user command to re-identify in-vehicle components 106, or upon anther trigger condition, such as entry of a vehicle 102 occupant, upon vehicle 102 key-on, or upon initialization of the vehicle computing system 110 and/or the vehicle component interface application 122. At 504, the vehicle computing system 110 determines whether any BLE modules are present. If so, control passes to operation 506. Otherwise control passes to operation 512.
At 506, the vehicle computing system 110 determines whether the detected BLE modules are in-vehicle components 106. In an example, when a module is found, the vehicle component interface application 122 parses the service UUID of the in-vehicle component 106 to determine whether the service UUID is indicative of an in-vehicle component 106. For instance, the vehicle component interface application 122 may identify whether the service UUID is within an identifier range associated with being an in-vehicle component 106. If the module is an in-vehicle component 106, control passes to operation 508. Otherwise, control passes to operation 502.
The vehicle computing system 110 determines whether the detected in-vehicle component 106 was detected previously at 508. For instance, the vehicle computing system 110 may maintain the in-vehicle component list 124 indicative of the currently active in-vehicle components 106, which, in an example, may be used to generate the listing 402 of the vehicle component interface application 122 of the user interface 400-A. The vehicle computing system 110 may compare a service identifier, address, or other information of the detected in-vehicle component 106 to the service identifiers, addresses, or other information of the previously-detected in-vehicle components 106 of the in-vehicle component list 124 to determine whether the in-vehicle component 106 was previously detected. If the in-vehicle component 106 was previously detected, control passes to operation 502. Otherwise, control passes to operation 510.
At operation 510, the vehicle computing system 110 adds the newly-detected in-vehicle component 106 to the in-vehicle component list 124. In an example, the vehicle component interface application 122 may add information from the advertisement to the in-vehicle component list 124, such as the service identifier of the in-vehicle component 106, an address to which the in-vehicle component 106 may be accessed, and/or other information regarding the in-vehicle component 106, such as timeout information from the advertisement. After operation 510, control returns to operation 502 to perform scanning.
In the operations of element 512, the vehicle computing system 110 determines whether any of the in-vehicle components 106 should be removed from the in-vehicle component list 124. In an example, the vehicle component interface application 122 may determine whether any timeouts of the in-vehicle components 106 that are on the in-vehicle component list 124 have expired. In another example, the vehicle component interface application 122 may determine whether any previously-detected in-vehicle components 106 are no longer located during the scan. If so, control passes to operation 620 to remove those in-vehicle components 106 from the in-vehicle component list 124. If not, control returns to operation 502 to perform scanning.
Thus, by using the process 500, the vehicle computing system 110 may be able to wirelessly maintain the in-vehicle component list 124 of the available in-vehicle components 106, without requiring access to the vehicle bus.
FIG. 6 illustrates an example process 600 for displaying the user interface 400 for control of the in-vehicle components 106. In an example, the process 600 may be performed by the in-vehicle component 106 and the vehicle computing system 110 in communication over a wireless connection.
At operation 602, the vehicle computing system 110 receives an indication to invoke the user interface 400. In an example, the vehicle computing system 110 may receive an indication that the user selected the in-vehicle components icon 308-E from the user interface 300. At 604, the vehicle computing system 110 generates the user interface 400. The generated user interface 400 may include a listing 402 of controls 404 based on the in-vehicle component list 124 detection performed in the process 500.
The vehicle computing system 110 determines at 606 whether there is user interaction with the vehicle component interface application 122. In an example, the vehicle component interface application 122 may receive input to a user interface 400 provided to the display 116 to adjust the state of the in-vehicle component 106. As some examples, the user may provide user input to one or more controls 410 as described above with respect to the FIGS. 4B and 4C. If an interaction is received, control passes to operation 608. Otherwise control passes to operation 610.
At 608, the vehicle computing system 110 updates the control values of the in-vehicle component 106. In an example, the vehicle component interface application 122 utilizes the wireless transceiver 112 to send a message to the in-vehicle component 106 to update the state of the in-vehicle component 106. For instance, responsive to the user selecting from the user interface 400 for the smart-shade in-vehicle component 106 be rolled down, the vehicle component interface application 122 may direct the wireless transceiver 112 to send a message addressed to the wireless transceiver 118 of the smart-shade in-vehicle component 106 requesting for the shade to be rolled up or down. After operation 608, control passes to operation 606.
In the operations of 610, the in-vehicle component 106 determines whether there is an update to the state of the in-vehicle component 106. In an example, the user may adjust a control value of the in-vehicle component 106 using the controls of the in-vehicle component 106 (e.g., a user may use a control on the smart-shade in-vehicle component 106 to direct the shade to roll down). In another example, the in-vehicle component 106 may adjust its own state (e.g., the smart-shade in-vehicle component 106 may roll down based on detection of increased light conditions). This interaction may cause the in-vehicle component 106 to broadcast a message or advertise that a change in the state of the in-vehicle component 106 has occurred. If a control value of the in-vehicle component 106 has changed, control passes to operation 612. Otherwise, control passes to operation 606.
At operation 612, the vehicle computing system 110 receives control state values from the in-vehicle component 106. In an example, the vehicle component interface application 122 may acquire the current state of the controls from the in-vehicle component 106 due to the in-vehicle component 106 using BLE to advertise a change in state or by broadcasting to the vehicle computing system 110 the change in state.
At 614, the vehicle computing system 110 refreshes the user interface 400. In an example, the vehicle component interface application 122 may indicate the changed state of the controls (e.g., on, off, volume level, shade up/down, etc.) based on the state of the controls received at operation 612. After operation 614, control passes to operation 606.
Computing devices described herein, such as the personal devices 104, in-vehicle components 106, vehicle computing system 110, and controller 208, generally include computer-executable instructions, where the instructions may be executable by one or more computing devices such as those listed above. Computer-executable instructions, such as the instructions of the vehicle component interface application 122 or controller logic 212, may be compiled or interpreted from computer programs created using a variety of programming languages and/or technologies, including, without limitation, and either alone or in combination, JavaTM, C, C++, C#, Visual Basic, Java Script, Perl, etc. In general, a processor (e.g., a microprocessor) receives instructions, e.g., from a memory, a computer-readable medium, etc., and executes these instructions, thereby performing one or more processes, including one or more of the processes described herein. Such instructions and other data may be stored and transmitted using a variety of computer-readable media.
With regard to the processes, systems, methods, heuristics, etc., described herein, it should be understood that, although the steps of such processes, etc., have been described as occurring according to a certain ordered sequence, such processes could be practiced with the described steps performed in an order other than the order described herein. It further should be understood that certain steps could be performed simultaneously, that other steps could be added, or that certain steps described herein could be omitted. In other words, the descriptions of processes herein are provided for the purpose of illustrating certain embodiments, and should in no way be construed so as to limit the claims.
While exemplary embodiments are described above, it is not intended that these embodiments describe all possible forms of the invention. Rather, the words used in the specification are words of description rather than limitation, and it is understood that various changes may be made without departing from the spirit and scope of the invention. Additionally, the features of various implementing embodiments may be combined to form further embodiments of the invention.

## Claims

1. A system comprising:
a display integrated into a vehicle;
a wireless transceiver; and
a processor, coupled to the display and transceiver, programmed to
maintain a list of wireless factory-installed in-vehicle components,
scan for add-on wireless in-vehicle components within the vehicle using the wireless transceiver,
generate a user interface listing both the factory-installed wireless in-vehicle components and the add-on wireless in-vehicle components, and
provide the listing to the display.

2. The system of claim 1, wherein the processor is further programmed to:
receive user input to the display requesting a change in state of one of the in-vehicle components, and
utilize the wireless transceiver to update the state of the one of the in-vehicle components.

3. The system of claim 2, wherein the change in state is one of rolling down a smart-shade in-vehicle component or rolling up a smart-shade in-vehicle component.

4. The system of claim 1, wherein the processor is further programmed to:
receive an indication of a change in state from one of the in-vehicle components; and
update the state of the one of the in-vehicle components in the list responsive to the indication.

5. The system of claim 4, wherein the change in the state is an automatic change based on input to the one of the in-vehicle components from a light sensor of the in-vehicle component.

6. The system of claim 4, wherein the change in the state is in response to input received to a user interface control of the one of the in-vehicle components.

7. The system of claim 1, wherein the display is a head unit of the vehicle, and the processor is a telematics control unit processor.

8. A method comprising:
maintaining in a storage by a processor of a vehicle an in-vehicle component listing including factory-installed components and add-on components added after a vehicle is built;
scanning, using a wireless transceiver as directed by the processor, for add-on in-vehicle components within the vehicle;
removing, by the processor, a first add-on wireless in-vehicle component from the listing responsive to failure to locate the first in-vehicle component during the scanning; and
adding, by the processor, a second add-on wireless in-vehicle component to the listing located during the scanning.

9. The method of claim 8, further comprising:
generating a user interface listing including both the factory-installed components and the add-on components; and
providing the user interface listing to a display.

10. The method of claim 9, where the display is a head unit of the vehicle.

11. The method of claim 9, further comprising:
receiving user input to the display requesting a change in state of one of the in-vehicle components; and
utilizing the wireless transceiver to update the state of the one of the in-vehicle components.

12. The method of claim 11, wherein the change in state is one of rolling down a window shade in-vehicle component or rolling up a window shade in-vehicle component.

13. The method of claim 9, further comprising:
receiving an indication of a change in state from one of the in-vehicle components; and
updating the state of the one of the in-vehicle components in the user interface responsive to the indication.

14. The method of claim 13, wherein the change in the state is one of: an automatic change based on input to the one of the in-vehicle components from a sensor of the in-vehicle component, or in response to input received to a user interface control of the one of the in-vehicle components.

15. A computer program product embodied in non-transitory computer readable storage having instructions for programming a processor of a vehicle in communication with a wireless transceiver to control a display, comprising instructions for:
maintaining a list of installed in-vehicle components,
scanning for current in-vehicle components within the vehicle using the wireless transceiver,
updating the list based on the scanning, and
sending, to the display, a generated user interface listing of the current in-vehicle components.

16. The computer program product of claim 15, further comprising instructions for maintaining, in the list, identifiers of factory-installed components and add-on components added after a vehicle is built.

17. The computer program product of claim 15, further comprising instructions for removing an add-on wireless in-vehicle component from the listing responsive to failure to locate the wireless in-vehicle component during the scanning.

18. The computer program product of claim 15, further comprising instructions for adding an add-on wireless in-vehicle component to the listing located during the scanning.