Methods for customizing vehicle user interface displays
Methods and systems are provide access to cloud services over the Internet for customizing user interface of a vehicle. One method includes receiving a request to access a server that provides logic for defining a custom user interface for a vehicle associated with a user account. The method also includes receiving selection options for associating applications to the custom user interface. The applications including interfaces associated with functionalities of the vehicle and interfaces for connecting with internet accessible services. The method includes receiving arrangement selections for placing at least one of the interfaces at a user defined location of a display screen of the vehicle. The selection options of the associated applications and the arrangement selections defining the custom user interface for the user account. The method further includes communicating the custom user interface to memory and electronics of the vehicle over a wireless internet connection. The custom user interface is to be rendered on the display screen of the vehicle.
The present application is a continuation application of U.S. application Ser. No. 13/784,823, entitled “Methods and Systems for Defining Custom Vehicle User Interface Configurations and Cloud Services for Managing Applications for the User Interface and Learning Setting Functions,” filed on Mar. 5, 2013, which claims priority to U.S. Provisional Patent Application No. 61/745,729, filed on Dec. 24, 2012, and entitled “Methods and Systems For Electric Vehicle (EV) Charging, Charging Systems, Internet Applications and User Notifications”, and which are herein incorporated by reference. This Application is also a continuation-in-part of U.S. application Ser. No. 13/452,882, filed Apr. 22, 2012, and entitled “Electric Vehicle (EV) Range Extending Charge Systems, Distributed Networks Of Charge Kiosks, And Charge Locating Mobile Apps”, which claims priority to U.S. Provisional Application No. 61/478,436, filed on Apr. 22, 2011, all of which are incorporated herein by reference.
FIELD OF THE EMBODIMENTSThe present invention relates to systems and methods for customizing vehicle user interfaces and exchange of information with cloud-based processing systems to enable integration with third party applications.
BACKGROUNDVehicles, such as motorized vehicles and electric vehicles have been around for some time. Vehicles provide a means that enable humans to drive from place to place. In today's world, vehicles have become an indispensable mode of transportation, and provide the freedom to travel at any time of day and for various distances. Vehicles can be publically operated or can be privately owned. Humans most commonly operate vehicles, no matter the type, whether electric or combustion engine based. In recent years, technology has been advancing to allow for better wireless interfacing and networking with vehicles.
It is in this context that embodiments of the invention arise.
SUMMARYThe methods, systems and apparatus include electronics and software of vehicles that drive display devices in vehicles and communicate wirelessly with Internet services.
One method includes receiving a request to access a server that provides logic for defining a custom user interface for a vehicle associated with a user account. The method also includes receiving selection options for associating applications to the custom user interface. The applications include interfaces associated with functionalities of the vehicle and interfaces for connecting with internet accessible services. The method includes receiving arrangement selections for placing at least one of the interfaces at a user defined location of a display screen of the vehicle. The selection options of the associated applications and the arrangement selections defining the custom user interface for the user account. The method further includes communicating the custom user interface to memory and electronics of the vehicle over a wireless internet connection. The custom user interface is to be rendered on the display screen of the vehicle.
Other examples include methods for providing access to cloud services over the Internet for customizing a user interface of a vehicle. The method includes providing selection options to identify a vehicle type among a plurality of vehicle types, where each vehicle type is associated with a system component native to the vehicle type. The system component provides native interfaces for the vehicle type. The method includes identifying a plurality of applications available for the vehicle type. Each of the applications provided with predefined code for communicating with at least one control interface of the system component. The method includes identifying an application from the plurality of applications. The application providing an app interface to be added to the user interface of the vehicle. The method generates a custom configuration of the user interface for the vehicle type that includes native interfaces for components native to the vehicle type and the app interface for the application. The custom configuration is defined to render or set at least one screen or part of one screen of the user interface for display on a vehicle display. The custom configuration is wirelessly transferred to memory and electronics of the vehicle from the database, from cloud processing (e.g., servers/storage having access via the Internet). The custom configuration is saved to a user account in the database interfaced over the Internet with the cloud services, the method being executed by a processor. The custom configuration can be updated from time to time and can be transferred to other vehicles.
In some embodiments, the method includes receiving a request to modify the custom configuration; enabling changes to the identified application, the changes including adding additional applications or removing the application; updating the custom configuration with the changes; saving the custom configuration to the user account.
In some embodiments, the method includes enabling identification of a second vehicle for the user account, the second vehicle having a second vehicle type.
In some embodiments, the method includes processing a request to transfer the custom configuration to the second vehicle, the processing of the request includes, automatically updating the system component for the second vehicle type, the system component of the second vehicle including more or less native interfaces based on the second vehicle type as defined by a manufacturer of the second vehicle; and determining if the application is compatible for the second vehicle type, and providing options to select an update for the application in response to processing the request to transfer the custom configuration when the application is not compatible for the second vehicle type.
In some embodiments, the manufacturer of the vehicle and the second vehicle is either the same or different.
In some embodiments, the method includes processing a request to use the custom configuration on the second vehicle, the processing of the request includes, receiving login credentials for the user account to enable use of the custom configuration at the second vehicle automatically updating the system component for the second vehicle type, the system component of the second vehicle including more or less native interfaces based on the second vehicle type as defined by a manufacturer of the second vehicle; and determining if the application is compatible for the second vehicle type, and if the application is not compatible for the second vehicle type, either omitting the application from the custom configuration or providing a replacement application for the application with or without user input.
In some embodiments, the method includes maintaining a database of user accounts, each user account having one or more custom configurations of user interfaces; processing a request to use a second custom configuration on the vehicle, the request being received from the vehicle upon entering credentials to access a second user account; transferring the second custom configuration to the vehicle for use while the credentials of the second user account are active on the vehicle, wherein a verified request to use the second custom configuration terminates use of the custom configuration in favor of the second custom configuration.
In some embodiments, the method includes terminating a session of use of the custom configuration on the vehicle, termination of the session acts to, reset the display of the vehicle to provide the user interface with system interfaces that are default-set by the manufacturer of the vehicle; or set a second custom configuration for a second user account.
In some embodiments, the vehicle display of the vehicle includes any one or more of a main dashboard display, or a center console display, or a combined main dashboard and center console display, or a glass surface, or a windshield display, or a window display, or a touch surface display, or a headrest display, or a movable display, or a wireless display, or a wire-connected display, or combinations of one or more thereof.
In some embodiments, the method includes receiving a request to make changes to add or remove applications from the custom configuration.
In some embodiments, the method includes enabling a user interface tool to arrange some of the system components and app components of the application on a display, the arranging includes defining positional locations for graphical user interface (GUI) items of the custom configuration, the user interface tool being provided via a website of the cloud processing that manages the user account.
In some embodiments, the method includes enabling linking of one or more applications executed on a mobile device to be presented on the vehicle display of the vehicle in accordance with the custom configuration, the linking enabled upon pairing the mobile device with electronics of the vehicle. In one example, the applications from the mobile device can be presented in a split screen region of the vehicle display. The split screen can allow presentation of apps and content from the mobile device or cloud services of the mobile device, along with services and apps of the vehicle. In this implementation, the split screen provides for a seamless presentation of data from devices of the user and data managed by cloud services or programs of the vehicle. In another embodiment, split screen presentation allows mirroring of content generated by the mobile device on screens of the vehicle. In one configuration, restrictions on use can be applied by algorithms managed by the vehicle code or cloud code to enable safe driving. For instance, if the data of the mobile device requires interactivity that may cause distractions, such as texting, entering data by hand, gesturing, etc., such features may be disabled or a function can be provided to translate the entry to voice/audio output and voice input by the driver or occupants. In one embodiment, if a passenger is able to handle the input, the features may be enabled, provided the input is coming from a passenger seat. Logic in the vehicle can detect if a person is sitting in the vehicle, and voice authentication or video confirmation can be performed to determine if the person entering the data is a passenger. Thus, verification of the person entering data to user interface components can be made on the fly.
In some embodiments, the method includes receiving user input via the custom configuration; learning patterns of user input over time; automatically programming one or more components of the custom configuration based on the learned patterns of user input, automatic programming changing over time based on the received user input via the custom configuration and saved periodically to the user account in the database via a wireless connection to the Internet.
In some embodiments, the method includes automatically adjusting positional locations for graphical user interface (GUI) items of the custom configuration based on the learned patterns; and saving the adjustments to the user account, the user account being saved in a database that is interfaced over the Internet with cloud services that execute code using one or more processors.
In some embodiments, the programming of one or more components of the custom configuration includes automatically setting input based on times of day, or days of week, or dates of month, or times of year, or combinations thereof.
In some embodiments, the method includes associating biometrics to the user account, the biometrics being used to monitor use of the vehicle and determine if the custom configuration is enabled, or if a guest custom configuration should be enabled, or if public custom configuration should be enabled, the user account includes profile data defining when particular configurations should be enabled based on the biometrics.
In some embodiments, the custom configuration is saved to the user account in cloud storage having the database, and cloud processing provides communication with the vehicle over the Internet via wireless Internet communication.
In some embodiments, cloud processing provides a website interface or backend server or services interface to enable selection of the vehicle type and the application to define the custom configuration and also enables updates to the custom configuration to add, delete or update applications to be associated with the custom configuration.
In some embodiments, the code for the custom configuration is transferred to the vehicle upon receiving credentials to access the user account from the vehicle so as to associate the vehicle to the custom configuration, the association of the custom configuration to the vehicle being for a period of time.
In some embodiments, the period of time is for a session that remains until logged out of the user account, or a period of inactivity, or when biometrics detects use by other than a person associated with the user account, or a second user account logs in to define a new session with a second custom configuration of the second user account.
In some embodiments, vehicle electronics are programmed with a master account, the master account being provided access communication with cloud services over the Internet, the master account enabling use of the custom configuration with one or more restrictions.
In some embodiments, the restrictions include enabling, disabling or regulating system components of the vehicle, enabling or disabling certain applications of the custom configuration, wherein the restrictions being updateable over a website that enables remote configuration and monitoring of the vehicle using cloud services over the Internet for the master account, the master account enabling one or more guest accounts to be used on the vehicle, such that one or more custom configurations are usable on the vehicle during respective sessions.
In some embodiments, the method includes associating logins to the user account, the logins being used to determine if the custom configuration is enabled, or if a guest custom configuration should be enabled, or if public custom configuration should be enabled, the user account includes profile data defining which particular configurations should be enabled based on the logins, wherein the logins are made via the vehicle that communicates with cloud services via the Internet through a wireless link.
In some embodiments, the method includes saving use data of the vehicle for each login, the use data further being linked to automatic notifications, such that certain use data triggers an automatic notification to an administrator of the user account, the notifications including text notifications, phone call notifications, web notifications, smartphone notifications, social network notifications, or combinations thereof.
In some embodiments, biometrics include one or more of image data of a driver's face, a passenger's face, a finger print, a retina scan, a signature, a gesture, or combinations thereof.
In one embodiment, a method is provided. The method includes providing access to cloud services over the Internet for customizing a user interface of a vehicle. The method includes providing selection options to identify a vehicle type among a plurality of vehicle types, each vehicle type being associated with a system component native to the vehicle type, the system component providing native interfaces for the vehicle type. A plurality of applications are provided as available for the vehicle type, and each of the applications may be provided with predefined code for communicating with at least one control interface of the system component. The method includes defining a custom configuration of the user interface for the vehicle type that includes native interfaces for components native to the vehicle type and an app interface for an application added to the user interface of the vehicle. The custom configuration is defined to set or program at least one screen of the user interface for display on a vehicle display when the custom configuration is wirelessly transferred to memory and electronics of the vehicle from the database. The custom configuration is saved to a user account in a database interfaced over the Internet with the cloud services. The method further includes receiving user input via the custom configuration and learning patterns of user input over time. The method automatically programs one or more components of the custom configuration based on the learned patterns of user input. The automatic programming changes over time based on the received user input over time via the custom configuration. The changes to the automatic programming are saved periodically to the user account in the database via a wireless connection to the Internet. The method being executed by a processor.
In one embodiment, the custom configuration is generated using tools and programs made available on a website. The tools and programs may be executed by computers, such as computers of a data center to provide cloud based processing. The data centers can be distributed geographically and the communication to specific vehicles can be dynamically assigned to various geographic data centers, as the vehicles move around geographically.
Embodiments of the present invention define methods, systems and apparatus for use in vehicles. The methods, systems and apparatus include electronics of vehicles that drive display devices in vehicles and communicate wirelessly with Internet services.
The Internet services provide access to cloud services. The cloud services provide access to user accounts and access to settings, configurations, applications and other customization defined by the user. Customization can include user interface customization of a vehicle display or displays. The customization can include the ability to select specific applications (APPS) to be activated by the vehicle and interfaced via the display or displays, voice input, touch input, etc. The customization is also provided with a learning engine, that learns use by the user, and automatically implements settings or programming to aspects of the user interface. The programming can include automatic programming at certain times, days, months, years, etc., and can be updated or molded over time as the user continues to use the vehicle UI.
In one embodiment, a user can access cloud services for a vehicle manufacturer and identify the particular vehicle from selected choices. The user can then identify a customization profile for the vehicle by defining the look and feel of a UI display, arrangement of vehicle controls on displays, add and associate third party APPS to the vehicle display, and save the configuration.
The configuration, in one embodiment, is saved to the profile of the user. In one embodiment, the profile is saved on a database of a specific vehicle manufacturer that offers the customization option. In still other embodiments, once a configuration is saved to the profile account of a user, that configuration can be shared to other vehicles of the user. In still other embodiments, when a user buys a new car, the custom configuration can be transferred either entirely or partially to the new vehicle. In some embodiments, if the vehicle has more or less system functions, the customization can be adjusted automatically or the user can be provided with options to update the customization to add or delete features. In one embodiment, the customization will be facilitated via a website. In one embodiment, the website may be of the vehicle manufacturer. In one embodiment, the website of the vehicle manufacturer can allow the user to add APPS that are created by third parties. The third parties can create APPS that communicate with APIs of the system components of specific vehicles of the manufacturer. Once APPS are selected, the user can add them to the custom user interface (UI) display.
The user can also be allowed to arrange the APPS or icons of APPS in a specific custom arrangement that is saved to the user's profile. In one embodiment, the user's profile can also be run on various vehicles, other than those owned by the user. For instance, if the user is renting a vehicle and the vehicle has access to cloud services, the user can enter his user name and password (or other identifiers), which log the user into the cloud services and saved profiles. The saved profiles will then enable logic to build a custom UI for the user based on the vehicle being driven. In one embodiment, the system components and APIs of the system components of the rented vehicle can be paired or linked to the user's saved APP selections.
The user's saved UI configuration may also be transferred to the display of the rented (or other vehicle) vehicle. A best-fit configuration can also be generated using the user's profile selections, so that the configuration provided for the other vehicle will closely resemble or appear as it does for the configured vehicle. In other embodiments, the user's use metrics can be monitored. The use metrics can include use of APPS, use of system components of the vehicle, use of the vehicle, environment conditions, and historical actions taken by the user via the input/output controls of the vehicle (e.g., buttons, levers, keys, fobs, display selections, display interface actions, communication actions, etc.).
These historical actions can then be used to define learned actions. The learned actions can be analyzed to change configuration settings in the user's saved profile. For instance, if the user uses a particular APP every day at a particular time, that APP icon can be surfaced to the display or preset to start. The APP can then provide information to the user at about the same time the user normally needs the information. Other historical use patterns can be monitored and such data can be saved to the user's profile. The data can then be used by algorithms that build assumptions based on historical inputs by a user as well as environmental inputs, location inputs, vehicle diagnostic inputs, internet connected marketing deals, the user's calendar, traffic conditions as well as news. The assumptions the algorithm builds are then processed into decisions and actions by an additional algorithmic process to activate local or remote audio and visual alerts, change vehicle systems, display information on a vehicle's displays and request a decision from a user locally or remotely to complete an action.
A number of embodiments are described below, with reference to specific implementations that refer to vehicles, but such implementations should be broadly construed to include any type of vehicle, structure or object. Without limitation, vehicles can include any type of moving object that can be steered, and can include vehicles that are for human occupancy or not. Vehicles can include those that are privately owned, owned by corporations, commercially operated vehicles, such as buses, automobiles, trucks, cars, buses, trains, trolleys, etc. Example vehicles can include those that are combustion engine based, electric engine (EV) based, hybrids, or other types of energy source vehicles.
A cloud processing system, as described herein, will include systems that are operated and connected to the Internet or to each other using local networking communication protocols. A cloud processing system can be defined as an interconnected and distributed physical or virtual software defined network that utilizes virtual or physical processing and storage machines that enable various applications and operating systems to facilitate the communication with and between various client devices (vehicles, user devices, structures, objects etc.). The communication with and between the various client devices will enable the cloud processing system to deliver additional processing information, data, and real-time metrics concerning data obtained from other processing systems as well as client feedback data. The distributed nature of the cloud processing system will enable users of various vehicles, structures and objects to access the Internet, and be presented with more flexible processing power that will provide the requested services in a more effective manner.
The processing systems can be defined from various data centers that include multiple computing systems that provide the processing power to execute one or more computer readable programs. The processing of the computer readable programs can produce operations that can respond to requests made by other processing systems that may be local to a vehicle's electronic system. For example, a vehicle can include electronics that utilize memory and a processor to execute program instructions to provide services.
In other embodiments, the electronics of a vehicle can synchronize with a user's portable electronics. The user's electronics can include, for example mobile devices that include smartphones, tablet computers, laptop computers, general-purpose computers, special purpose computers, etc. The various computing devices of the vehicle, and or the computing devices of the user (smart devices) can be connected to the Internet or to each other. Provided that a user has access or account access to the cloud service, the cloud processing services on the Internet can provide additional processing information to the electronics of the vehicle.
The wireless communication can include cellular tower communication that couples and communicates through various networks to the Internet, to provide access to cloud processing 120. Other methods can include providing Wi-Fi communication to local Wi-Fi transmitters and receivers, which communicate with cloud processing 120. Other types of communication can include radio frequency communication, such as 802.11.ac, 802.11ad and subsequent wireless networking protocols, Bluetooth communication or combinations of Wi-Fi and Bluetooth. It should be understood that vehicle electronics can communicate with cloud processing 120 via any number of communication methods, so long as exchanges of data can be made with cloud processing 120 from time to time.
The communication can be made by vehicle electronics while the vehicle is on or when the vehicle is off, so long as communication and processing circuitry of vehicle electronics has a power source. The power source can include battery power that powers vehicle electronics to communicate with cloud processing 120 when vehicle is turned off. When vehicle is turned on, the battery that drives vehicle electronics can be recharged.
The applications provided to the vehicle manufacturers can also verify functionality and approve aspects of the application to be provided to an applications database. Users of vehicles, made by the manufacturer, can then access a website to select specific applications for addition to their vehicles. In one example, an Internet site 110 may therefore be managed by or for the vehicle manufacture. User account profiles 112 can be managed to provide access to APPS of an app portal 114. In other examples, the site 110 can be managed by third party companies, partner companies that cooperate with a vehicle manufacturers, and/or internet companies that provide some or all of the backend or front end services and cloud storage and processing.
The vehicle manufacturer may also manage or provide a vehicle type database 116, or provide data for the database 116. As the vehicle manufacturer makes updates to existing APPS, systems or adds new vehicles to its vehicle lines, the vehicle type database may also be updated accordingly. Updates can also be forwarded to the vehicle over time or can be automatically installed. The updates, in one embodiment, can provide new UI features, controls, etc. As shown, the app portal 114 may include a plurality of applications that have been developed by developers 102 and/or also approved by the manufacturer of the vehicle.
The app portal 114 can also include APPS that are produced by the vehicle manufacturer or applications that are made for the vehicle manufacturer. Cloud services 120 includes various modules that allow customers of the vehicle manufacturers to access the vehicle manufacturers cloud services, and provide interconnection to the vehicles in operation. In one example, a user 121 uses a computing device to access cloud services 120 in order to customize 124 the user interface of a vehicle. Broadly speaking, the user interface of a vehicle can include any display device in the vehicle.
In one embodiment, the display device can include displays that can provide instrumentation normally provided by standard vehicle indicators. The display device is not limited to a display normally placed in the center console, but can also any display screen. The display screen can also include that used to normally provide speed, and systems settings in the dash over the wheel. The display screen can also include other screens in a vehicle, such as those in passenger areas. Additionally, the user interface can also include display devices that display systems and auxiliary information, such as that provided by applications generated by developers 102, and/or applications produced by the vehicle manufacture. In one embodiment, the vehicle manufacturer will produce a software module for systems information that allow access to the system components of the vehicle.
The systems component is shown as “SYS” 128, which is interfaced with an application-programming interface (API) 130. The vehicle module 129 will therefore include the systems component and the API that will provide access and interface with applications produced by third parties and applications produced by the vehicle manufacture. In one embodiment, the system components interfaced with selected ones of the applications will produce a customized configuration 126. The customize configuration 126 will define the selected applications that were interfaced with the systems of the selected vehicle by the user 121. Once the customize configuration 126 has been selected (e.g., the APPS selected by the user to add or augment the current system APPS or system controls), the user may be provided with options to customize the arrangement of the UI (user interface) 134.
The customization, in one embodiment includes enabling the user to customize the user interface by arranging specific components of the user interface and specific locations on the display. For example, a user is allowed to select specific components, modules, applets, widgets, code pieces, and arrange them in specific locations that are preferred to the specific user for ease-of-use, or frequency of use, or for a specific look and feel.
This arrangement of the UI will therefore enable specific applications to act as modules that can be arranged on a display. The applications can then expand or contract to occupy the entire display when selected and exposing additional functions buttons utilized when selected. As will be defined below, additional customization of the arrangement of the UI 134 will allow user interaction with the user interface to customize itself based on learned use activity (e.g., over a history period) by the user.
In one optional embodiment, a user is allowed to associate a smartphone or portable device having applications with the customization configuration 126, in operation 136. For example, if certain applications are already loaded on a smartphone or portable device that is proximate or in the vehicle, the applications can synchronize or pair with the applications that are part of the customize configuration 126. The capability of synchronizing certain applications with the customize configuration 126 of the vehicle, allows for an integration of applications known and used by the user on the personal device, and applications that were made part of the customize configuration 126, using the customization tools of the vehicle manufacturer.
Once the user has customized the arrangements and has associated any portable device applications to the customized configuration 126, the custom UI may be transferred to the user account profile in operation 138. The transfer of the customize UI to that user account profile can include saving specific identifier information, application information, and any customization desired by the user for that specific vehicle or plurality of vehicles. Once the custom UI has been saved to the user account profile database 112, the user can then transfer or the manufacturer cloud services 120 can transfer the profile and custom UI to the vehicle in operation 140.
The transfer of the custom UI to the vehicle can be made by Internet connection between the vehicle electronics and the Internet 110. As shown in
The API provides a defined method and structure for accessing the various control interfaces of the system elements of a vehicle. Other types of systems can also include add-on components, plug-ins, such as those that may be downloaded to the vehicle from third party companies, from the manufacturer, or installed by the manufacturer automatically (or with pre-permission). Still further, other systems can include displays, which may be part of the vehicle. The displays can be provided with a control interface to enable the API to access the display functionality. In one embodiment, a vehicle can have a number of displays. The number displays can be, for example, the main dashboard for vehicle, a center console of the vehicle, a rear display, a passenger display, a glass display, a mirror display, a heads-up display, glasses of the driver, the windshield of a vehicle with display capability, a window of the vehicle, a touch surface of the vehicle, or portable devices linked or synchronized to the vehicle electronics that provide access to the display system and control interfaces via the API 130.
As illustrated, the system component 129 may be defined by a vehicle manufacturer for a specific vehicle type. In one embodiment, a vehicle website 190, or third-party site may provide access to system component definitions for specific vehicles. In one example, the vehicle website 190 may be provided by a vehicle manufacturer 180. The vehicle manufacturer 180 may provide a listing of the types of vehicles sold by the manufacturer, and the various years for those vehicles as model types and functionality in each model change over time. In one embodiment, a user can visit the vehicle manufacturer 180 via websites or a cloud service, and select the vehicle to obtain the system component 129. In one embodiment, a particular vehicle type and year of vehicle may make use of more than one system component 129 if the manufacturer provided more than one system component or update.
For example, an application can be selected by the user to provide a custom radio interface, which replaces the radio interface provided by the vehicle manufacturer. In still another example, an application can be provided to replace the temperature meters with custom temperature meters, and provide additional data on the display not provided by the standard vehicle manufacturer user interfaces.
In still another embodiment, the application selected by the user can define complementary functionality that will function in conjunction with the system components. In this example, the application functionalities that are paired with the system component 129 to define the custom configuration 200 will provide a hybrid user interface that is custom to the user. The customization is defined by the user, for example, by selecting specific applications, selecting different background colors, wallpapers, for the user interfaces, selecting different input interfaces, adjusting the location and positioning of application components displayed on a vehicle display, and programming the various application elements and functions to operates and provide feedback based on user-defined programming.
In still another embodiment, the custom configuration can be defined by the user to provide a different background color on different days of the week. The background color can be customized or replaced with pictures or photographs customized and selected or uploaded by the user. In this way, the user interface, system components, and applications installed on the vehicle will provide a customized look and feel that is defined by the user for the vehicle, and additional functionality will cooperate and function with the systems of the vehicle by providing the mapping to the API to each of the applications that are selected by the user.
In still another embodiment, the applications can function alongside system components without requiring the applications to interface directly with manufacturers systems the of the control interfaces. In this scenario, applications can function and be placed in the user interface of the custom configuration in the same locations set by the user.
In one embodiment, the custom configuration 200 will define a custom interface 202, that will be rendered on a display of a vehicle or on more than one display of vehicle. In one embodiment, the applications that are provided for selection in listing 114, may include third-party produced applications as well as applications produced by the vehicle manufacturer. Still further, the applications may be add-on applications that provide additional functionality to existing applications or existing system configurations. In still other embodiments, the applications can be defined as applets, plug-ins, widgets, code subsets, skins, code, or combinations of one or more thereof.
The cloud services 120 may provide interface customization 206 tools that will allow the user to select the application 114, select the system component for the vehicle, and arrange the selected applications, arrangement of the applications on the display screen, settings for the different applications, etc., to thus define a custom configuration for the user interface. The custom configuration will then be saved to a user profile database 112, which saves the custom configuration and provides access to the custom configuration for updates from time to time by the user, or for updates provided by the vehicle manufacturer.
In one specific example, a user 121 can visit a website, an app, or a portal to customize a vehicle display 210 using tools provided by a website that allows the customization. The tools can include pull-down menus, selection icons, text entries, radio buttons, arrangement and customization feature selectors, program settings, etc. The user can access the website using any user device. The user device can also include setting the custom configuration via a vehicle 160. In general, the configuration can be made using any device that has access to the Internet.
In operation 220, the user will select a vehicle using the tools provided by the website. Selecting the vehicle will allow the correct selection of the system component for that vehicle, and any other updates or parameters defined by the vehicle manufacturer. The systems for the vehicle user interface will then be identified in operation 222. A tool than be provided to allow selection of the apps to add to the interface in operation 224. As mentioned in this disclosure, the user can select any number of applications to add to the custom configuration. From time to time, the user can select additional applications to add to the custom configuration or removed from the custom configuration. In operation 226, the user customization for the user interface will be received including the defined applications and systems.
In operation 228, the custom configuration will then be generated and can be assigned to the user profile of a user account, in a database(s) of websites handling the cloud services 220. In some embodiments, the website may be hosted in a distributed manner, using virtualization and distributed data centers. The distributed data centers can then communicate data and process operation to the vehicle to execute the applications and system components, and provide resources from third-party applications and applications over the Internet.
The generated custom configuration can then be transferred to the vehicle 160 and operated using vehicle electronics 162. Vehicle electronics 162 can also include a display. As mentioned above, the display can be a single display or a plurality of displays. The displays are configured to generate images for various screens, selections, icons, buttons, controls, and received touch input and communicate text information and other data to users.
A user having an account with cloud services 120 will have previously defined custom configurations that may be downloaded or accessed without download for the specific vehicle. The vehicle ID would be sent to the cloud services 120 by the vehicle upon sending the request for the custom configuration.
In this example, the display 162 is populated with user interfaces for the system as well as the applications. As shown, app interfaces may be presented in specific locations in the user interface as well as system interfaces that are provided in other specific locations in the user interface. In one embodiment, the definition of where the specific user interfaces for the systems and the apps are to be defined, is set by the user during the configuration process.
In other embodiments, the positioning and layout or arrangement of the specific components of the user interface, whether they be system interfaces or app interfaces, may be custom arranged by the system over time based on use patterns. The use patterns of the user can be learned by the system so as to arrange the various system components and app components in various locations of the display 162. In other embodiments, certain interfaces will be surfaced (e.g., shown in prominent locations) on the display at certain times of day, certain times of the week, certain times of the month, certain times of the year, etc. Better placement of the app components and system components, and programming of data into the components can be optimized over time based on learning the input patterns provided by the user to user interface.
For example, if the user always views the weather in the mornings at 8 o'clock or 9 o'clock and a.m., then the weather icon or interface will automatically start to be surfaced on the display during those times. If the user plays rock 'n roll rock music on the weekends and classical music during the weekdays, this preference will also be learned. Learning of these preferences will act to custom define the layouts and placement of the icons and user interfaces on the display over time. In still other embodiments, the specific placement, location, and arrangement of the apps, system components, buttons, controls, etc., will be preset and fixed by the user based on predefined settings.
These predefined or learned settings can be saved to the database in cloud services and associated with the user account. Updates to the settings can then be made at any time by accessing cloud services over the Internet using any device, whether the devices are in the car, of the car, a portable device, a home computer, a work computer, a tablet, a smart phone, a smart watch computer, etc. Also shown in
In one embodiment, the user can custom configure to have content from applications running on the portable device 210 to be displayed in the vehicle displayed 162 in a specific location. This location on the display can then be synchronized or mirrored to that part of the display based on the configuration. In still other embodiments, the custom configuration can determine to synchronize an application running on the portal device to occupy the entire display 162. For example, if the user wishes to use his own telephone calling interface and contacts that are stored on the portable device 210, that information can be populated and mirrored to the display device 162, while still using other system components or other applications of the vehicle in the background or in a separate screen that is not currently active. In this example, the portable device 210 as well as the vehicle electronics can communicate with cloud services 120 at the same time, or when specific functions, data or communication is required.
However, the user that defines the custom configuration can decide to maintain certain system component applications 128. The custom interface 260 may therefore include a hybrid of third-party applications and system applications, all designed to be laid out arranged and provide the look and feel/functionality desired by the user. In this illustration, a third-party app 104 is provided for a calendar. The calendar may be synchronized with a user's online calendar, which automatically populates the users data to the vehicle user interface. The radio app may also be a third-party app, which may have radio stations that are a mix of land-based radio and Internet radio. Scores from time to time, the user can then arrange the location of the specific applications to different portions of the display.
Still further, certain applications can increase in size when being used or decrease in size to enable selection at a later time. For example, selecting the temperature system component may expand the system component to a larger space, thus temporarily removing other displayed components. The user can also select other buttons to access other system controls, other apps, or modify or add applications or system controls. When modifications are made, the modifications are saved to a user database and profile of the user, as managed by cloud services.
Cloud services will therefore allow any future modifications to be made to the custom configuration at any time and from any computer connected to the Internet. Still further, the custom configuration can be transferred to a second vehicle. If the custom configuration is transferred to a second vehicle, the system can select the system components for the second vehicle and attempted do a best match of applications available for the second vehicle that resemble or match the ones used in a first vehicle. Specific settings, arrangements and other features may also be transferred to a second vehicle, by simply transferring the custom configuration to a second vehicle.
If the sections are customizable, the user can select certain portions of interface 304 to be provided by another third-party application 104. For example, interfaces can be used to customize the entire system component, such as the entire radio 302 interface, or the customize radio interface 304. The interface can be itself customized by adding sub applications or subcomponents of code that define smaller user interface sections for the custom system configuration of a radio.
Once specific modules have been customized, either by selecting pre-customized third-party applications, or by constructing a custom module, these modules can be arranged to define a custom placement or arrangement of user interface modules to be displayed on a vehicle display 162. The customized display 260 can therefore be defined by a plurality of modules, which may be provided or obtained by adding third-party applications to the custom interface design by the user, or by moving or arranging existing user interface components provided by the manufacturer to specific locations on a screen arrangement. Other customization features can include, adding custom backgrounds such as images, pictures, and other multimedia components to the display.
In one embodiment, the custom interface can include smaller icons/GUIs that identify specific applications that were added to the custom interface, that when selected expand to provide the functionality of the applications. The applications can be minimized or maximized on the screen. In one embodiment, the functions of the specific applications illustrated in the display 162 will be monitored and restricted depending on safety considerations while driving. For example, if the interfacing functionality requires more interactivity with the display, or requires a reading of text or inputting text, those functions will be disabled during operation of the vehicle. Once the vehicle comes to a stop, or is placed in park, certain of these functions will be activated. In other embodiments, other safety considerations will allow for applications to shift from outputting text to outputting audio or voice. The input can also be changed from touchscreen, button touches, selections, and/or voice input. In still other embodiments, safety considerations can allow certain user interface components to move about the display to provide easier reading while driving or automatic conversion of text to audio.
For example, content being displayed in the center panel display of the vehicle, can be automatically shown in the dashboard display region of the vehicle, such as in front of the steering wheel. In still other embodiments, some content or display data can be moved from the center console or the display in front of the steering wheel to the windshield of the vehicle in a heads-up display area. Accordingly, algorithms executed by the applications and applications of the manufacturer, can cooperate to provide functionality to the application features and interfaces, while maintaining safety parameters defined by rules. The safety parameters will therefore allow content of the user interface to be shifted around to various displays of the vehicle, or translated to voice or audio at certain points in time.
These settings and customizations can be made through the web/cloud services and tools provided by the website of, for example the manufacturer of the vehicle. In one embodiment, the cloud services provided by the manufacturer can be provided by a partner of the manufacturer. The partners of the manufacturer can include software companies that develop, host, or manage certain functionality provided by the vehicle manufacturer. In other embodiments, the partner software companies can integrate tools or components with tools and components of the vehicle manufacturer. This provides for an integration with one or more cloud services, software services, Internet services, and services provided by systems of vehicles or systems of the vehicle manufacture. In either case, whether the software and logic is designed and constructed by one or more entities, the cloud services provided by the vehicle manufacturer or the website that provides the tools for customization will appear as a unified simple to use interface for the user. As mentioned above, the cloud services can provide databases for saving the user profile and data associated with the user account.
The user profile can include settings made by the user, customizations made by the user, identification of applications purchased or added to the vehicle customizations, etc. Still further, the user profile data can be part or be associated with the user account. In this manner, the user that customized a user interface can access the Internet at any time, whether through the vehicle or through any other computing device having access to the Internet and make changes, modifications, or access control features of the vehicle remotely. In one embodiment, the profile of the user can be accessed from any vehicle, such as rented vehicles or shared vehicles. Settings and profile data can then be shared for a period of time on any vehicle and use data on that vehicle can be stored.
Continuing with the example of
In still other embodiments, advertisers can provide data to the user that is relevant to the user, such as discounts for the goods or services the user wishes to purchase. In still another embodiment, an application can be provided for the vehicle that provides a user the ability to set and to find certain things, such as goods and services the user needs. As the user drives around, and algorithm determines whether certain goods or services are available in the proximity of the vehicle's driving actions. If the vehicle approaches or is near certain goods and services, and such goods and services are advertised to have a discount or availability, the user can be notified on the user display, or by audio output by the vehicle. This functionality can be enabled or disabled on demand, as programmed by the user in the application that's added to the user interface.
Still in
The local device might be the user's mobile phone, the user's computer wristwatch, the user tablet computer, the users laptop computer, or the mobile device of a person inside the vehicle. In one embodiment, data from the local devices can be synchronized locally to the display of the vehicle in selected regions. These selected regions of the display can be defined by the user during customization, or can be defined automatically by the system based on sizing areas on the display, relative to other applications or features displayed on the one or more displays of the vehicle.
Also noted is that the system can automatically arrange or move certain applications or components on the display depending on size constraints, or other features that are synchronized with system settings. In operation 310, the user can be provided with tools to enable preview of the user interface and allow for modifications from time to time. The customization can then be saved to the user profile or user account in operation 312. In operation 314, the custom configuration can then be transferred to the UI settings of the vehicle to allow for display, in accordance with the arrangement configuration, selection of applications configuration, and rules enforced by the vehicle manufacturer to enable safety and use of the applications and features.
As shown in
When the user is not using the vehicle, the custom configuration can be turned off or locked out for another session. Once the user wants to start a new session, the user can log back in and the custom configuration returns. In other embodiments, the custom configuration will automatically turn off when the user is not driving the vehicle or has not logged into the vehicle. In other embodiments, the custom configuration can be automatically turned on when the user is detected. The user can be detected using biometrics, login credentials, image detection of the face, fingerprint detection, retina scans, etc. Still further, the custom configuration can be transferred to other vehicles.
If the user wishes to use his or her custom configuration in another vehicle, the user can login to the custom configuration or user account from another vehicle. If the other vehicle does not have all the system components needed to define the custom configuration, the custom configuration can be supplemented with other similar components automatically. In other embodiments, the custom configuration can be transferred from one vehicle to another, or when the user buys a new vehicle. In another embodiment, the custom configuration can be adjusted based on the driver. The custom configuration can also be preset remotely from the Internet, using the cloud services. The custom configuration can also be configured to provide limited use of certain systems or the vehicle, such as when a guest is driving the vehicle. In other embodiments, restrictions can be placed on the vehicle speed, location of driving, and automatic notifications for the user or the master user of the vehicle. The master user of the vehicle can have a master account with administrator credentials.
In still another embodiment, the vehicle can be loaned to a child of driving age (under 21/18 years of age), and the child can be provided with restricted use of the vehicle. When the child exceeds or does not follow the restrictions of the vehicle, automatic notifications can be provided to the user that is the administrator of the vehicle. The notifications can be by cell phone, smartphone, tablet computer, mobile device, text messages, phone calls, commendations of phone calls and text, audio messages, audible sounds, vibrations, and commendations thereof. History use of the vehicle can also be maintained in cloud services. The history use can provide the user with information as to where the vehicle has been, the speed or events, violations that occurred when use of the vehicle etc. The configuration can also provide messages to the driver warning the driver of when the vehicle has exceeded a restriction, or is approaching a restriction in use, driving area, speed, etc.
In operation 404, the method provides controls to enable user input to select systems and placement of control interfaces on-screen views or pages of screen displays. The screen displays can have various configurations, placements, sizes, number of pages, tabs, etc., and the user can provide controls for some or all of the interfaces and controls in certain locations. In operation 406, selection can be enabled for third-party applications. The third-party applications can be selected from the vehicle site, or by providing links to third-party sites. The third-party applications can be pre-identified by the site and displayed to the user if they are compatible with the particular vehicle selected. In another embodiment, the third-party applications can all be shown to the user whether or not they are compatible with the vehicle. Upon binding/pairing or attempting to find application for the vehicle, compliance as to whether the applications operate or comply with the particular vehicle can be made.
As mentioned in this disclosure, certain third-party applications can be reviewed by the vehicle site administrators before they are made available to users for selection. In other embodiments, the third-party applications can be approved or disapproved. In still other embodiments, the third-party applications can be augmented with restrictions made by the vehicle manufacturer, or dictated by law. The restrictions can be applied, based on the anticipated interfacing with the vehicle interfaces, to ensure safety during driving. For instance, if a particular application requires entry of text, navigation of controls, or other activities that would distract the driver during operation of the vehicle, such vehicle controls or application controls for application interfaces can be temporarily disabled. In some embodiments, when the vehicle has come to a stop or is place to park, certain controls or interfaces can be re-enabled. In operation 408, the tools provided by the vehicle site or third-party site can provide for customization of the layout of the display screens of the user interface.
The customization can include organizing or laying out system interfaces as well as application interfaces, such as those interfaces provided by 3rd parties. In operation 410, interface rules are applied to determine if the system interfaces can be replaced with third-party application interfaces, while providing access to the control interfaces via the APIs of the systems. For example, if the user wants to provide a custom speed indicator, the speed indicator must be compliant (via APIs and/or mapping) with the system interfaces so that the speed readings can be populated to the third-party application. In operation 412, rules can be integrated with or applied to the applications and system user interfaces for when the vehicle is moving. As mentioned above, such rules can limit interactivity with certain user interfaces while the vehicle is moving to prevent unsafe driving. In operation 414, the custom user interface is saved to the user profile.
The user profile may contain settings, such as selections of the user interface components associated with the system of the vehicle, as well as user interface is provided by third-party applications. In addition, the user profile can contain and store settings provided by the user. The settings provided by the user, as mentioned is this disclosure can also be learned settings based on use. The settings can further include remote access settings, as well as settings allow the user to control vehicle components from a remote location or a remote computer. The setting can also include providing access to the user account to view historical driving patterns, recent driving activities, the performance of the vehicle during specific driving sessions, the performance of specific vehicle components, etc.
In operation 416, the custom user interface configuration can then be transferred to the vehicle. The custom configuration, as mentioned above is stored in the database of the vehicle manufacturer, or a database held by a 3rd party that cooperates with the vehicle manufacturer to provide cloud services. The database, in one embodiment, is a network accessible storage which allows access to the user to program and modify the user interface using any computer or device having access to the Internet, including the vehicle itself or a third-party vehicle. The method then proceeds to operation 418 where the custom user interface can be activated in managed for Internet connectivity for components of the custom interface. For example, the vehicle's Internet access protocols can be set, or registered with an Internet provider or service provider for the cloud services. The service provider for the cloud services can be the vehicle manufacturer, a company cooperating with the vehicle manufacturer, a third-party company, or combinations thereof.
In operation 420, the method can also enable local communication with mobile devices that may be in the vehicle. The enablement may be provided by allowing synchronization with the computing system of the vehicle, or with the computing communications of the portable device. For example, the local communication can be paired automatically, based on a preset pairing process where pairing keys are entered. This provides for automatic settings and synchronization when the user enters the vehicle with the portal device. As mentioned above, user interfaces associated with applications loaded on the user's portal device can also synchronize to the display screens of the vehicle, as predefined by the user.
Accordingly, the disclosed methods may allow users to add various vehicles to the user profile, including cars from different brands 520, such as Brand X and brand Y. In the illustrated example, the user profile for the user 121 may include custom user settings, custom interface styles, custom applications, and other custom settings and learned settings as described in this disclosure.
The users also able to select various applications from an application database 504, which may provide a plurality of applications from vehicle manufacturers, and the user can select applications for the vehicle types selected. In one embodiment, certain applications can include native vehicle functions as well as control and mapping protocols to allow the applications to interface with native system controls through appropriate map APIs. In operation 510, the custom user interface can be generated using cloud processing with the preferences set by the user, the applications, the native vehicle controls, and the customer arrangements. The profile that was generated can then be synchronized to the vehicle, such as car A.
The synchronization may include downloading of the customized interface from cloud services to the vehicle. In other embodiments, part or all of the customization created on the portable device or other computer can be transferred to the vehicle directly, without requiring transfer from cloud processing. In other embodiments, the synchronization or transfers can include operations performed by portable devices local to the vehicle, computing devices on the vehicle, computing devices of cloud processing, or combinations thereof.
Charge grid load 624 data can also be collected, for example for electric vehicle data. Charge grid load 624 can obtain data from a grid power demand source 610, which can include power companies local utilities and the like. Route based discounts 626 can also be provided to the user, by collecting mapping data 614 as well as discounts provided by goods and services providers in the marketplace. Mapping data 630 can also be managed, to monitor the location of the vehicle in relation to goods and services that may be provided when the vehicle is in proximity. In some embodiments, discount data, advertisements, sales, goods and services offers, etc., can be provided to the user automatically based on the vehicle's location.
In other embodiments, the user can provide settings in the user interface that identifies which type of offers or discounts or information the user wishes to receive. In some embodiments, alerts regarding offers and discounts can be provided to the user in an audio manner, to avoid driving distractions. Live traffic data 616 can also be provided to the data manager 602, as well as geo-data 612. The data manager 602 is in communication with cloud services 120, to provide these services to computer 640, smart devices 642, remote location 644, and a display of the vehicle 162.
The display the vehicle can be interfaced with logic that runs on vehicle electronics. The vehicle of products can include memory and processors that execute instructions, operating systems, API processing, application management, telecommunications, network accessing, local communication with wireless devices, and general communication with the Internet. Route request can also be provided at the demand of the user via the display 162, and instant routing 604 can provide routes to the user based on data collected and managed by data manager 602.
Each input 1804 will then trigger manipulation of the system's model 1802 portion of the APP software paradigm thus invoking stored routines within APPS 104 which then in turn interact with the vehicle's API system 130 built upon the vehicle's operating system 129. Depending on the app presented to the user 121, the input may trigger stored routines or functions on APP software or operating system level restricted stored routines or functions.
After the processing of stored procedure code is manipulated with arguments provided by the controller 1804 inputs, visual and or sensory results are presented to the user in the view 1806 portion of the model view controller paradigm. These sensory outputs, data streams, electrical signals may all be translated as additional options, results, dynamic updating, audio or visual graphical user interface changes 1810 on any of the user's connected display devices. The user will notice these results visually or audibly but may also feel or detect changes in the vehicle's mechanical systems. Updates from the model 1802 may also be used to toggle vehicle settings 1814 which in turn may invoke changes in the vehicle's physical, mechanical and electrical systems 128.
Finally, the system controller 1804 may receive additional updates from the vehicle systems affected or additional user 121, cloud services 120, vehicle systems feedback inputs 1812 to re-engage the user in a cyclical fashion. If no inputs are sensed, the system's controller will continue to poll its electrical and data I/O systems for input on a continuous basis.
The model view controller paradigm 1800 described is one example of the software input output lifecycle that may be used to invoke, manipulate, process, update portions of computer readable code such as APPS 104 using an intermediary API 130 to communicate with the vehicle's operating system 130. However, APPS 104 may be run on physically wired, wirelessly connected or remote devices having processing abilities to translate the computer readable code in APPS into actionable invocations on one or more vehicles in order to facilitate or utilize the vehicle's electrical and mechanical systems in prescribed or customizable fashions.
In this example, the vehicle computer 1906 has the ability to transmit, receive and process information using wired or wireless connections. One such wireless connection is provided by a wireless data sending and receiving antenna 1928 connected to a network interface 1910 useful for pairing with and communicating data with portable or stationary wireless devices which may or may not be part of a network 1902. Such wireless devices include but are not limited to wireless displays 210b, portable smart phones 210a, portable computers, 210c and even stationary objects, structures, buildings, toll bridges, other vehicles etc. The vehicle's network interface 1910 through antenna 1928 may also communicate with cloud services 120 to receive instructions from a remote location that invokes stored programs such as APPs 104 on the vehicle's computer. The vehicle may also send and receive data wirelessly in order to establish a connection with a peer-to-peer ad-hoc network. Invocations may result in output data streams interpreted by wireless devices 210b, 210a, 210c as well as wired devices such as wired displays 210d or vehicle integrated display devices such as windshield heads up projected display or integrated glass displays 210e. All data streams generated by APPs 104 stored on the vehicle's computer may also be triggered by wired devices such as vehicle sensors 1918, vehicle electrical systems 1920, vehicle electrical systems 1922, engine control systems 1924, vehicle diagnostics systems 1926, user input as well as environmental input.
A user and or vehicle may find system 1900 useful in one example, where the user drives the vehicle past an electronic toll bridge where a fee is required to pass the toll bridge. The vehicle's computer will communicate wirelessly as it passes the stationary structure transmitting and receiving information with it as it drives by. The user's vehicle may have an APP 104 installed on the vehicle computer 1906 that can process the input using the computer's wireless antenna 1928, network interface 1910, input output system, 1916 automatically responding to the toll bridge with payment information. Once the payment is received and processed, the APP 104 receives information from the stationary wireless toll taking device which is then stored either locally on the vehicle's storage 1908 or remotely using cloud services 120. The results of the transaction are then sent via data stream from the compute code running on the APP 104 to a display device(s) where the user can visually confirm that the toll was paid, accepted and show the user's remaining balance all through the GUI displayed for APP 104.
In this example of an API 130, computer readable code is arranged in such a fashion that the type of API is described and in this case, an API that allows third party control of the vehicle's HVAC system is declared. A declaration may be useful for reserving the vehicle's computer long term and short-term memory in order to run stored procedures. The shown declaration 1954 describes an example set of data that may reference memory locations and their contents. The contents of these memory location may be modified by stored procedures 1956 or functions.
This HVAC API 130 has the ability to store data relating to the vehicle's temperature, status, target temperature, split zone temperate, data from electrical and mechanical sensors, calendar dates, error information among others. Invocable functions 1956 are the methods by which a third party APP 104 may manipulate data 1954 on board a computer. Free access is not given to the restricted data on a vehicle's computer, thus a structured method or methods are described for user by third party APP developers. These functions 1956 that may or may not take arguments in order to execute may include functions in the example HVAC API that update temperatures for both the left and right or given zones of the vehicle, toggle are conditioning, allow visual skins on the APP GUI, manipulate schedules and displays etc. The HVAC API 130 described is one example of how one API can control one vehicle system. There may be variations of the APIs for multiple vehicle systems or one superset API that allows access to all of the vehicle's systems through stored procedures or methods.
The learned behavior (e.g., learned settings that provide for automatic programming) can be assigned to particular applications, particular sub-features of applications, to particular native system features of the vehicle, or combination of one or more thereof. The learned settings can also be managed via an interface, which shows to the user settings that have been learned and provides the user with options to modify learned settings. The modifications of the learned settings can be made via the vehicle display or any other device having access to cloud services. The learned settings can also be communicated to the user via notifications. Such as, “We noticed you like your truck temperature at 3 pm to be 60 degrees? Please confirm,” or “We noticed you like your car temperature at 8 am to be 75 degrees, this will be preset for you automatically,” or “We have detected your favorite settings, please login to your account to see settings we have programmed for you or make updates,” or other similar notifications via the vehicle or to any connected device over the Internet.
In other cases, notifications may not be sent. In some cases, the settings will just occur automatically. In some cases, the settings can be manually adjusted by the user away from the auto settings. In such cases, the manual setting can be learned and can be provided more weighting since the user took the time to correct an auto setting. Thus, various levels of weighting or importance can be given to leaned settings.
This decision and action engine 2218 has the ability to execute on what the assumption and reasoning logic module has determined needs to be done. The decision and action engine has the ability to produce alerts, both local, on screen, audibly, visually or remotely on a remote display device 210a-e using a data network. The decision and action engine 2218 also has the ability to change vehicle controls automatically on behalf of a user without user action based on assumptions made by the assumption and reasoning logic module 2216. Additionally, the decision and action engine has the ability to request a decision from the user preemptively in order to change vehicle controls.
This may be achieved locally or remotely requiring input from a user to proceed. For instance, the assumption and reasoning logic engine has determined that the user may want to have his or her car automatically started at 7:55 am because the user typically starts the car at 8 am. Starting the car at five minutes early will allow the system to heat the vehicle to the user's typical liking. However, the assumption and reasoning logic may have only reached a level of confidence of 75% where 80% confidence is required to act without user input. Thus, the system, being only 75% sure that the car should be turned on will automatically send the user an alert requesting a decision on whether or not to turn the vehicle on. Once the user 121 provides an decision remotely on their remote device 210a, the decision engine 2218 updates the assumption module 2216 so that it can augment it's assumptions for an updated level of confidence on the next action trigger. These actions by the user automatically and continually update the assumption and reasoning logic module 2216 in order to fine tune the level of confidence on acting without user input and learn the user's behavior for future decisions.
The system, by using prior data points has stored assumptions based on conditions, the day it is, the temperature of the environment and historical events, that the user will most likely start the vehicle's engine between 803 am and 805 am, and if the temperature is in the 30s inside the vehicle, the user will most likely set the interior temperature to between 70 and 80 degrees, it is not likely that the user will use the are conditioning unit, if there is ice on the windshield, the user will most likely defrost the windshield for 7 minutes before departure, the user usually drives between 15 and 18 miles at this time of day, the user typically starts the vehicle again in the afternoon between 505 pm and 510 pm, if the temperature is in the mid 70s, the user usually activates the AC and sets the temperature to 65 degrees, typical weekend behavior, the user typically makes frequents stops, does not have a set time the vehicle is started, uses certain APPs at certain times and has a history of certain destinations as recorded by GPS.
In one embodiment, at a remote location, a user is able to access a user interface for an application, which provides users access to user accounts. A user account can be for a user and the user can add one or more vehicles, objects, data or appliances for remote reporting, viewing and control. In one embodiment, a user is an owner or user of a vehicle. The user can register the vehicle with a remote service.
The remote service can be accessed over the Internet, such as via a website or application of a portable device. The remote service can provide a multitude of cloud services for the user, such as remote control features, remote viewing services, remote alarm controls, remote camera activation, remote audio/video recording of the vehicle (i.e., areas around the vehicle and inside the vehicle). In one embodiment, the vehicle is able to connect to the Internet (e.g., when the vehicle engine is off, on, and/or is occupied or un-occupied) to allow a user, via a remote cloud service, to access features of the vehicle. The vehicle can be accessed when running, when parked, when stopped, when moving, etc. The vehicle and its audio recording devices and video cameras can be accessed from remote locations, to allow users to remotely communicate with the vehicle or with people riding or residing inside the vehicle.
The remote communication can also allow a person to communicate remotely with people standing outside (or inside) of a vehicle. For instance, if a user is accessing his or her vehicle from a remote location, cameras installed in and/or on the vehicle allow the remote user to see a person standing proximate to the vehicle. The remote user can then communicate with a person standing proximate to the vehicle using microphones and speakers of the vehicle.
In some embodiments described herein, vehicles, structures and objects may include circuitry and communication logic to enable communication with a cloud processing system over the Internet.
In one embodiment, the services provided by the electronic systems of a vehicle can include services that access the various components or subsystems of a vehicle, such as door locks, service histories, user profiles, audio settings, entertainment settings, mapping functions, communications systems, telecommunication synchronization systems, speakers, heating and cooling functions, auto-engine start/shut-off remotely via smart devices, remote heating/cooling initiation, remote face-to-face conferencing, etc. The electronic systems within a vehicle can also provide a user interface, such as a graphical user interface. The graphical user interface can include a plurality of buttons, controls and transceivers to receive input from a user. The input from a user can also be provided by voice input, facial recognition, eye-retina scans, fingerprint scans, a combination of biometrics, or via a capacitive or regular touchscreen contained or displayed within the vehicle, the vehicle's glass, doors, dashboard, etc.
In one embodiment, vehicles can maintain information regarding where they are, where they are heading and their destination maintained which is maintained by GPS and navigation systems on board. The information collected and maintained by every vehicle may be mutually exclusive, meaning that only each individual vehicle is aware of its own heading, rate of speed and current location. This information, in one embodiment is crowd sourced and/or crowd shared/consumed for use in for accident avoidance or other communication. By networking vehicles within a certain radius together, all individually location-aware vehicles become aware of all other vehicles in their sphere of influence. Vehicles may network with vehicles in their range using wireless communication systems such as but not limited to Wi-Fi, Wi-Gig LTE, cellular, radio, near field communication or other methods.
In one embodiment, the communications of the vehicle and electronics of the vehicle will enable direct communication with a user of the vehicle. The user of the vehicle can include, for instance, the owner of the vehicle, a driver of the vehicle, or any third party having access to the vehicle (either to drive the vehicle, to monitor the vehicle remotely, etc.)
The access to the data can also be encrypted to prevent unauthorized access to the data. GPS and mapping services can also be in communication with the cloud processing 120 provide data concerning the locations of the vehicles and activities that occurred to the vehicles when at particular locations. The cloud processing 120 can be access by the vehicles themselves using their electronics and communications, via mobile devices, from home, from work, etc.
In some embodiments, the vehicles may establish peer-to-peer links to facilitate fast transfer of data. In other embodiments, vehicles may link to each other using pairing algorithms that allow the vehicles to exchange data using WiFi, Bluetooth, near field communication (NFC), or some other short range communication protocol.
A user's APP homepage may also include dynamically updating sections in which the most important information at a given time may be displayed or surfaced to a user. If a user has parked in a certain parking area, he or she may want to monitor metrics related to incidents that may have occurred to his or her vehicle, vehicles around his or her vehicle, any dynamically received alerts, as well as precaution levels. Additionally, a user may choose to configure his or her APP homepage to display the most pertinent audio and video feeds to their needs.
In one embodiment, the vehicles can communicate directly with each other via a temporary pairing process. The temporary pairing process can be automatically enabled when vehicles become too close to each other, for example. When this happens, local communication between the vehicles, such as a peer-to-peer connection, Wi-Fi connection, NFC connection, or Bluetooth connection can be established to enable the vehicles to share information concerning their proximity to one another. This local communication will enable one or both vehicles to take correction actions or alert a driver to change course or trigger automatic collision prevention measures (e.g., more aggressive notifications to one or both operators, slow the speed of one or more vehicles, change the driving direction of one or more vehicles, etc.). Once the close proximity communication occurs and some corrective action is made, the data regarding the occurrence and the actions taken can be communicated to the cloud system for storage. The information can then be viewed by a registered user having access to an account for the vehicle(s).
In one embodiment, a method for customizing a user interface is provided. The method includes receiving a request to customize a user interface of a vehicle and providing selection options to identify a vehicle type among a plurality of vehicle types. Each vehicle type is associated with system components native to the vehicle type and one or more of the control interfaces that can be mapped to an application programming interface (API). The method includes identifying a plurality of applications available for the vehicle type, where each of the applications has a link to at least one of the control interfaces via the API of the system components. The method includes receiving selection of the vehicle type at cloud services, which interfaces with a website over the Internet or a backend of a website over the Internet. The method includes receiving selection of an application selected from the plurality of applications, the selection of the application is made so as to add an app interface for the application to the user interface of the vehicle. The method, at cloud services, generates a custom configuration of the user interface for the vehicle type that includes system interfaces for some of the system components native to the vehicle type and the app interface for the application. The custom configuration is saved to a user account, at a database in cloud storage associated with cloud services. In one embodiment, code for the custom configuration is transferred to a vehicle that is to be associated with the user account. The code of the custom configuration is defined to set a display of the vehicle to provide the user interface having the system interfaces along with the app interface, the method is executed by one or more processors.
In some embodiments, the method includes receiving a request to modify the custom configuration; enabling changes to the selection of the application, the changes including adding additional applications or removing the application; regenerating the custom configuration with the changes; saving the custom configuration to the user account, and transferring the custom configuration having the changes to the vehicle.
In some embodiments, the method includes enabling identification of a second vehicle for the user account, the second vehicle having a second vehicle type.
In some embodiments, the method includes processing a request to transfer the custom configuration to the second vehicle. The processing of the request includes, automatically updating the system components for the second vehicle type, the system components of the second vehicle including more or less features based on the second vehicle type as defined by a manufacturer of the second vehicle; and determining if the application functions for the second vehicle type, and providing options to select an update for the application in response to processing the request to transfer the custom configuration when the application does not fully function for the second vehicle type.
In some embodiments, the manufacturer of the vehicle and the second vehicle is either the same or different.
In some embodiments, the method includes processing a request to use the custom configuration on a second vehicle. The processing of the request includes, receiving login credentials for the user account to enable the use of the custom configuration from the second vehicle, automatically updating the system components for the second vehicle type, the system components of the second vehicle including more or less features based on the second vehicle type as defined by a manufacturer of the second vehicle; and determining if the application functions for the second vehicle type, and if the application does not function for the second vehicle type, either omitting the application from the custom configuration or providing a replacement application for the application.
In some embodiments, the method includes maintaining a database of user accounts, each user account having one or more custom configurations of the user interface; processing a request to use a second custom configuration on the vehicle, the request being received from the vehicle upon entering credentials to access a second user account; transferring the second custom configuration to the vehicle for use while the credentials of the second user account are active on the vehicle, wherein the request to use the second custom configuration terminates use of the custom configuration in favor of the second custom configuration.
In some embodiments, the method includes terminating a session of use of the custom configuration on the vehicle, termination of the session acts to, reset the display of the vehicle to provide the user interface with system interfaces that are default set by the manufacturer of the vehicle; or set a second custom configuration for a second user account.
In some embodiments, the display of the vehicle includes any one or more of a main dashboard display, or a center console display, or a headrest display, or a movable display, or a wireless display, or a wire-connected display.
In some embodiments, the method includes receiving a request to make changes to add or remove applications from the custom configuration.
In some embodiments, the method includes enabling a user interface tool to arrange some of the system components and app components of the application on a display, the arranging includes defining positional locations for graphical user interface (GUI) items of the custom configuration.
In some embodiments, the method includes enabling linking of one or more applications executed on a mobile device to be presented on the display of the vehicle in accordance with the custom configuration, the linking enabled upon pairing the mobile device with electronics of the vehicle.
In some embodiments, the method includes receiving user input via the custom configuration; learning patterns of user input over time; automatically programming one or more components of the custom configuration based on the learned patterns of user input.
In some embodiments, the method includes automatically adjusting positional locations for graphical user interface (GUI) items of the custom configuration based on the learned patterns; and saving the adjustments to the user account, the user account being saved in a database that is interfaced over the Internet with cloud services that execute code using one or more processors.
In some embodiments, the one programming of one or more components of the custom configuration includes automatically setting input based on times of day or days of week, or dates of month, or combinations thereof.
In some embodiments, the custom configuration of the vehicle is transferable to a second vehicle.
In some embodiments, the custom configuration is saved to the user account in cloud storage, and cloud processing provides communication with the vehicle over the Internet.
In some embodiments, the cloud processing provides a website interface to enable selection of the vehicle type and the application to define the custom configuration and also enables updates to the custom configuration to add, delete or update applications to be associated with the custom configuration.
In some embodiments, the code for the custom configuration is transferred to the vehicle upon receiving credentials to access the user account from the vehicle so as to associate the vehicle to the custom configuration, the association of the custom configuration to the vehicle being for a period of time.
In some embodiments, the period of time is for a session that remains until logged out of the user account, or a second user account logs in to define a new session with a second custom configuration of the second user account.
In some embodiments, the vehicle electronics are programmed with a master account, the master account being in communication with cloud services over the Internet, the master account enabling use of the custom configuration with one or more restrictions.
In some embodiments, the restrictions include enabling, disabling or regulating system components of the vehicle, enabling or disabling certain applications of the custom configuration, wherein the restrictions being updateable over a website that enables remote configuration and monitoring of the vehicle using cloud services over the Internet for the master account, the master account enabling one or more user accounts to be used on the vehicle, such that one or more custom configurations are usable on the vehicle during respective sessions.
In some embodiments, the predefined code is application programming interface (API) for communicating with at least one control interface of the system component.
In one embodiment a computer implemented method is provided. The method provides providing access to cloud services over the Internet for customizing a user interface of a vehicle; providing selection options to identify a vehicle type among a plurality of vehicle types, each vehicle type being associated with system components native to the vehicle type; identifying a plurality of applications available for the vehicle type, each of the applications provided with code for linking to at least one control interface of the system components; receiving selection of an application selected from the plurality of applications, the selection of the application being made so as to add an app interface for the application to the user interface of the vehicle; generating a custom configuration of the user interface for the vehicle type that includes system interfaces for some of the system components native to the vehicle type and the app interface for the application; saving the custom configuration to a user account in a database interfaced with the cloud services; and transferring the custom configuration to electronics of a vehicle from database, the custom configuration being defined to set a display of the vehicle to provide the user interface having the system interfaces along with the app interface, the method being executed by a processor.
The various embodiments may be embodied in computer readable media, which is saved in storage. The storage may be saved on cloud storage, data centers, or the like, which are accessible over the Internet. The access may be wired or wireless. In vehicles, the connection to the Internet may be wireless, and the connection can be continuous or non-continuous depending connection. Code on the vehicle electrons can execute at least some of the method operations when not connected and other operations are executed jointly between vehicle electronics (e.g., memory, code and processors of a vehicle) and cloud processing, which may implement one or more servers, either virtual or not.
It will be obvious, however, to one skilled in the art, that the present invention may be practiced without some or all of these specific details. In other instances, well known process operations have not been described in detail in order not to unnecessarily obscure the present invention.
The various embodiments defined herein may define individual implementations or can define implementations that rely on combinations of one or more of the defined embodiments. Further, embodiments of the present invention may be practiced with various computer system configurations including hand-held devices, microprocessor systems, microprocessor-based or programmable consumer electronics, minicomputers, mainframe computers and the like. The invention can also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a wire-based or wireless network.
With the above embodiments in mind, it should be understood that the invention could employ various computer-implemented operations involving data stored in computer systems. These operations are those requiring physical manipulation of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared and otherwise manipulated.
Any of the operations described herein that form part of the invention are useful machine operations. The invention also relates to a device or an apparatus for performing these operations. The apparatus can be specially constructed for the required purpose, or the apparatus can be a general-purpose computer selectively activated or configured by a computer program stored in the computer. In particular, various general-purpose machines can be used with computer programs written in accordance with the teachings herein, or it may be more convenient to construct a more specialized apparatus to perform the required operations.
The invention can also be embodied as computer readable code on a computer readable medium. The computer readable medium is any data storage device that can store data, which can thereafter be read by a computer system. The computer readable medium can also be distributed over a network-coupled computer system so that the computer readable code is stored and executed in a distributed fashion.
Although the foregoing invention has been described in some detail for purposes of clarity of understanding, it will be apparent that certain changes and modifications can be practiced within the scope of the appended claims. Accordingly, the present embodiments are to be considered as illustrative and not restrictive, and the invention is not to be limited to the details given herein, but may be modified within the scope and equivalents of the description and claims.
Claims
1. A method, comprising:
- receiving, by a server, a request to access the server that provides logic for defining by a user a custom user interface for a vehicle associated with a user account of the user;
- receiving, by the server, selection options for associating applications to the custom user interface, the applications including interfaces associated with functionalities of the vehicle and interfaces for connecting with internet accessible services;
- receiving, by the server, arrangement selections for placing at least one of the interfaces at a user defined location of a display screen of the vehicle, the selection options of the associated applications and the arrangement selections defining the custom user interface for the vehicle and being associated with the user account; and
- communicating, by the server, the custom user interface to memory and electronics of the vehicle over a wireless internet connection, the custom user interface is to be rendered on the display screen of the vehicle responsive to the vehicle being used with or associated with the user account, wherein the method is by a processor of the server or one or more servers of a cloud services system;
- wherein the custom user interface is saved in association with the user account in a database, and the server is provided with communication with the vehicle over the Internet via the wireless Internet connection;
- wherein the server provides a website interface to enable selection of a vehicle type and the applications to define the custom user interface and also enables updates to the custom user interface to add, delete or update applications to be associated or disassociated with the custom user interface.
2. The method of claim 1, wherein the server manages the user account and user accounts of a plurality of users, the server includes logic for identifying types of vehicles and filtering applications available for associating to custom user interfaces for user accounts based on identified vehicle types, the server further includes logic for identifying a type of the display screen to enable the arrangement selections for placing the at least one of the interfaces at the user defined locations.
3. The method of claim 1, further comprising,
- receiving a request to transfer the custom user interface to a second vehicle that is associated to the user account, the custom user interface being rendered at least in part on a display screen of the second vehicle based on compatibility of the custom user interface on the second vehicle.
4. The method of claim 1,
- wherein the server manages the user account and the definition of the custom user interface;
- wherein a user device or a vehicle computer is provided access to the user account to define the custom user interface or update the custom user interface or add or remove applications.
5. The method of claim 1, wherein a user device proximate to the vehicle is synchronized to the electronics of vehicle, such that at least one application or data of the user device is populated to the custom user interface.
6. The method of claim 1, further comprising,
- receiving, by the server, a request to modify the custom user interface;
- processing, by the server, changes including adding applications or removing applications;
- making, by the server, updates to the custom user interface with the changes;
- exchanging the updates between the server and the vehicle.
7. The method of claim 1, further comprising,
- processing, by the server, a request to transfer the custom user interface to a second vehicle, the processing of the request includes,
- automatically updating the custom user interface for the second vehicle, the updating causing addition or subtraction of applications or interfaces for compatibility with the second vehicle.
8. The method of claim 7, wherein a manufacturer of the vehicle and the second vehicle is either same or different.
9. The method of claim 1, wherein the user account is accessible on the vehicle, the user account providing for login credentials for one or more users, wherein the one or more users have the same or different access privileges to the applications and interfaces of the custom user interface.
10. A method, comprising:
- receiving, by a server, a request to access the server that provides logic for setting by a user a custom user interface for a vehicle associated with a user account of the user;
- receiving, by the server, selection options for associating applications to the custom user interface, the applications including interfaces associated with functionalities of the vehicle and interfaces for connecting with internet accessible services;
- receiving, by the server, arrangement selections for placing at least one of the interfaces at a user defined location of a display screen of the vehicle, the selection options of the associated applications and the arrangement selections defining the custom user interface for the vehicle and being associated with the user account;
- communicating, by the server, the custom user interface to storage of the vehicle for access by electronics of the vehicle over a wireless internet connection, the custom user interface is to be rendered on the display screen of the vehicle responsive to the vehicle being used with or associated with the user account;
- maintaining, by the server, a database of user accounts of which the user account is part of, each user account capable of having one or more custom user interfaces for one or more vehicles;
- processing, by the server, a request to use a second custom user interface on the vehicle, the request being received for the vehicle upon entering credentials to access a second user account;
- transferring, by the server, the second custom user interface to the vehicle for use while the credentials of the second user account are active on the vehicle, wherein use of the second custom user interface, after use of the custom user interface, terminates a session of use of the custom user interface in favor of the second custom user interface.
11. The method of claim 1, further comprising,
- terminating a session of use of the custom user interface on the vehicle, termination of the session acts to,
- reset the display screen of the vehicle to provide system interfaces that are default-set by a manufacturer of the vehicle or a user; or
- set a second custom user interface for a second user account.
12. The method of claim 1, wherein the display screen of the vehicle includes any one or more of a main dashboard display, or a center console display, or a combined main dashboard and center console display, or a glass surface, or a windshield display, or a window display, or a touch surface display, or a headrest display, or a movable display, or a wireless display, or a wire-connected display.
13. The method of claim 1, further comprising,
- enabling a tool of the user interfaces to place the interfaces for rendering on the display screen, the tool being provided via the website.
14. The method of claim 1, further comprising,
- enabling linking of one or more applications of a mobile device to be presented on the display screen of the vehicle in accordance with the custom user interface of the user account, the linking enabled upon pairing the mobile device with the electronics of the vehicle.
15. The method of claim 10, wherein the display screen of the vehicle includes any one or more of a main dashboard display, or a center console display, or a combined main dashboard and center console display, or a glass surface, or a windshield display, or a window display, or a touch surface display, or a headrest display, or a movable display, or a wireless display, or a wire-connected display.
16. A method, comprising:
- identifying a user account associated with a vehicle, the user account being associated with a custom user interface that is to be used in the vehicle, the custom user interface including text, icons or combinations of text and icons associated with native controls of the vehicle or applications installed on a computer of the vehicle;
- receiving user input via the custom user interface of the vehicle, the user input used to identify learning patterns of user input over time for the user account;
- associating conditions, including vehicle conditions of the vehicle to when at least one user input was received, the vehicle conditions being captured by sensors of the vehicle or obtained from one or more applications accessible over an Internet connection established by the vehicle with a server;
- automatically programming one or more features for the custom user interface in the vehicle based on the learned patterns of user input and the associated conditions,
- wherein the custom user interface changes from time to time based on the received user input via the custom user interface and the associated conditions, the changes cause select one or more of the features to be included or excluded in the custom user interface;
- wherein the custom user interface is to be rendered on a display screen in the vehicle;
- wherein the method is executed by a processor.
17. The method of claim 16, further comprising,
- automatically adjusting an arrangement of the one or more features to be included based on the learned patterns; and
- saving the adjustments to the user account, the user account being saved in memory local to the vehicle and from time to time to a database that is interfaced over the Internet with the server that execute code using one or more processors.
18. The method of claim 1, wherein the custom user interface is active at the vehicle for a period of time or deactivated at the vehicle when credentials of the user account are not verified or a logout is detected,
- wherein the custom user interface when active is associated to a login account, the login account configured to save use data for the vehicle, the use data of the vehicle being linked to automatic notifications, such that certain use data triggers an automatic notification to an administrator of the user account, the notifications including one of text notifications, phone call notifications, web notifications, smartphone notifications, social network notifications, or combinations thereof.
19. The method of claim 1, further comprising,
- associating biometrics to the user account, the biometrics being used to monitor use of the vehicle and determine if the custom user interface is to be enabled, or if a guest custom user interface is to be enabled, or if public custom user interface is to be enabled, the user account includes profile data defining when particular custom user interfaces are to be enabled,
- wherein the biometrics include one or more of image data of a driver's face, a passenger's face, a finger print, a retina scan, a signature, a gesture, a user input, a login, a key, a paring device, or combinations of two or more thereof.
20. The method of claim 16, further comprising,
- enabling linking of one or more applications of a mobile device to be presented on the display screen of the vehicle in accordance with the custom user interface of the user account, the linking enabled upon pairing the mobile device with electronics of the vehicle.
3690397 | September 1972 | Parker |
3799063 | March 1974 | Reed |
3867682 | February 1975 | Ohya |
4052655 | October 4, 1977 | Vizza |
4102273 | July 25, 1978 | Merkle et al. |
4132174 | January 2, 1979 | Ziegenfus et al. |
4162445 | July 24, 1979 | Campbell |
4309644 | January 5, 1982 | Reimers |
4347472 | August 31, 1982 | Lemelson |
4383210 | May 10, 1983 | Wilkinson |
4389608 | June 21, 1983 | Dahl et al. |
4405891 | September 20, 1983 | Galloway |
4433278 | February 21, 1984 | Lowndes et al. |
4450400 | May 22, 1984 | Gwyn |
4532418 | July 30, 1985 | Meese |
4789047 | December 6, 1988 | Knobloch |
4815840 | March 28, 1989 | Benayad-Cherif et al. |
5049802 | September 17, 1991 | Mintus et al. |
5121112 | June 9, 1992 | Nakadozono |
5132666 | July 21, 1992 | Fahs |
5184058 | February 2, 1993 | Hesse |
5202617 | April 13, 1993 | Nor |
5297664 | March 29, 1994 | Tseng et al. |
5306999 | April 26, 1994 | Hoffman |
5315227 | May 24, 1994 | Pierson |
5327066 | July 5, 1994 | Smith |
5343970 | September 6, 1994 | Severinsky |
5422624 | June 6, 1995 | Smith |
5434781 | July 18, 1995 | Alofs |
5441122 | August 15, 1995 | Yoshida |
5449995 | September 12, 1995 | Kohchi |
5487002 | January 23, 1996 | Diler et al. |
5488283 | January 30, 1996 | Doughert et al. |
5492190 | February 20, 1996 | Yoshida |
5548200 | August 20, 1996 | Nor |
5549443 | August 27, 1996 | Hammerslag |
5555502 | September 10, 1996 | Opel |
5563491 | October 8, 1996 | Tseng |
5585205 | December 17, 1996 | Kohchi |
5594318 | January 14, 1997 | Knor |
5595271 | January 21, 1997 | Tseng |
5596258 | January 21, 1997 | Kimura et al. |
5612606 | March 18, 1997 | Guimarin et al. |
5627752 | May 6, 1997 | Buck et al. |
5636145 | June 3, 1997 | Gorman et al. |
5642270 | June 24, 1997 | Green et al. |
5666102 | September 9, 1997 | Lahiff |
5691695 | November 25, 1997 | Lahiff |
5694019 | December 2, 1997 | Uchida et al. |
5701706 | December 30, 1997 | Kreysler et al. |
5736833 | April 7, 1998 | Farris |
5760569 | June 2, 1998 | Chase, Jr. |
5778326 | July 7, 1998 | Moroto et al. |
5790976 | August 4, 1998 | Boll et al. |
5892598 | April 6, 1999 | Asakawa et al. |
5916285 | June 29, 1999 | Alofs et al. |
5974136 | October 26, 1999 | Murai |
5998963 | December 7, 1999 | Aarseth |
6014597 | January 11, 2000 | Kochanneck |
6049745 | April 11, 2000 | Douglas et al. |
6067008 | May 23, 2000 | Smith |
6081205 | June 27, 2000 | Williams |
6085131 | July 4, 2000 | Kim |
6151539 | November 21, 2000 | Bergholz et al. |
6175789 | January 16, 2001 | Beckert et al. |
6225776 | May 1, 2001 | Chai |
6234932 | May 22, 2001 | Kuroda et al. |
6236333 | May 22, 2001 | King |
6252380 | June 26, 2001 | Koenck |
6301531 | October 9, 2001 | Pierro |
6307349 | October 23, 2001 | Koenck et al. |
6330497 | December 11, 2001 | Obradovich et al. |
6330499 | December 11, 2001 | Chou et al. |
6370475 | April 9, 2002 | Breed et al. |
6373380 | April 16, 2002 | Robertson et al. |
6416209 | July 9, 2002 | Abbott |
6434465 | August 13, 2002 | Schmitt et al. |
6456041 | September 24, 2002 | Terada et al. |
6466658 | October 15, 2002 | Schelberg, Jr. et al. |
6480767 | November 12, 2002 | Yamaguchi |
6487477 | November 26, 2002 | Woestman et al. |
6498454 | December 24, 2002 | Pinlam |
6511192 | January 28, 2003 | Henion |
6586866 | July 1, 2003 | Ikedo |
6614204 | September 2, 2003 | Pellegrino et al. |
6629024 | September 30, 2003 | Tabata |
6727809 | April 27, 2004 | Smith |
6741036 | May 25, 2004 | Ikedo |
6765495 | July 20, 2004 | Dunning et al. |
6789733 | September 14, 2004 | Terranova |
6794849 | September 21, 2004 | Mori et al. |
6850898 | February 1, 2005 | Murakami |
6915869 | July 12, 2005 | Botti |
6922629 | July 26, 2005 | Yoshikawa et al. |
6937140 | August 30, 2005 | Outslay |
6940254 | September 6, 2005 | Nagamine |
7013205 | March 14, 2006 | Hafner |
7039389 | May 2, 2006 | Johnson, Jr. |
7084781 | August 1, 2006 | Chuey |
7201384 | April 10, 2007 | Chaney |
7269416 | September 11, 2007 | Guthrie et al. |
7289611 | October 30, 2007 | Iggulden |
7376497 | May 20, 2008 | Chen |
7379541 | May 27, 2008 | Iggulden et al. |
7402978 | July 22, 2008 | Pryor |
7532965 | May 12, 2009 | Robillard |
7565396 | July 21, 2009 | Hoshina |
7630802 | December 8, 2009 | Breed |
7650210 | January 19, 2010 | Breed |
7674536 | March 9, 2010 | Chipchase |
7683771 | March 23, 2010 | Loeb |
7693609 | April 6, 2010 | Kressner et al. |
7698078 | April 13, 2010 | Kelty et al. |
7740092 | June 22, 2010 | Bender |
7751945 | July 6, 2010 | Obata |
7778746 | August 17, 2010 | McLeod |
7796052 | September 14, 2010 | Katz |
7850351 | December 14, 2010 | Pastrick et al. |
7869576 | January 11, 2011 | Rodkey et al. |
7885893 | February 8, 2011 | Alexander |
7949435 | May 24, 2011 | Pollack |
7956570 | June 7, 2011 | Lowenthal |
7979198 | July 12, 2011 | Kim et al. |
7986126 | July 26, 2011 | Bucci |
7991665 | August 2, 2011 | Hafner |
8006793 | August 30, 2011 | Heichal et al. |
8027843 | September 27, 2011 | Bodin et al. |
8036788 | October 11, 2011 | Breed |
8054048 | November 8, 2011 | Woody |
8072318 | December 6, 2011 | Lynam |
8103391 | January 24, 2012 | Ferro et al. |
8256553 | September 4, 2012 | De Paschoal |
8262268 | September 11, 2012 | Pastrick et al. |
8265816 | September 11, 2012 | LaFrance |
8266075 | September 11, 2012 | Ambrosio et al. |
8294420 | October 23, 2012 | Kocher |
8333492 | December 18, 2012 | Dingman et al. |
8336664 | December 25, 2012 | Wallace et al. |
8350526 | January 8, 2013 | Dyer et al. |
8366371 | February 5, 2013 | Maniscalco et al. |
8392065 | March 5, 2013 | Tolstedt |
8405347 | March 26, 2013 | Gale |
8482255 | July 9, 2013 | Crombez |
8483775 | July 9, 2013 | Buck et al. |
8483907 | July 9, 2013 | Tarte |
8490005 | July 16, 2013 | Tarte |
8508188 | August 13, 2013 | Murtha et al. |
8521599 | August 27, 2013 | Rivers, Jr. et al. |
8527135 | September 3, 2013 | Lowrey et al. |
8527146 | September 3, 2013 | Jackson |
8552686 | October 8, 2013 | Jung |
8589019 | November 19, 2013 | Wallace et al. |
8624719 | January 7, 2014 | Klose |
8630741 | January 14, 2014 | Matsuoka et al. |
8635091 | January 21, 2014 | Amigo |
8643329 | February 4, 2014 | Prosser et al. |
8660734 | February 25, 2014 | Zhu et al. |
8686864 | April 1, 2014 | Hannon |
8694328 | April 8, 2014 | Gormley |
8706394 | April 22, 2014 | Trepagnier et al. |
8713121 | April 29, 2014 | Bain |
8717170 | May 6, 2014 | Juhasz |
8725551 | May 13, 2014 | Ambrosio et al. |
8751065 | June 10, 2014 | Kato |
8751271 | June 10, 2014 | Stefik et al. |
8760432 | June 24, 2014 | Jira et al. |
8799037 | August 5, 2014 | Stefik et al. |
8816845 | August 26, 2014 | Hoover et al. |
8818622 | August 26, 2014 | Bergholz et al. |
8818725 | August 26, 2014 | Ricci |
8819414 | August 26, 2014 | Bellur et al. |
8825222 | September 2, 2014 | Namburu et al. |
8836281 | September 16, 2014 | Ambrosio et al. |
20020064258 | May 30, 2002 | Schelberg et al. |
20020085043 | July 4, 2002 | Ribak |
20020133273 | September 19, 2002 | Lowrey et al. |
20030137277 | July 24, 2003 | Mori et al. |
20030153278 | August 14, 2003 | Johnson |
20030205619 | November 6, 2003 | Terranova et al. |
20030234325 | December 25, 2003 | Marino et al. |
20040046506 | March 11, 2004 | Mawai et al. |
20040064235 | April 1, 2004 | Cole |
20040092253 | May 13, 2004 | Simonds et al. |
20040093155 | May 13, 2004 | Simonds et al. |
20040265671 | December 30, 2004 | Chipchase et al. |
20050021190 | January 27, 2005 | Worrell et al. |
20050035741 | February 17, 2005 | Elder |
20050044245 | February 24, 2005 | Hoshina |
20050110460 | May 26, 2005 | Arai |
20050231119 | October 20, 2005 | Ito et al. |
20060125620 | June 15, 2006 | Smith et al. |
20060182241 | August 17, 2006 | Schelberg |
20060282381 | December 14, 2006 | Ritchie |
20060287783 | December 21, 2006 | Walker |
20070068714 | March 29, 2007 | Bender |
20070126395 | June 7, 2007 | Suchar |
20070282495 | December 6, 2007 | Kempton |
20080039979 | February 14, 2008 | Bridges et al. |
20080039989 | February 14, 2008 | Pollack et al. |
20080040129 | February 14, 2008 | Cauwels et al. |
20080040223 | February 14, 2008 | Bridges et al. |
20080040295 | February 14, 2008 | Kaplan et al. |
20080052145 | February 28, 2008 | Kaplan et al. |
20080086411 | April 10, 2008 | Olson et al. |
20080097904 | April 24, 2008 | Volchek |
20080155008 | June 26, 2008 | Stiles et al. |
20080180027 | July 31, 2008 | Matsushita et al. |
20080203973 | August 28, 2008 | Gale et al. |
20080228613 | September 18, 2008 | Alexander |
20080281663 | November 13, 2008 | Hakim |
20080294283 | November 27, 2008 | Ligrano |
20080312782 | December 18, 2008 | Berdichevsky |
20090011639 | January 8, 2009 | Ballard et al. |
20090021213 | January 22, 2009 | Johnson |
20090021385 | January 22, 2009 | Kelty et al. |
20090030712 | January 29, 2009 | Bogolea |
20090043519 | February 12, 2009 | Bridges et al. |
20090058355 | March 5, 2009 | Meyer |
20090066287 | March 12, 2009 | Pollack et al. |
20090076913 | March 19, 2009 | Morgan |
20090082957 | March 26, 2009 | Agassi et al. |
20090091291 | April 9, 2009 | Woody et al. |
20090092864 | April 9, 2009 | McLean |
20090144001 | June 4, 2009 | Leonard et al. |
20090157289 | June 18, 2009 | Graessley |
20090164473 | June 25, 2009 | Bauer |
20090174365 | July 9, 2009 | Lowenthal et al. |
20090177580 | July 9, 2009 | Lowenthal et al. |
20090210357 | August 20, 2009 | Pudar et al. |
20090287578 | November 19, 2009 | Paluszek |
20090304101 | December 10, 2009 | LoPorto |
20090312903 | December 17, 2009 | Hafner et al. |
20090313032 | December 17, 2009 | Hafner et al. |
20090313033 | December 17, 2009 | Hafner et al. |
20090313034 | December 17, 2009 | Ferro et al. |
20090313098 | December 17, 2009 | Hafner et al. |
20090313104 | December 17, 2009 | Hafner et al. |
20090313174 | December 17, 2009 | Hafner et al. |
20100013434 | January 21, 2010 | Taylor-Haw et al. |
20100017045 | January 21, 2010 | Nesler et al. |
20100017249 | January 21, 2010 | Fincham et al. |
20100037057 | February 11, 2010 | Shim |
20100049396 | February 25, 2010 | Ferro et al. |
20100049533 | February 25, 2010 | Ferro et al. |
20100049610 | February 25, 2010 | Ambrosio et al. |
20100049639 | February 25, 2010 | Ferro et al. |
20100049737 | February 25, 2010 | Ambrosio et al. |
20100057306 | March 4, 2010 | Ishii et al. |
20100112843 | May 6, 2010 | Heichal et al. |
20100141206 | June 10, 2010 | Agassi et al. |
20100161481 | June 24, 2010 | Littrell |
20100161482 | June 24, 2010 | Littrell |
20100169008 | July 1, 2010 | Niwa et al. |
20100198508 | August 5, 2010 | Tang |
20100198513 | August 5, 2010 | Zeng |
20100211340 | August 19, 2010 | Lowenthal et al. |
20100211643 | August 19, 2010 | Lowenthal et al. |
20100222939 | September 2, 2010 | Namburu |
20100268426 | October 21, 2010 | Pathak et al. |
20100280956 | November 4, 2010 | Chutorash et al. |
20100304349 | December 2, 2010 | Kunin |
20110032110 | February 10, 2011 | Taguchi |
20110074350 | March 31, 2011 | Kocher |
20110074351 | March 31, 2011 | Bianco et al. |
20110077809 | March 31, 2011 | Leary |
20110106329 | May 5, 2011 | Donnelly et al. |
20110112969 | May 12, 2011 | Zaid et al. |
20110130885 | June 2, 2011 | Bowen et al. |
20110187521 | August 4, 2011 | Beruscha et al. |
20110191265 | August 4, 2011 | Lowenthal et al. |
20110193522 | August 11, 2011 | Uesugi |
20110202218 | August 18, 2011 | Yano |
20110246252 | October 6, 2011 | Uesugi |
20110279083 | November 17, 2011 | Asai |
20110309929 | December 22, 2011 | Myers |
20120013300 | January 19, 2012 | Prosser et al. |
20120019204 | January 26, 2012 | Matsuo |
20120025765 | February 2, 2012 | Frey et al. |
20120028680 | February 2, 2012 | Breed |
20120041624 | February 16, 2012 | Stewart et al. |
20120053754 | March 1, 2012 | Pease |
20120074903 | March 29, 2012 | Nakashima |
20120105197 | May 3, 2012 | Kobres |
20120123670 | May 17, 2012 | Uyeki |
20120136743 | May 31, 2012 | McQuade et al. |
20120136802 | May 31, 2012 | McQuade et al. |
20120158244 | June 21, 2012 | Talty et al. |
20120179323 | July 12, 2012 | Profitt-Brown et al. |
20120218128 | August 30, 2012 | Tieman et al. |
20120229056 | September 13, 2012 | Bergfjord |
20120229085 | September 13, 2012 | Lau |
20120232965 | September 13, 2012 | Rodriguez et al. |
20120233077 | September 13, 2012 | Tate et al. |
20120262002 | October 18, 2012 | Widmer et al. |
20120268068 | October 25, 2012 | Jung et al. |
20120268076 | October 25, 2012 | Danner |
20120268242 | October 25, 2012 | Tieman et al. |
20120280654 | November 8, 2012 | Kim |
20120296512 | November 22, 2012 | Lee et al. |
20120303397 | November 29, 2012 | Prosser |
20120306445 | December 6, 2012 | Park et al. |
20120310713 | December 6, 2012 | Mercuri et al. |
20120316671 | December 13, 2012 | Hammerslag et al. |
20130002876 | January 3, 2013 | Pastrick et al. |
20130020139 | January 24, 2013 | Kim et al. |
20130021162 | January 24, 2013 | DeBoer et al. |
20130037339 | February 14, 2013 | Hickox |
20130099892 | April 25, 2013 | Trucker et al. |
20130103236 | April 25, 2013 | Mehrgan |
20130110296 | May 2, 2013 | Khoo et al. |
20130110632 | May 2, 2013 | Theurer et al. |
20130110653 | May 2, 2013 | Rivers et al. |
20130127247 | May 23, 2013 | Oh et al. |
20130135093 | May 30, 2013 | Araki |
20130144520 | June 6, 2013 | Ricci |
20130145065 | June 6, 2013 | Ricci |
20130179057 | July 11, 2013 | Fisher et al. |
20130204466 | August 8, 2013 | Ricci |
20130241720 | September 19, 2013 | Ricci et al. |
20130253746 | September 26, 2013 | Choi et al. |
20130280018 | October 24, 2013 | Meirer et al. |
20130300554 | November 14, 2013 | Braden |
20130317693 | November 28, 2013 | Jefferies et al. |
20130317694 | November 28, 2013 | Merg et al. |
20130328387 | December 12, 2013 | Venkateswaran |
20130338820 | December 19, 2013 | Corbett et al. |
20130342363 | December 26, 2013 | Paek et al. |
20140002015 | January 2, 2014 | Tripathi et al. |
20140019280 | January 16, 2014 | Medeiros et al. |
20140021908 | January 23, 2014 | McCool |
20140042968 | February 13, 2014 | Hiroe |
20140047107 | February 13, 2014 | Maturana et al. |
20140066049 | March 6, 2014 | Cho et al. |
20140089016 | March 27, 2014 | Smullin et al. |
20140106726 | April 17, 2014 | Crosbie |
20140118107 | May 1, 2014 | Almomani |
20140120829 | May 1, 2014 | Bhamidipati et al. |
20140125355 | May 8, 2014 | Grant |
20140142783 | May 22, 2014 | Grimm et al. |
20140163771 | June 12, 2014 | Demeniuk |
20140163774 | June 12, 2014 | Demeniuk |
20140164559 | June 12, 2014 | Demeniuk |
20140172192 | June 19, 2014 | Kato |
20140172265 | June 19, 2014 | Funabashi |
20140172727 | June 19, 2014 | Abhyanker et al. |
20140179353 | June 26, 2014 | Simon |
20140200742 | July 17, 2014 | Mauti et al. |
20140203077 | July 24, 2014 | Gadh et al. |
20140207333 | July 24, 2014 | Vandivier et al. |
20140214261 | July 31, 2014 | Ramamoorthy et al. |
20140214321 | July 31, 2014 | Kawamata et al. |
20140218189 | August 7, 2014 | Fleming et al. |
20140232331 | August 21, 2014 | Stamenic et al. |
20140236414 | August 21, 2014 | Droz et al. |
20140236463 | August 21, 2014 | Zhang et al. |
20140253018 | September 11, 2014 | Kong et al. |
20140277936 | September 18, 2014 | El Dokor et al. |
20140278089 | September 18, 2014 | Gusikhin et al. |
20140300739 | October 9, 2014 | Mimar |
Type: Grant
Filed: Dec 31, 2013
Date of Patent: Jun 21, 2016
Inventors: Angel A. Penilla (Sacramento, CA), Albert S. Penilla (Sunnyvale, CA)
Primary Examiner: Yalkew Fantu
Application Number: 14/145,693
International Classification: H02J 7/00 (20060101); G06F 3/0484 (20130101); H04L 29/08 (20060101);