SYSTEM AND METHOD OF INSPECTING FIRE EXTINGUISHERS
20230241440 · 2023-08-03
Inventors
Cpc classification
H04N7/188
ELECTRICITY
H04N7/181
ELECTRICITY
G06V20/52
PHYSICS
International classification
A62C37/50
HUMAN NECESSITIES
H04N7/18
ELECTRICITY
Abstract
Methods and systems for monitoring fire extinguishers and their surrounding areas. An example method at least comprises periodically monitoring, with one or more cameras, and one or more of an accelerometer, a weight sensor, and an infrared sensor, a fire extinguisher unit and a surrounding area, providing one or more images of the fire extinguisher unit and the surrounding area to an analysis module after each periodic monitoring, determining, based on the one or more images, whether an internal pressure of the fire extinguisher unit is within a predetermined range of pressures and whether the surrounding area comprises any code violations, and updating a user dashboard based on the determination.
Claims
1. A method comprising: periodically monitoring, with one or more cameras, a fire extinguisher unit and a surrounding area; providing one or more images of the fire extinguisher unit and the surrounding area to an analysis module after each periodic monitoring; determining, based on the one or more images, whether an internal pressure of the fire extinguisher unit is within a predetermined range of pressures and whether the surrounding area comprises any code violations; and updating a user dashboard based on the determination.
2. The method of claim 1, further including: monitoring, with a weight sensor, the fire extinguisher unit; and periodically providing a weight of the fire extinguisher unit to the analysis unit for enabling further determining of whether the fire extinguisher has been one of partially and fully discharged.
3. The method of claim 2, further including: determining, based on the weight of the fire extinguisher unit, whether the fire extinguisher unit is within a range of a predetermined weight range, wherein the predetermined weight range is associated with a fire extinguisher unit including a code required amount of fire retardant.
4. The method of claim 1, further including: monitoring, with an accelerometer, for movement of the fire extinguisher unit; and providing indication of movement to the analysis module when movement is detected.
5. The method of claim 4, further including: monitoring the surrounding area with one or more cameras; providing one or more images of the surrounding area to the analysis module; determining, based on images of the surrounding area, whether one of an emergency and a code violation exists; and updating the user dashboard as to whether one of an emergency and a code violation exists.
6. The method of claim 1, further including sending a user an alert based on the determination.
7. The method of claim 6, wherein the alert is sent using one or more of an SMS message, an email, and an automated phone call.
8. The method of claim 1, wherein the camera is arranged to image a pressure gauge of the fire extinguisher unit.
9. The method of claim 1, wherein a second camera arranged to image the surrounding area, the surrounding area including at least a six-foot radius arc or circle surrounding the fire extinguisher unit.
10. The method of claim 1, wherein the analysis module is connected to the one or more cameras and the user dashboard through one or more of wi-fi, a local area network, a wide area network, a cellular network, and a satellite network.
11. The method of claim 1, further including: analyzing the one or more images using a machine learning module trained for image segmentation.
12. The method of claim 1, wherein the user dashboard is accessed by the user through a web-based portal.
13. The method of claim 1, wherein the fire extinguisher unit is enclosed in a cabinet.
14. The method of claim 13, wherein a first camera is mounted to a glass front surface of the cabinet and positioned to image a pressure gauge of the fire extinguisher unit.
15. The method of claim 13, wherein a second camera is mounted outside of the cabinet to image the surrounding area.
16. The method of claim 13, wherein a weight sensor is arranged in the cabinet to monitor a weight of the fire extinguisher unit.
17. The method of claim 13, wherein a transceiver unit is included in the cabinet to receive and provide information between the cabinet and the analysis unit, wherein the cabinet is connected to first and second cameras, a weight sensor and an accelerometer through a wire or wirelessly.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0043]
[0044]
[0045]
[0046]
[0047]
[0048]
[0049]
[0050]
[0051]
[0052]
[0053]
[0054]
DETAILED DESCRIPTION OF EMBODIMENTS
[0055]
[0056] A body portion 906 of the device 1 is adapted to housing the electronics of the device (e.g., one or more cameras, an accelerometer, an infrared device, a microcontroller, memory, communications interface, etc., all as further described herein). Two small buttons 902, 904 are provided on an upper external periphery of the device. The first button 902 is for resetting/waking up—or booting/forced restart of the device 1, for example when the button is held down when newly installing the device. Further, this button may be programmed with a single quick press to snap a photograph. The second button 904 may be programmed to manually record an inspection by a user 10, 36. In a “handle” portion 908 of the device 1, there is provided a compartment for retaining preferably a 9-volt battery 900 therein for powering the device. One or more of the body portions 906 and 908 may be separated, or separable, to allow for easy access to and changing of the battery 900.
[0057] As shown in detail in
[0058] Referring now to
[0059] Referring now to
[0060]
[0061] Such monitoring data, such as photographs, motion detection data, proximity data, and any other sensed data, of the system 1 is sent to the internal controller board 16 for storage in a local storage device 15 (such as local ram memory), and in turn the monitoring data is transmitted from the local memory for transmission wirelessly via an LTE module 14 (such as a wireless broadband transmitter), or cellular technology such as 4G or 5G (fourth generation or fifth generation cellular phone service), to a secure, cloud network server 40, or other local or remote computerized system for processing and storage. The aforementioned wireless transmissions are received at the server 40 gateway 17 (e.g., a laptop or desk top computer) via a cloud network 42, 44 for analysis and image processing 18. In turn, after processing, the monitoring data from the server 40 may be forwarded via the cloud network 42, 44 to stakeholders 10, 36, for example via a photo cascade sent by means of a user interface 19 to computers 30, 32, 34. The monitoring data may also be sent by the image processing unit 18 to a database 20, for storage and management according to data storage protocols and so as to be readily available and accessible when necessary for future review and reporting. Excess stale data, as determined in accordance with current compliance regulations, may be deleted from the database to conserve server storage bandwidth where possible or necessary.
[0062] A mobile application is provided by techniques known to those of skill in the art using hardware, languages, and development environments known in the art. Those of skill in the art will recognize that mobile applications are written in several languages and include, by way of non-limiting examples, C, C++, C #, Objective-C, Java™, Javascript, Pascal, Object Pascal, Python™, Ruby, VB.NET, WML, and XHTML/HTML with or without CSS, or combinations thereof. Such software may be provided so as to be compatible with a plurality of operating systems such as, but not limited to: Windows®, Apple®, and Android®, and compatible with a multitude of hardware platforms such as, but not limited to: personal desktops, laptops, tablets, smartphones and the like. Suitable mobile application development environments are available from several sources. Commercially available development environments include, by way of non-limiting examples, AirplaySDK, alcheMo, Appcelerator®, Celsius, Bedrock, Flash Lite, .NET Compact Framework, Rhomobile, and WorkLight Mobile Platform. Other development environments are available such as, by way of non-limiting examples, Lazarus, MobiFlex, MoSync, and Phonegap. Also, mobile device manufacturers distribute software developer kits including, by way of non-limiting examples, iPhone® and iPad® (iOS) SDK, Android® SDK, BlackBerry® SDK, BREW SDK, Palm® OS SDK, Symbian SDK, webOS SDK, and Windows® Mobile SDK.
[0063] Those of skill in the art will recognize that several mobile applications are available from several commercial forums, including, by way of non-limiting examples, Apple® App Store, Google® Play, Chrome Web Store, BlackBerry® App World, App Store for Palm devices, App Catalog for webOS, Windows® Marketplace for Mobile, Ovi Store for Nokia® devices, Samsung® Apps, and Nintendo® DSi Shop.
[0064] In some embodiments, a computer program comprises a standalone application, which is a program that is run as an independent computer process, not an add-on to an existing process, e.g., not a plug-in. Those of skill in the art will also recognize that standalone applications are often compiled. A compiler is a computer program(s) that transforms source code written in a programming language into binary object code such as assembly language or machine code. Suitable compiled programming languages include, by way of non-limiting examples, C, C++, Objective-C, COBOL, Delphi, Eiffel, Java™, Lisp, Python™, Visual Basic, and VB .NET, or combinations thereof. Compilation is often performed, at least in part, to create an executable program. In some embodiments, a computer program comprises one or more executable complied applications. In some embodiments, the computer program comprises a web browser plug-in (e.g., extension, etc.). In computing, a plug-in is one or more software components that add specific functionality to a larger software application. Makers of software applications support plug-ins to enable third-party developers to create abilities which extend an application, to support easily adding new features, and to reduce the size of an application. When supported, plug-ins enable customizing the functionality of a software application. For example, plug-ins are commonly used in web browsers to play video, generate interactivity, scan for viruses, and display particular file types.
[0065] In view of the disclosure provided herein, those of skill in the art will recognize that several plug-in frameworks are available that enable development of plug-ins in various programming languages, including, by way of non-limiting examples, C++, Delphi, Java™, PHP, Python™, and VB .NET, or combinations thereof. Web browsers (also called Internet browsers) are software applications, designed for use with network-connected digital processing devices, for retrieving, presenting, and traversing information resources on the World Wide Web. Suitable web browsers include, by way of non-limiting examples, Microsoft® Internet Explorer®, Microsoft Edge®, Mozilla® Firefox®, Google Chrome®, Apple Safari®, Opera Software®, and KDE Konqueror. In some embodiments, the web browser is a mobile web browser. Mobile web browsers (also called micro-browsers, mini-browsers, and wireless browsers) are designed for use on mobile digital processing devices including, by way of non-limiting examples, handheld computers, tablet computers, netbook computers, subnotebook computers, smartphones, music players, personal digital assistants (PDAs), and handheld video game systems. Suitable mobile web browsers include, by way of non-limiting examples, Google® Android® browser, RIM BlackBerry® Browser, Apple® Safari®, Palm® Blazer, Palm®, WebOS® Browser, Mozilla®, Firefox® for mobile, Microsoft® Internet Explorer® Mobile, Amazon® Kindle® Basic Web, Nokia® Browser, Opera Software®, Opera® Mobile, and Sony® PSP™ browser.
Software Modules
[0066] In some embodiments, the platforms, systems, media, and methods disclosed herein include software, server, and/or database modules, or use of the same. In view of the disclosure provided herein, software modules are created by techniques known to those of skill in the art using machines, software, and languages known to the art. The software modules disclosed herein are implemented in a multitude of ways. In various embodiments, a software module comprises a file, a section of code, a programming object, a programming structure, or combinations thereof. In further various embodiments, a software module comprises a plurality of files, a plurality of sections of code, a plurality of programming objects, a plurality of programming structures, or combinations thereof. In various embodiments, the one or more software modules comprise, by way of non-limiting examples, a web application, a mobile application, and a standalone application. In some embodiments, software modules are in one computer program or application. In other embodiments, software modules are in more than one computer program or application. In some embodiments, software modules are hosted on one machine. In other embodiments, software modules are hosted on more than one machine. In further embodiments, software modules are hosted on cloud computing platforms. In some embodiments, software modules are hosted on one or more machines in one location. In other embodiments, software modules are hosted on one or more machines in more than one location.
[0067] In some embodiments, users may have access to functions such as, but not limited to, account registration (contact information, subscription payments, notification preferences, etc.); fire safety device registration (e.g., pairing the various compatible sensors up to the network); and defining fire safety device operating parameters (when to power on, how long to remain active, when to engage local area networks and transmit data, etc.). The operating software may also be compatible with a plurality of operating systems such as, but not limited to: Windows®, Apple®, and Android®, and compatible with a multitude of hardware platforms including, but not limited to: personal desktops, laptops, tablets, smartphones and the like. The fire safety device embodiments described herein may also have an identifier on the logistics system, which is used when collecting and transmitting data according to user presets and sending alerts (errors, emergency threshold breaches, etc.) to the logistics system as necessary and to the end user. Thus, an end user 10, 36 may have a plurality of monitoring devices 1 associated with their account, wherein each device is associated with a specific fire extinguisher 6 that is listed in their account. Data associated with each fire extinguisher 6 is stored in database 20 and is accessible to the operating software as needed to update a user's 10, 36 dashboard and for transmitting alerts to associated end users.
[0068] In some embodiments, device 1 is electrically connected to the back-end management system by means of a cloud network 40, 42, 44, where the cloud network comprises algorithms and routine operations such as but not limited to: subscription services (user demographics, sensor registrations etc.); online payments (venom, paypal etc.); administrative operations (website backend management, sensor data account archives, etc.); selective parameters available for fire safety monitoring devices (power on time, dormant mode, time presets, transmission schedules, transmission rates, etc.); notifications (emergency alerts, dynamic shipping alerts, etc., via text messages SMS, email and the like); and encryption (such as advanced encryption standard, rivest-shamir-adleman (RSA), and triple data encryption standard, etc.). The logistics software may also preferably comprise the capability to transfer power and bandwidth software parameters either remotely (wirelessly) or by means of localized USB cables etc.
[0069] In general, fire safety device 1 is configured to monitor a fire extinguisher 6 to ensure the pressure of the fire extinguisher is within the required range so that the extinguisher is ready in case of an emergency. Additionally, the remote monitoring of one or more fire extinguishers 6 reduces the manpower used to manually check those same fire extinguishers on a periodic basis. Further, fire safety system 300 with fire safety device 1 (or fire safety device 1′ as further described herein) may monitor an area 228 around the fire extinguisher 6 to ensure code violations are remedied before an emergency occurs, such as the path to a fire extinguisher being unlawfully blocked.
[0070]
[0071] As shown in
[0072] Network 112 may be any wired or wireless network and is used to provide information and instructions from the safety monitor device at the location of the unit 102 and the server 114. The network 112 may simply be a wi-fi network, a local area network (LAN), a wide area network (WAN), a cellular network, a satellite network, or combinations thereof. The network 112 is included to provide a communication path between one or more fire safety monitor devices 110 and the server 114. Data may be transmitted between devices 110 and server 114 periodically or continuously so that changes at the fire safety monitor device 110 relating to emergencies and/or code violations can be caught, and alerts and information sent to end users.
[0073] Server 114 may be located in the cloud, for example, and be formed from one or more instances of management and analysis software configured to at least receive data, make determinations regarding various scenarios of a fire extinguisher 6, 102 and its surrounding area 228 (e.g., such as fire, low extinguisher pressure, blockage of access, or other code violation), and provide updates to an end user 10, 36 via user portal 116 and/or sending direct alerts to end users. The direct alerts can be made using SMS messaging, emails, automated phone calls, or other methods of messaging now known or unknown. The number and type of messages may be changed based on a severity of an emergency or status change. For example, a fire may cause server 114 to alert an end user 10, 36 using all selected forms of alert mechanisms, whereas a low pressure on a fire extinguisher may only result in a flag on the user portal.
[0074] Server 114 may be formed of a number of functional code blocks that perform various processes for monitoring fire extinguishers 6, 102 and updating associated end users 10, 36. For example, there may be a functional code block for managing data receipt and data output, a block for managing data analysis, and a block for managing software updates to devices 110. Of course, other code blocks may be included and added over time.
[0075] User portal 116 may be a web-based user interface that end users 10, 36 access to understand the status of their associated fire extinguisher units 6, 102. The user portal 116 may include software code configured to generate and present a dashboard 37 to each user 10, 36 where each user's dashboard will show the status of fire extinguishers for that user. For example, the dashboard 37 may provide the status of such variables as the pressure, weight, and movement of each fire extinguisher 6, 102, and the status of the area surrounding each fire extinguisher unit. The size of the surrounding area 228 may be dictated by local, state and/or federal safety codes, which may require the surrounding area to be free from debris blocking access to the fire extinguisher 6, 102. The other variables may inform the end user whether the fire extinguisher 6, 102 should be replaced or inspected if movement has been indicated by the motion sensor/accelerometer 106. In some examples, movement indicated by the accelerometer 106 may cause the device 110 to turn on cameras 2 to determine if the movement is in response to an emergency, e.g., fire, or whether the fire extinguisher 6, 102 was wrongly moved or taken.
[0076] In concert, system 400 performs the following tasks to understand the status of a fire extinguisher unit 6, 102 and its surrounding area 228 and to inform an associated end user of the status. For example, a device 110 may periodically acquire an image of a pressure gauge 104 and a surrounding area 228 (see, e.g.,
[0077] Server 114 may then initiate an analysis module to analyze the received data. The images may be analyzed by a trained model using image segmentation in a process of partitioning digital images into multiple image segments, also known as image regions or image objects or sets of pixels. This, in turn enables simplified analysis of objects and boundaries of obstructions detected in the images. Thus, for example, image segmentation may be used to more accurately determine whether the pressure of the unit 6, 102 is within a desired range and further determine if any obstructions to the unit are within the surrounding area 228. The analysis further comprises comparing the weight to a threshold to ensure an amount of fire retardant within the unit 6, 102 is within range. Lastly, any movements indicated by the movement data are stored, and all data is stored and provided, or made available for further analysis by the system and to the user portal 116. An end user 10, 36 may then access their dashboard 37 through the user portal 116 to review the status of all of their fire extinguisher units 6, 102 and the surrounding area 228. Still further, automated alerts may be provided to users to maintain fire extinguishers 6, 102 based on alert status.
[0078] Referring to arrangement 200A of
[0079] Communications circuitry 22 provides two-way communication between the sensor device 210A and a remote central station 25 using a network 26 (e.g., a wireless IEEE 802.15.4-compliant or IEEE 802.11-compliant wireless network, Ethernet network, etc.) Microprocessor 21 periodically triggers the camera 18 (and/or sensor 210A) to periodically capture an image of the pressure gauge 204. In some examples, microprocessor 21 can be configured or programmed to recognize a state of the pressure gauge based on an analysis of the image and transmit a signal to the remote central station indicating the recognized state. In other examples, sensor device 210A transmits the image to the central station where the central station comprises one or more analysis modules to perform the image analysis, such as through image segmentation by a programmed model implemented through machine learning.
[0080] The fire extinguisher's pressure gauge 204 has at least two important states: (i) a normal state when the pressure gauge indicates a pressure within the operating limits and a (ii) an out-of-range state when the pressure gauge indicates a pressure outside the operating limits. In most scenarios, the range of what is within operating limits will be set by a government authority, either at a state or federal level. Other implementations may recognize other states, such as a normal state, an above-normal state and a below-normal state. In some examples, an image sensor device may be configured to recognize alpha-numeric characters displayed by a measurement device. For example, if a measurement device has a digital readout, a digital image sensory device may execute optical character recognition (OCR) software to recognize the alpha-numeric characters captured in the digital image, which may be used to determine the state of the fire extinguisher unit 202.
[0081] The components of sensor device 210A are logical components, and, in actual implementations, one logical component may be implemented in separate physical components. Similarly, the functionality of multiple logical components may be combined and implemented as a single physical component. For example, an image status sensor device 12 may be implemented with multiple processors, e.g., one processor dedicated for the operation of the image sensor, e.g., camera 18, and a second processor dedicated to recognizing states and/or alpha-numeric characters captured in an image. Similarly, the functionality of communication circuitry 22 and a microprocessor 21 may be combined into a single physical component.
[0082] Referring to arrangement 200B of
[0083] Referring now to
[0084] The system 700 processes the method 600 beginning at process block 607, and the method 600 also comprises receiving acquired monitoring data (at process blocks 601, 603, 605) from subsystems, such as cameras 2, weight sensors 108, and motion sensors/accelerometers 106, relating to a fire extinguisher 6, 202 and its surrounding area 228. For example, cameras in devices 210A and 210B may acquire an image of a fire extinguisher pressure gauge 204 and the surrounding area 228, respectively, and these images may then be received at process block 601.
[0085] Process block 601 may be followed by process block 603, which comprises acquiring and receiving acquired weight data of the fire extinguisher 6, 202. For example, weight sensor 108 may be used to acquire the weight of the fire extinguisher unit 6, 202.
[0086] Process block 603 may be followed by process block 605, which comprises acquiring and receiving acquired movement data. For example, accelerometer 106 may provide any logged movement data of a fire extinguisher 6, 202 or cabinet door 5.
[0087] It should be noted that process blocks 601, 603 and 605 may be performed concurrently or in any order desired by their respective components 1, 106, 108, 110, 210A, 210B, and the sequence shown in
[0088] Process blocks 601, 603 and 605 may be followed by process block 607, which comprises transmitting the one or more images and the data to the server. For example, device 1, 1′, or 110 may receive the weight and movement data from the respective sensors and transmit that data along with the one or more images to the server, such as server 114.
[0089] Process block 607 may be followed by process block 609, which comprises analyzing the data and the one or more images. For example, the weight and movement data may be stored in a file associated with the fire extinguisher unit and compared to threshold values of movement and weight and/or compared against prior received data. Any movement data or weight data above or below a threshold may be flagged. Additionally, the one or more images may be analyzed by an analysis unit, which comprises algorithms or machine learning models configured to analyze the images. A machine learning module trained for image segmentation may analyze the images to determine the pressure of the unit and whether there are any obstructions in the surrounding area. The results are then logged in the associated file.
[0090] Process block 609 may be followed by process block 611, which comprises updating a dashboard 37 and/or sending alerts to an end user 10, 36. In this step, a dashboard 37 associated with the end user 10, 36 is updated with the status of the fire extinguisher and surrounding area. For example, indications of movement and weight are included in the dashboard 37 and a status of the internal pressure of the fire extinguisher unit and the surrounding area are provided on the dashboard. In some scenarios, if an adverse situation exists, such as low weight, high level of movement, pressure out of range, or an obstruction in the surrounding area are determined, an alert may be sent to the end user 10, 36 using any method disclosed above.
[0091] Thus,
[0092] The computing system 700 comprises a main memory 732, such as a random-access memory (RAM) or other dynamic storage device, coupled to the bus 739 for storing information and instructions to be executed by the microprocessor 730. Such main memory 732 also may be used for storing temporary variables or other intermediate information during execution of instructions to be executed by the microprocessor 730. Such instructions, when stored in non-transitory storage media accessible to the microprocessor 730, render the computer system 700 into a special-purpose machine that is customized to perform the operations specified in the instructions.
[0093] Computer system 700 further comprises a read-only memory (ROM) 734 or other static storage device 736 coupled to the bus 739 for storing static information and instructions for the microprocessor 730. A storage device 736 such as a magnetic disk or optical disk, may be provided and coupled to the bus 739 for storing information and instructions.
[0094] Computer system 700 may be coupled via bus 739 to a display 32, such as a cathode ray tube (CRT), or Liquid Crystal Display (LCD), or Light Emitting Diode (LED), for displaying information to a computer user 10, 36. An input device 738, including alphanumeric and other keys, is coupled to the bus 739 for communicating information and command selections to the microprocessor 730. Another type of user input device 738 comprises cursor control, such as a mouse, a trackball, or cursor direction keys for communicating direction information and command selections to processor 730 for controlling cursor movement on the display which is also commonly used. This input device typically has two degrees of freedom in two axes, a first axis (e.g., x) and a second axis (e.g., y), that allows the device to specify positions in a plane.
[0095] Computer system 700 may implement the techniques described herein using customized hard-wired logic, one or more application specific integrated circuits (ASICs) or field-programmable gate arrays (FPGAs), firmware and/or program logic which in combination with the computer system causes or programs computer system 700 to be a special-purpose machine. According to one embodiment, the techniques herein are performed by computer system 700 (and related data acquisition components, e.g., 2, 106, 108) in response to processor 730 executing one or more sequences of one or more instructions contained in main memory 732. Such instructions may be read into main memory 732 from another storage medium, such as storage device 736. Execution of the sequences of instructions contained in main memory 732 causes processor 730 to perform the process steps described herein. In alternative embodiments, hard-wired circuitry may be used in place of or in combination with software instructions.
[0096] The term “storage media” as used herein refers to any non-transitory media that stores data and/or instructions that cause a machine to operate in a specific fashion. Such storage media may comprise non-volatile media and/or volatile media. Non-volatile media comprises, for example, optical or magnetic disks, such as storage device 736. Volatile media comprises dynamic memory, such as main memory 732. Common forms of storage media include, for example, a floppy disk, a flexible disk, hard disk, solid state drive, magnetic tape, or any other magnetic data storage medium, a compact-disc read-only memory (CD-ROM), any other optical data storage medium, any physical medium with patterns of holes, a random access memory (RAM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), a flash erasable programmable read-only memory (FLASH-EPROM), a non-volatile random access memory (NVRAM), any other memory chip or cartridge, content-addressable memory (CAM), and/or ternary content-addressable memory (TCAM).
[0097] Storage media is distinct from but may be used in conjunction with transmission media. Transmission media participates in transferring information between storage media. For example, transmission media comprises coaxial cables, copper wire and fiber optics, including the wires that comprise bus 739. Transmission media can also take the form of acoustic or light waves, such as those generated during radio-wave and infrared data communications.
[0098] Various forms of media may be involved in carrying one or more sequences of one or more instructions to processor 730 for execution. For example, the instructions may initially be carried on a magnetic disk or solid-state drive of a remote computer. The remote computer can load the instructions into its dynamic memory and send the instructions over a telephone line using a modem. A modem local to computer system 700 can receive the data on the telephone line and use an infrared transmitter to convert the data to an infrared signal. An infrared detector can receive the data carried in the infrared signal and appropriate circuitry can place the data on bus 739. Bus 739 carries the data to main memory 732, from which processor 730 retrieves and executes the instructions. The instructions received by main memory 732 may optionally be stored on storage device 736 either before or after execution by processor 730.
[0099] Computer system 700 also comprises a communication interface 738 coupled to bus 640. Communication interface 738 provides a two-way data communication coupling to a network link that is connected to a local network (e.g., 112 of
[0100] The network link typically provides data communication through one or more networks to other data devices. For example, the network link may provide a connection through local network 112 to a host computer or to data equipment operated by an Internet Service Provider (ISP). The ISP in turn provides data communication services through the world-wide packet data communication network now commonly referred to as the “Internet”. The local network and the Internet both use electrical, electromagnetic or optical signals that carry digital data streams. The signals through the various networks and the signals on the network link and through the communication interface 738, which carry the digital data to and from computer system 700, are example forms of transmission media.
[0101] Computer system 700 can send messages and receive data, including program code, through the network(s), the network link and communication interface 738. In the Internet example, a server 114 might transmit a requested code for an application program through the Internet using an ISP and a local network 12, and the communication interface 738.
[0102] The received code may be executed by processor 730 as it is received, and/or stored in storage device 736, or other non-volatile storage for later execution.
[0103] It is additionally noted and anticipated that although the device is shown in its most simple form, various components and aspects of the device may be differently shaped or slightly modified when forming the invention herein. As such those skilled in the art will appreciate the descriptions and depictions set forth in this disclosure or merely meant to portray examples of preferred modes within the overall scope and intent of the invention, and are not to be considered limiting in any manner.
[0104] While all of the fundamental characteristics and features of the invention have been shown and described herein, with reference to particular embodiments thereof, a latitude of modification, various changes and substitutions are intended in the foregoing disclosure and it will be apparent that in some instances, some features of the invention may be employed without a corresponding use of other features without departing from the scope of the invention as set forth. It should also be understood that various substitutions, modifications, and variations may be made by those skilled in the art without departing from the scope of the invention.
[0105] The embodiments discussed herein to illustrate the disclosed techniques should not be considered limiting and only provide examples of implementation. Those skilled in the art will understand the other myriad ways of how the disclosed techniques may be implemented, which are contemplated herein and are within the bounds of the disclosure.