This disclosure relates to exercise equipment, and more particularly to range of motion exercise equipment.
Various types of afflictions such as diseases (i.e., stroke, rheumatoid arthritis), deformities, injuries, etc. can rob individuals of their physical abilities and in some cases their ability to be independent. The medical profession has researched and developed treatments over the years to aid such individuals during their recovery from such afflictions or in some cases simply learning to live with them. Affected individuals may find comfort from treatments involving massage, applying heat, along with other healing techniques to bring relief. However, the severity of some disorders may call for more invasive treatments such as surgery, proscribing drugs, etc. that further extend recovery periods.
A cost effective therapeutic exercise system may aid the recovery of individual suffering from conditions such as arthritis, carpal tunnel syndrome as well as other types of afflictions that limit physical function. Along with providing relief, the system and its components may be utilized in other applications such as strength training and other types of activities including preventive activities.
In one aspect, a system includes a device that includes one or more bladders capable of being inflated and deflated. The system also includes an information package capable of processing data representing the inflating and deflating of the one or more bladders.
Implementations may include one or more of the following features. The one or more bladders may be shaped for being received by a palm of a hand. The one or more bladders may be capable of being inflated and deflated in a repetitive manner for exercising phalanges. The system may include one or more components for controlling the inflating and deflating of the one or more bladders. The one or more components for controlling the inflating and deflating of the one or more bladders may be located remote from the device. The one or more components for controlling the inflating and deflating of the one or more bladders may be located near the device. The system may include a heat controller to control the operating temperature of the device. The one or more bladders may be fluid filled. The system may include one or more communication components capable of transmitting data from the information package to a remote location. The one or more communication components may be capable of receiving data for controlling the operations of the device.
The details of one or more embodiments of the disclosure are set forth in the accompanying drawings and the description below. Other features, objects, and advantages of the disclosure will be apparent from the description and drawings, and from the claims.
Like reference symbols in the various drawings indicate like elements.
In general, one or more medical treatment systems may include a device capable of allowing an individual to execute therapeutic exercises that may aid in recovery from an injury or illness, assist in strength training, etc. by improving the individual's movement, range of motion, etc. for a variety of body parts (e.g., hands, fingers, legs, neck, etc.). The device may be used for a variety of afflictions including carpal tunnel syndrome and arthritis, as well as stroke. For example, many individuals who suffer a stroke, for example, may have their hand(s) clenched to some extent for long periods of time, making it difficult and painful to open the hand(s) and extend the fingers. Such a device may also be employed for applications such as strength training for individuals, including athletes, who have injured an extremity or body part that has impacted their range of motion and/or normal strength. Other applications may be found in other medical arenas along with industrial and other types of arenas whereby a desired and defined range of movement or static positioning can be redefined and achieved through utilization of the device (e.g., remote appliance diagnostics). Along with being designed for any individual, in some arrangement the device design may be focused for a particular type of individual. For example, particular body parts that are used more naturally by individuals (e.g., a left-handed person, a right-handed person, etc.). Devices may also be designed for individuals of any age (e.g., infants born with physical deformities, individuals who suffer from stroke or other debilitating conditions, elderly individuals, etc.). The device may also be gender-specific (e.g., male or female) or gender independent. In some arrangements, the device design may be driven for use by non-humans, for example, a device may be adapted for the treatment of particular animals, a range of animal types, etc.
Referring to
Properties of the device 100, components of the device such as the exerciser 104, etc. may be customized for environmental variants as to further adapt to medical, industrial, entertainment-based, and other types of applications, where movement and/or static positioning of a body part may be beneficial. In the illustrated example, the air supplier 106 and the exerciser 108 provide a means of exercising the phalanges of an individual's hand by allowing for extension of some or all phalanges in a manner that can be considered both comfortable and effective for patients who are unable to physically exercise their hands under their own power. In general, to perform the exercises, the pump 106 is operated (e.g., the bulb-shaped air reservoir is squeezed) to inflate the bladder 108 for the purpose of changing the position of the target body part (e.g., straightening out the phalanges from a clenched fist). The exercise motion provided by inflating the bladder 108 can be is performed in a repetitive manner (e.g., inflating and deflating repetitively to cycle the position of the phalanges between a clenched position and a straightened position). Through this operation of the device 100, a user is enabled to manually execute a therapeutic exercise of a defined body part through the use of air pressure that opens or expands the body part to a desired range, and then closes with gentle but firm air pressure. Manual interaction would be needed in the illustrated example to allow the pump 106 to inflate the bladder 108; however one or more automatic techniques may be implemented to reduce or even remove the need for such manual interaction (e.g., provided by a healthcare worker) to execute an exercise. For example, one or more components may be included in the device 100 for controlling functions associated with the device such as controlling operations of the air supplier 102 (e.g., the pump 106). In one arrangement, such controlling components may be located on the device 100; however such components may also be located separate from the device. Such components may also be located in a distributed manner on-board the device and off-board the device. As such, control of the device may be provided from local, remote, or both local and remote components. Based on the ability to be remotely controlled, individuals (e.g., patients) who may have difficulty visiting their healthcare providers (e.g., reside in rural areas) may be able to remotely receive their treatments. For example, one or more communication systems (e.g., telephone networks, computer networks such as the Internet, etc.) may be employed for controlling the device. For example, data (e.g., commands) may be sent from a remotely located control center to the device. Along with sending data to devices, information may also be received from the device. For example, operational information (e.g., data representing periods of inflation, periods of deflation, etc.) may be sent from the device. Data received from the device may also reflect other situations (e.g., a patient may have overridden a remotely provided instruction to the device due to discomfort, complication, etc., for example, to reflect the patient is not adhering to a rehabilitation regiment). This provided information may be utilized in a variety of applications, for example, to monitor and analyze treatments of individuals, operations of the device, etc. In the case of industrial and/or appliance-based applications, equipment of all sizes, complexity, and precision tolerances can be pre-configured with the device 100 to achieve remote diagnostics—and to repair in instances where such movement may rectify an issue, achieve a desired outcome, or allow access for reconfiguration or repair. In some arrangements, thin applications may be developed on the client/device side to address (e.g., use) the captured, analyzed, etc. data.
In the illustrated example, the device 100 is specifically designed to allow the user to set the degree of inflation according to comfort, physician-recommended level of therapy and/or exercise, etc. to achieve a range of movement or positions (for static applications). To assist with operations, additional components may be incorporated into the device 100. For example, a safety release valve 110 may be included to regulate the pressure within the bladder 108 (e.g., so as not to exceed a predefined pounds-per-square-inch (PSI) threshold). To assist with the inflating, deflating, etc. of the bladder 104, a pressure gauge 112 may be incorporated into the device 100 (e.g., connected to the pump 106 as illustrated) along with an air release value 114 (e.g., also connected to the pump). Other types of components may be incorporated into the device.
In general, the inflatable exerciser 108 is pliable yet firm enough to supply the necessary pressure for physical therapy—and also can be separated from the pump 106 to be held in place at the desired degree of inflation for both maximum comfort and therapeutic value, or a defined range of movement to achieve a desired positioning. The pump 106 of the device 100 can be manually operated, dynamically adjusted, pre-set remotely, etc. to a desired degree of inflation. The pump 106 can then either be detached or deactivated while keeping the desired range in place, while the individual peruses another activity (e.g., watching television). The pump 106 can come in various sizes and shapes, depending on the needs of the user (i.e., adult, child applications). Additional features may be included in the air supplier 102, for example, the pump may be electrically-powered (e.g., battery operated) to allow for automatic operation or to assist manual operations of an individual. Along with automatic operation, operations of the device 100 may be programmed (e.g., from a remote location such as a healthcare center) to provide increased flexibility and breadth. In the case of a healthcare provider (i.e., physical therapist) who wishes to set up a specific set of exercises and then monitor their patient's progress, the intensity of exercise could increase or decrease depending upon the patient's unique progress. For a static application, such progress would be monitored via a pre-defined progression for that specific application.
Other components may be included in the air supplier 102 to provide additional capabilities, for example a heating source, heat exchanger, etc. may be included for temperature control. In some arrangements, the heating source may be incorporated into the pump, tubing that provides the air from the pump, the bladder, etc. For example, one or more electrodes may be encased around the pump and the tubing to a release terminal. A sleeve may also wrap the bladder and provide heat as provided from by an energy source (e.g., battery). Heating elements may also be incorporated into the bladder. In the illustrated arrangement, air is provided by the pump 106 to the exerciser 104, however, other types of fluids may be utilized, e.g., one or more liquids may be used for inflating the bladder 108 for heating, cooling, measurement purposes, etc.
To control the flow of information to the device 100 (e.g., programmable commands from a remote location) and/or from the device (e.g., sending measurement data to a remote location), one or more measurement, communication techniques, etc. may be implemented. For example, a variety of communication components (e.g., sensors, wireless transmitters, receivers, transceivers, etc.) may be incorporated into the device 100. Such capabilities may allow the device 100 to accept remote instruction and communication, as well as report back on the progression and/or status (e.g., metrics) of the respective individual. The two-way communication between a healthcare worker (e.g., primary care physician, surgeon, physical therapist, a responsible technical person such as an engineer, etc.) and a patient (or an application) may include a reporting feature that allows the healthcare worker the ability to capture and analyze data in order to review and assess a patient's progress, and to diagnose or report on that progress while adjusting the exercise program and/or applicable settings accordingly.
By allowing the device 100 to provide information to one or more remote locations, healthcare workers can be provided the ability to assess data (e.g., real-time data, previously stored data, etc.) pertaining to the patient, one or more conditions (e.g., a target condition), progression, environmental changes, a pre-defined tolerance (e.g., that allows for necessary modifications) etc. Such data communication capabilities may provide various advantages such as assisting individuals residing at relatively remote locations (e.g., a rural setting that does not generally easy access to healthcare, where healthcare workers are unable to make onsite visits but where remote communication capabilities are available, etc.). Provided this communication capability, programming of device operations may be dynamically adjusted based upon information received from the device (e.g., measurement exercises, parameters from a local on-device application, etc.) or other information sources (e.g., a pre-defined outcome desired by the healthcare worker). Examples include devices such as breathing machines that dynamically set air flow intensity through on-board breathing measurements.
Referring to
Referring to
Referring to
Referring to
Along with other aspects of the device, the bladder may be designed based upon which hand and finger(s) are to be exercised. To perform an exercise, a pump device may operate manually or automatically to expand and contract the bladder, making the hand or finger(s) open and close. In some arrangements, the device 500 may also be capable of recording data that represent the progression of movement and can send this data to various recipients (e.g., healthcare providers) for a variety of applications (e.g., to be recorded in a patient's electronic medical record). For static applications, data may be recorded in an application/repair history file. One or more techniques may be employed to operate the device 500, for example, the device may inflated (e.g., using a pump) to a recommended or comfortable support level. The device may then be disconnected (from the pump), and air pressure may be released as needed.
Referring to
As represented in
In this arrangement, the device 600 employs a flexible cushion to secure the device about the individual's neck, however, other techniques may be utilized (e.g., one or more next straps). One or more heating elements (e.g., electrodes, coils, etc.), cooling elements (air cooled tubing, etc.), etc. may be incorporated into the device 500. In this arrangement, the device 600 is designed to be placed under the jaw line to the base of the neck. However, device variants may allow the exercises to be focused on other regions of the neck area of the individual. Similar to some of the previously mentioned devices, an exercise cycle may include inflating the device 600 to a recommended and/or comfortable support level, disconnecting the bladder from the air supplier (pump) and releasing air pressure as needed.
Referring to
Referring to
To position the bladder upon the back of an individual, variants of the device 800 may be produced. For example,
Referring to
One or more design may be implemented for producing such a wrap-based device. In this example, a flexible material 934 is employed to stretch the device 900 about the torso of the individual; however additional materials may also be employed. Further, one or more fastening techniques may be implemented to secure the device, for example, one or more Velcro straps may be used for appropriately positioning the device. Additional functionality may also be incorporated into the device, for example, one or more heating or cooling elements may be incorporated into the device. In one implementation, individually controllable heating elements may be incorporated into each bladder 902-916 for applying heat to a corresponding region of the individual's abdomen to aid healing (e.g., of a broken rib), provide treatment (e.g., after a surgical procedure), exercise (e.g., to improve posture, etc.). Similarly, a cooling element may be implemented to assist with healing (e.g., burns, sprains, etc.). During one example session of using the device 900, a pump (not shown) can be used to inflate one or more (e.g., all) of the bladders 902-916 in the wrap to provide the appropriate tightness and support in an affected area. The information package 930 may collect information (e.g., via one or more sensors included in the device) to provide a variety of information to one or more remote sited (e.g., a remotely located control station manned by healthcare professionals).
Wraps, vests, etc. (similar to the wrap used with device 900), may be used for a variety of applications. For example, for aiding individuals with disorders such as sleep disorders. As the device 900 is being worn about the torso, a pump (or other type of air supplier) may be used to apply pressure when a sensor (e.g., included in the device 900) detects a lag in breathing time, thereby assisting the individual's diaphragm to contract and the person to breathe.
In other applications, device variants may be used for assisting with the positioning of objects during procedures such as surgical procedures. For example, one or more bladders may be used to provide lift and support of various body parts, instruments, etc. during surgical procedures. In one arrangement, an air bladder of a device could be used to safely move organs, tissue and veins, for example, for creating more visibility in area of the individual being operated upon. In another example, bladders may be designed for use in a relatively small area such as the human brain. Through their use tissues, veins, etc. present in the brain may be moved during surgical procedures to create more visibility and flexibility for the surgeon, as well as a wider field of operation. On a larger scale, a variant of the device could be incorporated into the hospital bed to aid in lifting patients (e.g., inflating a flattened bladder could assist with raise numerous types of body parts). Such a device could reduce the physical strain on healthcare professionals (e.g., nurses) and thereby reduce the amount of work days lost due to injuries related to lifting and moving patients. Such devices may also be used for adjusting and supporting portions of a body such as the back, legs, arms, etc. as needed. In yet another application, such devices may be used for stimulating regions of the body. For example, the device may be used in the treatment of sexual disorders or for enhancing intimate relations (e.g., enlarging sexual orifices such as the vagina and anus, etc.). Similar to using such device with human individuals, the device or variants of the devices may be designed and produced for use with non-humans. For example, devices may be produced for use with any part of an animal's body to aid in exercise, healing treatments, etc. In one arrangement, device (including one or more air bladders) could be used as a neck collar to help train show dogs in learning correct head posture. Similarly, the device might be used to help a dog regain strength, and keep afloat while in a marine environment as the dog heals from any kind of injury, etc.
Referring to
Data manager 1004 may take one or more forms, such as a software agent to provide functionality that may include data creation, initial analysis, compilation, transfer, etc. Such agents can be considered a software module that is executable in a substantially autonomous manner. For example, upon being executed, a software agent may operate without considerable user interaction. By operating in a somewhat flexible manner, the software agent can adaptively address needs such as data collection, transmission, reception etc. The software agent may operate in a somewhat persistent manner, for example, the software agent may execute in a substantially continuous manner.
In this particular example, the healthcare service center 1006 may implement a variety of computing devices and equipment for interacting with the device 1002 and any potential intermediate devices (e.g., the tablet computing device 1010, the cellular telephone 1012, etc.). To provide this functionality, the healthcare service center 1006 includes a server 1014 that executes a data service manager 1016 (e.g., implemented in software, hardware, a combination of software and hardware, etc.). Along with managing data exchanges with the device 1002 along with other devices, the data service manager 1016 may also provide other functionality. For example, data collected from a device (e.g., the device 1002) may be analyzed, compiled (in a predefined manner), processed and stored by the data service manager 1016 in one or more storage devices (e.g., a storage device 1018) located at the healthcare service center 1006, at one or more sites external to the center or both.
The system 1100 may provide scalable stores for storing data resources. The client device 1102 may upload data resources to the hosted storage service 1120 and control access to the uploaded data resources. Access control may include a range of sharing levels (e.g., private, shared with one or more individuals, shared with one or more groups, public, etc.). Data stored in hosted storage service 1120 can be secured from unauthorized access. The hosted storage service 1120 can use a simple and consistent application programming interface, or API, which can allow arbitrary quantities of structured or unstructured data to be kept private or shared between individuals, organizations, or with the world at large. The client device 1102 may access, retrieve, be provided, store, etc. data in the hosted storage service 1120 for any number of a variety of reasons. For example, data may be stored for business reasons (e.g., provide identification information to attain access clearance for device data, commands, etc. at the hosted storage service 1120), or for use in data processing by other services or historic analysis.
The client device 1102 may be implemented using a computing device, such as the computing device 1200 or the mobile device 1250 described with respect to
The hosted storage service 1120 may be implemented such that client applications executed on client device 1102, such as a client application 1103, may store, retrieve, or otherwise manipulate data resources in the hosted storage service 1120. The hosted storage service 1120 may be implemented by one or more server devices, which may be implemented using a computing device, such as the computing device 1200 or mobile device 1250 described with respect to
The hosted storage service 1120 generally includes an interface frontend 1106, an interface backend 1108, a storage backend 1110, and metadata 1116 for resources stored in the storage backend 1110. The hosted storage service 1120 may also include an authenticator 1109 to verify that a user requesting data, commands, etc. should be provided access (e.g., based on a service subscription, rental period, etc.).
In general, the interface frontend 1106 may receive requests from and send responses to the client device 1102. For instance, the hosted storage service 1120 may be implemented as a Web Service with a corresponding set of Web Service Application Programming Interfaces (APIs). The Web Service APIs may be implemented, for example, as a Representational State Transfer (REST)-based HTTP interface or a Simple Object Access Protocol (SOAP)-based interface. Interface frontend 1106 may receive messages from the client 1102 and parse the requests into a format usable by the hosted storage service 1120, such as a remote procedure call (RPC) to an interface backend 1108. The interface frontend 1106 may write responses generated by the hosted storage service 1120 for transmission to the client 1102. In some implementations, multiple interface frontends 1106 may be implemented to support multiple access protocols, for example.
The interface frontend 1106 may include a graphical frontend, for example to display on a web browser for data access. The interface frontend 1106 may include a sub-system to enable managed uploads and downloads of large files (e.g., for functionality such as pause, resume, and recover from time-out). The interface frontend 1106 may monitor load information and update logs, for example to track and protect against denial of service (DOS) attacks.
As described above, the Web Service API may be a REST-based HTTP interface. In a REST-based interface, a data resource is accessed as a resource, uniquely named using a uniform resource identifier (URI), and the client application 1103 and service 1120 exchange representations of resource state using a defined set of operations. For example, requested actions may be represented as verbs, such as by HTTP GET, PUT, POST, HEAD, and DELETE verbs. The GET verb may be used to retrieve a resource, while the HEAD verb may be used to retrieve information about a resource without retrieving the resource itself. The DELETE verb may be used to delete a resource from the hosted storage service 1120. The PUT and POST verbs may be used to upload a resource to the service 1120. PUT requests may come from the client 1102 and contain authentication and authorization credentials and resource metadata in a header, such as an HTTP header. POST requests may be received when a client 1102 wants to upload from a web browser form. The form POST upload protocol for the hosted storage service 1120 may involve multiple form fields to provide authentication, authorization, and resource metadata. More generally, any of the API requests may include credentials for authentication and authorization, for example in a header of the request. An authorization header may be included in the REST requests, which may include an access key to identify the entity sending the request.
Alternatively, or additionally, a user may be authenticated based on credentials stored in a browser cookie, which may be appended to the API requests. If no valid cookie is present, a redirect to an authentication frontend may be generated, and the authentication frontend may be used to generate the browser cookie. The authentication frontend may be used by systems and services in addition to the hosted storage service 1120 (e.g., if the organization operating the hosted storage service 1120 also operates other web services such as email service). A user may also or alternatively be authenticated based on authentication credentials from an external credentialing service or an external service that includes credentialing functionality. User or group identifier information may be calculated from the external service's credential information. Requests sent by the client 1102 to the interface frontend 1106 may be translated and forwarded to the external service for authentication.
In general, resources stored in the hosted storage service 1120 may be referenced by resource identifiers. The hosted storage service 1120 may define namespaces to which a valid resource identifier must conform. For example, the namespace may require that resource identifiers be a sequence of Unicode characters whose UTF-8 encoding is at most 1024 bytes long. As another example, the namespace may require that resource identifiers be globally unique identifiers (GUIDs), which may be 128-bit integers.
Resources (e.g., objects such as font data) may be stored in hosted storage service 1120 in buckets. In some examples, each bucket is uniquely named in the hosted storage service 1120, each data resource is uniquely named in a bucket, and every bucket and data resource combination is unique. Data resources may be uniquely identified by a URI that includes the bucket name and the resource name, and identifies the hosted storage service 1120. Alternatively, the user of the client 1302 may create a bucket. In some examples, buckets do not nest.
The interface backend 1108 along with the authenticator 1109 may handle request authentication and authorization, manage data and metadata, and track activity, such as for billing; moreover potentially for a remote physical therapy session or remote serve call application. As one example, the interface backend 1108 may query the authenticator 1109 when a request for one or more fonts is received. The interface backend 1108 may also provide additional or alternative functionality. For example, the interface backend 1108 may provide functionality for independent frontend/backend scaling for resource utilization and responsiveness under localized heavy loads. Data management may be encapsulated in the interface backend 1108 while communication serving may be encapsulated in the interface frontend 1106. The interface backend 1108 may isolate certain security mechanisms from the client-facing interface frontend 1106.
The interface backend 1108 may expose an interface usable by both the interface frontend 1106 and other systems. In some examples, some features of the interface backend 1108 are accessible only by an interface frontend (not shown) used by the owners of the hosted storage service 1120 (internal users). Such features may include those needed for administrative tasks (e.g., resolving a resource reference to a low-level disk address), hosted therapeutic services, etc. The interface backend 1108 may handle request authentication (e.g., ensuring a user's credentials are valid) and authorization (e.g., verifying that a requested operation is permitted). The interface backend may also provide encryption and decryption services to prevent unauthorized access to data, even by internal users.
The interface backend 1108 may manage metadata 1116 associated with data resources, for example in a MySQL database. User-specified names that label the buckets can be completely defined within the metadata 1116, and resource metadata 1116 can map a resource name to one or more datastores 1112 storing the resource. The metadata 1116 can also contain bucket and resource creation times, resource sizes, hashes, and access control lists 1118 (ACL 1118) for both buckets and resources. The interface backend 1108 can log activity and track storage consumption to support accounting for billing and chargebacks. In some examples, this includes quota monitoring in each dimension in which customers are charged (e.g., reads, writes, network transfers, total storage in use).
The ACLs 1118 may generally define who is authorized to perform actions on corresponding buckets or resources, and the nature of the permitted actions. The ACLs 1118 may be an unordered list of {scope, role} pairs, plus Boolean flags. The scope may define a user or group of users and the role may define the access permissions for the user or group. In some examples, the union of all {scope, role} pairs may define access rights. In some examples, more specific {scope, role} pairs override more general ones.
The storage backend 1110 may contain multiple datastores 1112a-1112c. Although three datastores 1112 are shown, more or fewer are possible. Each of the datastores 1112a-1112c may store data resources 1114a-1114c in a particular format. For example, data store 1112a may store a data resource 1114a as a binary object, data store 1112b may store a data resource 1114b in a distributed file system (e.g., Network File System), and data store 1112c may store a data resource 1114c in a database.
Computing device 1200 includes processor 1202, memory 1204, storage device 1206, high-speed interface 1208 connecting to memory 1204 and high-speed expansion ports 1210, and low speed interface 1212 connecting to low speed bus 1214 and storage device 1206. Each of components 1202, 1204, 1206, 1208, 1210, and 1212, are interconnected using various busses, and can be mounted on a common motherboard or in other manners as appropriate. Processor 1202 can process instructions for execution within computing device 1200, including instructions stored in memory 1204 or on storage device 1206 to display graphical data for a GUI on an external input/output device, including, e.g., display 1216 coupled to high speed interface 1208. In other implementations, multiple processors and/or multiple busses can be used, as appropriate, along with multiple memories and types of memory. Also, multiple computing devices 1200 can be connected, with each device providing portions of the necessary operations (e.g., as a server bank, a group of blade servers, or a multi-processor system).
Memory 1204 stores data within computing device 1200. In one implementation, memory 1204 is a volatile memory unit or units. In another implementation, memory 1204 is a non-volatile memory unit or units. Memory 1204 also can be another form of computer-readable medium (e.g., a magnetic or optical disk. Memory 1204 may be non-transitory.)
Storage device 1206 is capable of providing mass storage for computing device 1200. In one implementation, storage device 1206 can be or contain a computer-readable medium (e.g., a floppy disk device, a hard disk device, an optical disk device, or a tape device, a flash memory or other similar solid state memory device, or an array of devices, such as devices in a storage area network or other configurations.) A computer program product can be tangibly embodied in a data carrier. The computer program product also can contain instructions that, when executed, perform one or more methods (e.g., those described above.) The data carrier is a computer- or machine-readable medium, (e.g., memory 1204, storage device 1206, memory on processor 1202, and the like.)
High-speed controller 1208 manages bandwidth-intensive operations for computing device 1200, while low speed controller 1212 manages lower bandwidth-intensive operations. Such allocation of functions is an example only. In one implementation, high-speed controller 1208 is coupled to memory 1204, display 1216 (e.g., through a graphics processor or accelerator), and to high-speed expansion ports 1210, which can accept various expansion cards (not shown). In the implementation, low-speed controller 1212 is coupled to storage device 1206 and low-speed expansion port 1214. The low-speed expansion port, which can include various communication ports (e.g., USB, Bluetooth®, Ethernet, wireless Ethernet), can be coupled to one or more input/output devices, (e.g., a keyboard, a pointing device, a scanner, or a networking device including a switch or router, e.g., through a network adapter.)
Computing device 1200 can be implemented in a number of different forms, as shown in the figure. For example, it can be implemented as standard server 1220, or multiple times in a group of such servers. It also can be implemented as part of rack server system 1224. In addition or as an alternative, it can be implemented in a personal computer (e.g., laptop computer 1222.) In some examples, components from computing device 1200 can be combined with other components in a mobile device (not shown), e.g., device 1250. Each of such devices can contain one or more of computing device 1200, 1250, and an entire system can be made up of multiple computing devices 1200, 1250 communicating with each other.
Computing device 1250 includes processor 1252, memory 1264, an input/output device (e.g., display 1254, communication interface 1266, and transceiver 1268) among other components. Device 1250 also can be provided with a storage device, (e.g., a microdrive or other device) to provide additional storage. Each of components 1250, 1252, 1264, 1254, 1266, and 1268, are interconnected using various buses, and several of the components can be mounted on a common motherboard or in other manners as appropriate.
Processor 1252 can execute instructions within computing device 1250, including instructions stored in memory 1264. The processor can be implemented as a chipset of chips that include separate and multiple analog and digital processors. The processor can provide, for example, for coordination of the other components of device 1250, e.g., control of user interfaces, applications run by device 1250, and wireless communication by device 1250.
Processor 1252 can communicate with a user through control interface 1258 and display interface 1256 coupled to display 1254. Display 1254 can be, for example, a TFT LCD (Thin-Film-Transistor Liquid Crystal Display) or an OLED (Organic Light Emitting Diode) display, or other appropriate display technology. Display interface 1256 can comprise appropriate circuitry for driving display 1254 to present graphical and other data to a user. Control interface 1258 can receive commands from a user and convert them for submission to processor 1252. In addition, external interface 1262 can communicate with processor 1242, so as to enable near area communication of device 1250 with other devices. External interface 1262 can provide, for example, for wired communication in some implementations, or for wireless communication in other implementations, and multiple interfaces also can be used.
Memory 1264 stores data within computing device 1250. Memory 1264 can be implemented as one or more of a computer-readable medium or media, a volatile memory unit or units, or a non-volatile memory unit or units. Expansion memory 1274 also can be provided and connected to device 1250 through expansion interface 1272, which can include, for example, a SIMM (Single In Line Memory Module) card interface. Such expansion memory 1274 can provide extra storage space for device 1250, or also can store applications or other data for device 1250. Specifically, expansion memory 1274 can include instructions to carry out or supplement the processes described above, and can include secure data also. Thus, for example, expansion memory 1274 can be provided as a security module for device 1250, and can be programmed with instructions that permit secure use of device 1250. In addition, secure applications can be provided through the SIMM cards, along with additional data, (e.g., placing identifying data on the SIMM card in a non-hackable manner.)
The memory can include, for example, flash memory and/or NVRAM memory, as discussed below. In one implementation, a computer program product is tangibly embodied in a data carrier. The computer program product contains instructions that, when executed, perform one or more methods, e.g., those described above. The data carrier is a computer- or machine-readable medium (e.g., memory 1264, expansion memory 1274, and/or memory on processor 1252), which can be received, for example, over transceiver 1268 or external interface 1262.
Device 1250 can communicate wirelessly through communication interface 1266, which can include digital signal processing circuitry where necessary. Communication interface 1266 can provide for communications under various modes or protocols (e.g., GSM voice calls, SMS, EMS, or MMS messaging, CDMA, TDMA, PDC, WCDMA, CDMA2000, or GPRS, among others.) Such communication can occur, for example, through radio-frequency transceiver 1268. In addition, short-range communication can occur, e.g., using a Bluetooth®, WiFi, or other such transceiver (not shown). In addition, GPS (Global Positioning System) receiver module 1270 can provide additional navigation- and location-related wireless data to device 1250, which can be used as appropriate by applications running on device 1250. Sensors and modules such as cameras, microphones, compasses, accelerators (for orientation sensing), etc. may be included in the device.
Device 1250 also can communicate audibly using audio codec 1260, which can receive spoken data from a user and convert it to usable digital data. This provides the capability for “speech to text” and “text to speech” applications for remote onsite feedback and situational reporting of progress or onsite visual observation, as well as written prescribed routine that can be received remotely in audible form. Audio codec 1260 can likewise generate audible sound for a user, (e.g., through a speaker in a handset of device 1250.) Such sound can include sound from voice telephone calls, can include recorded sound (e.g., voice messages, music files, and the like) and also can include sound generated by applications operating on device 1250.
Computing device 1250 can be implemented in a number of different forms, as shown in the figure. For example, it can be implemented as cellular telephone 1280. It also can be implemented as part of smartphone 1282, personal digital assistant, or other similar mobile device.
Various implementations of the systems and techniques described here can be realized in digital electronic circuitry, integrated circuitry, specially designed and programmed ASICs (application specific integrated circuits), computer hardware, firmware, software, and/or combinations thereof. These various implementations can include implementation in one or more computer programs that are executable and/or interpretable on a programmable system including at least one programmable processor. The programmable processor can be special or general purpose, coupled to receive data and instructions from, and to transmit data and instructions to, a storage system, at least one input device, and at least one output device (e.g., a 3D output device).
These computer programs (also known as programs, software, software applications or code) include machine instructions for a programmable processor, and can be implemented in a high-level procedural and/or object-oriented programming language, and/or in assembly/machine language. As used herein, the terms machine-readable medium and computer-readable medium refer to a computer program product, apparatus and/or device (e.g., magnetic discs, optical disks, memory, Programmable Logic Devices (PLDs)) used to provide machine instructions and/or data to a programmable processor, including a machine-readable medium that receives machine instructions.
To provide for interaction with a user, the systems and techniques described here can be implemented on a computer having a device for displaying data to the user (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor), and a keyboard and a pointing device (e.g., a mouse or a trackball) by which the user can provide input to the computer. Other kinds of devices can be used to provide for interaction with a user as well; for example, feedback provided to the user can be a form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback); and input from the user can be received in a form, including acoustic, speech, or tactile input.
The systems and techniques described here can be implemented in a computing system that includes a backend component (e.g., as a data server), or that includes a middleware component (e.g., an application server), or that includes a frontend component (e.g., a client computer, executed application, etc. having a user interface or a Web browser through which a user can interact with an implementation of the systems and techniques described here), or a combination of such back end, middleware, or frontend components. The components of the system can be interconnected by a form or medium of digital data communication (e.g., a communication network). Examples of communication networks include a local area network (LAN), a wide area network (WAN), and the Internet.
The computing system can include clients and servers. A client and server are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other.
In some implementations, the engines described herein can be separated, combined or incorporated into a single or combined engine. The engines depicted in the figures are not intended to limit the systems described here to the software architectures shown in the figures.
Referring to
A number of embodiments have been described. Nevertheless, it will be understood that various modifications can be made without departing from the spirit and scope of the processes and techniques described herein. In addition, the logic flows depicted in the figures do not require the particular order shown, or sequential order, to achieve desirable results. In addition, other steps can be provided, or steps can be eliminated, from the described flows, and other components can be added to, or removed from, the described systems. Accordingly, other embodiments are within the scope of the following claims.
This application is a continuation application and claims priority under 35 USC §120 to U.S. patent application Ser. No. 14/549,753, filed on Nov. 21, 2014 (U.S. Pat. No. 9,314,668 scheduled to be issued on Apr. 19, 2016), which claims benefit of priority under 35 USC §119(e) to U.S. Provisional Application Ser. No. 61/908,310, filed on Nov. 25, 2013, the entire contents of which are hereby incorporated by reference.
Number | Name | Date | Kind |
---|---|---|---|
5690586 | Wilhelm | Nov 1997 | A |
9314668 | Hanks et al. | Apr 2016 | B2 |
20070015645 | Hale | Jan 2007 | A1 |
20070087901 | Brassil | Apr 2007 | A1 |
20110237403 | Huber | Sep 2011 | A1 |
20130130871 | McCoy | May 2013 | A1 |
20150148196 | Hanks et al. | May 2015 | A1 |
Number | Date | Country | |
---|---|---|---|
20160367858 A1 | Dec 2016 | US |
Number | Date | Country | |
---|---|---|---|
61908310 | Nov 2013 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 14549753 | Nov 2014 | US |
Child | 15099667 | US |