WO2015160369A1 - Methods and apparatus for monitoring a facility - Google Patents

Methods and apparatus for monitoring a facility Download PDF

Info

Publication number
WO2015160369A1
WO2015160369A1 PCT/US2014/039749 US2014039749W WO2015160369A1 WO 2015160369 A1 WO2015160369 A1 WO 2015160369A1 US 2014039749 W US2014039749 W US 2014039749W WO 2015160369 A1 WO2015160369 A1 WO 2015160369A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
media data
transmission unit
reception unit
characters
Prior art date
Application number
PCT/US2014/039749
Other languages
French (fr)
Inventor
Faheem AHMAD
Faisal Bin FAHEEM
Original Assignee
Vis-Ujala, Llc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Vis-Ujala, Llc filed Critical Vis-Ujala, Llc
Publication of WO2015160369A1 publication Critical patent/WO2015160369A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/12Messaging; Mailboxes; Announcements

Definitions

  • Text messaging services are commonly provided by communications networks to enable users of mobile devices to send text messages to recipients.
  • One example of a text messaging service is Short Message Service (SMS), which enables users to transfer text messages of up to a maximum specified length allowed by the network.
  • SMS Short Message Service
  • the term "text message” means a message in a format adapted to communicate characters which could be representative of text. Conventionally, text messages are limited in the number of characters they may communicate.
  • text messaging services are limited to transferring data in text format from one user to another.
  • a transfer of media data e.g., image data, audio data, video data, formatted documents, etc.
  • MMS multimedia messaging service
  • Messaging services such as MMS require the recipient device to be capable of connecting to the Internet, are more costly for users than text messaging services, and may not be available in certain geographic areas.
  • Some embodiments of the invention enable the transfer of media data (e.g., image data, audio data, video data, formatted documents, and/or other media data types) via a text messaging service.
  • a transmission unit e.g., a mobile device, such as a cell phone, smart phone, tablet device, gaming console, and/or any other type of device capable of communicating via a network which offers a text messaging service
  • the transmission unit includes one or more processors which execute programmed instructions enabling the transfer of media data via the text messaging service.
  • the programmed instructions may, for example, comprise an application programming interface, or API, which may provide other applications also executed by the processor access to this media data transfer capability.
  • applications executed by the transmission unit's processor(s) may transfer media data, such as visually discernable images and other media data, wirelessly without access to an Internet connection.
  • Some embodiments of the invention employ data compression techniques to compress the media data which is to be transmitted. Compression of the media data may, for example, reduce the number of text messages needed to transfer the media data. Compressed media data may be processed to prepare it for transmission via a text messaging service, and then divided into subsets of text, each having a number of characters of data that does not exceed character limits (e.g., imposed by the text messaging service to be used). Each subset may be labeled with a unique identifier and serial number, and transmitted via the text messaging service to a chosen reception unit. In some embodiments of the invention, the reception unit may assemble the received messages in proper sequence, combine the text included in the messages to produce a body of compressed data, and decompress this data to reconstruct the media data that was transmitted. The reception unit may, for example, visually obscure the reception of text messages that include media data from the user until all of the media data has been received and processed and is ready for display to the user.
  • Some embodiments of the invention may employ the capability to transfer media data via a text messaging service to cost-effectively monitor one or more facilities, such as to monitor inventory stored at the facility(ies).
  • a mobile device deployed at each facility may periodically capture media data, such as one or more images depicting inventory stored at the facility, and transfer the captured media data to a reception unit via one or more text messages.
  • Analysis of the media data received at the reception unit (which may be performed in automated or manual fashion, or using some combination of automated and manual techniques) may reveal, for example, that inventory at one or more facilities need not be re-stocked.
  • some embodiments of the invention may enable users to reduce labor and fuel costs that otherwise may have been expended in attempting a delivery of goods to re-stock inventory at one or more of the facilities. Analysis of media data may yield other insights as well, as discussed further below.
  • FIG. 1 is a block diagram depicting system components for transferring media data, in accordance with some embodiments of the invention
  • FIG. 2 is a flow chart depicting a representative process for transmitting and receiving media data, in accordance with some embodiments of the invention
  • FIG. 3 is a flow chart depicting a representative process for preparing media data for transmission, in accordance with some embodiments of the invention
  • FIG. 4 depicts a representative byte array generated as a result of the process shown in FIG. 3, in accordance with some embodiments of the invention
  • FIG. 5 is a depiction of an integer array generated as a result of the process shown in FIG. 3, in accordance with some embodiments of the invention.
  • FIG. 6 is a depiction of a character string generated as a result of the process shown in FIG. 3, in accordance with some embodiments of the invention.
  • FIG. 7 is a flow chart depicting a representative process for preparing media data for display and/or analysis, in accordance with some embodiments of the invention.
  • FIG. 8 is a depiction of a set of short messages processed via the process shown in FIG.
  • FIG. 9 is a depiction of a representative character array generated as a result of the process shown in FIG. 7, in accordance with some embodiments of the invention.
  • FIG. 10 is a block diagram depicting a representative system for monitoring an inventory facility, in accordance with some embodiments of the invention.
  • FIG. 11 is a flow chart depicting a representative process for capturing media data in response to a command being received, in accordance with some embodiments of the invention.
  • FIG. 12 is a block diagram depicting a representative computer system with which various aspects of the invention may be implemented.
  • a transmission unit may be configured (e.g., through programmed instructions executed by one or more processors of the transmission unit) to transfer media data via a text messaging service, thereby allowing the media data to be transmitted more cost-effectively than conventional techniques allow, to a recipient which need not have access to an Internet connection.
  • Representative system 100 includes transmission unit 105 which communicates with reception unit 150 via network(s) 140.
  • Transmission unit 105 includes antenna 135, which is operatively connected to a central processing unit (CPU) 110 via modulator/demodulator 125.
  • modulator/demodulator 125 provides modulation capabilities; i.e., conveying information (e.g., a data stream) within a signal that may be transmitted by antenna 135.
  • Display 130 which enables display of text, image and/or video data, is also operatively connected to CPU 110, as is memory 115, which stores programmed instructions for execution by CPU 110.
  • Media capture unit 120 comprises hardware and/or software for capturing media data, which may be of any suitable type(s).
  • media capture unit 120 may comprise a camera, microphone, network streaming device, and/or any other suitable hardware and/or software for capturing media data.
  • Network(s) 140 may comprise any suitable communications infrastructure, and employ any suitable communications protocol, as embodiments of the invention are not limited in this respect.
  • network(s) 140 are configured to support text messaging services, such as SMS and/or others.
  • network(s) 140 may implement the Global System for Mobile Communications (GSM) series of standards, which supports the use of SMS to transfer text messages of up to 160 American Standard Code For Information Interchange (ASCII) characters between devices.
  • GSM Global System for Mobile Communications
  • ASCII American Standard Code For Information Interchange
  • Reception unit 150 includes antenna 175 which is operatively connected to CPU 155 via modulator/demodulator 170.
  • modulator/demodulator 170 provides demodulation capabilities; i.e., extracting information from a signal received by antenna 175.
  • CPU 155 is also operatively connected to memory 160, which stores information such as programmed instructions for execution by CPU 155 and media data received via antenna 175 from transmission unit 105.
  • Display 165 is operatively connected to CPU 155 and enables display of information to a user, such as media data received from transmission unit 105.
  • FIG. 2 depicts a representative process 200 performed to transfer media data from transmission unit 105 to reception unit 150 via text messaging service.
  • a media data transfer mode is set in act 205. This may be performed in any of numerous ways. For example, a user may provide input to an application executing on transmission unit 105 indicating a desire to transfer media data to reception unit 150 via text messaging service.
  • Representative process 200 then proceeds to act 210, wherein the media data that is to be transferred is selected and read.
  • This may be performed in any of numerous ways.
  • a user may provide input to an application indicating one or more media files that are to be transferred.
  • embodiments of the invention may be used to transfer media data of any suitable type via text messaging service.
  • Representative media types that may be transferred include image data, audio data, video data, and documents or other structured data files.
  • the media data to be transferred is susceptible to compression, then it may be transferred via text messaging service using the techniques described herein.
  • Representative process 200 then proceeds to act 215, wherein the media data to be transferred is prepared for transmission via text messaging service.
  • Act 215 may incorporate any of numerous types of processing.
  • One example technique for preparing media data for transmission via a text messaging service is shown in FIG. 3.
  • FIG. 3 One example technique for preparing media data for transmission via a text messaging service is shown in FIG. 3.
  • embodiments of the invention are not limited to employing the technique shown in FIG. 3, as numerous variations are possible, as described further below.
  • the media data to be transferred is compressed in act 305.
  • Compression of the media data may be performed using any of numerous techniques, and embodiments of the invention are not limited to compressing media data in any particular way. If the media data includes image data (as but one example media type), then it may be compressed using any of numerous image data compression techniques, whether now known or later developed. In some embodiments of the invention, image data may be compressed using the WebP compression algorithm.
  • Some embodiments of the invention provide the ability to tailor the image data compression process to produce images of variable quality, For example, a user of transmission unit 105 may configure the image compression process to vary the quality of image data to be transferred, thereby varying the amount of text to be transferred to convey the image data to reception unit 150. This may be performed in any of numerous ways. For example, if the WebP compression technique is employed, then the user may define image quality by setting a variable which ranges from 0 to 100, with values closer to 0 causing the image data to be compressed in an increasingly "lossy" manner. As such, embodiments of the invention enable a user to configure the compression process to send the least amount of text necessary to convey a visually discernable image to reception unit 150, thereby conserving processing resources, network bandwidth, and cost.
  • representative process 300 proceeds to act 310, wherein the compressed media data generated in act 305 is converted into a byte array.
  • the data produced as output by the compression technique employed in act 305 is loaded to an array, with each byte of output occupying a different cell in the array.
  • a byte array produced in this fashion may have any suitable dimensions, and the data in each cell may be encoded using any suitable encoding scheme.
  • FIG. 4 depicts a representative byte array which has a single row of data, with the data in each cell being encoded in
  • representative process 300 proceeds to act 315, wherein the byte array generated in the act 310 is converted to an integer array.
  • the hexadecimal data in each cell in the byte array of FIG. 4 is converted to its equivalent in decimal format.
  • a representative integer array produced as a result of act 315 is shown in FIG. 5. It can be seen that the first value in the byte array of FIG. 4 (namely, the hexadecimal value "0x52”) has been converted to a corresponding integer (namely, the decimal value 82) in the integer array of FIG. 5. Similarly, the second value in the byte array of FIG.
  • act 315 also involves performing an arithmetic operation on the data stored in each cell of the array to ensure that the data is transmissible via text message.
  • the arithmetic operation involves adding a predetermined value (specifically, the value 32) to each integer stored in the array. This is because, in the example shown, the data is to be transferred via SMS, and the SMS service reserves the characters which correspond to the values 0 to 32 for predefined network carrier commands used to manage the SMS service. Thus, the characters which correspond to the values 0 to 32 cannot be used when transmitting data via SMS. Because of this, the value 32 is added to the integers stored in each cell of the array shown in FIG.
  • representative process 300 proceeds to act 320, wherein the integer array generated in act 315 is converted to a string of character data.
  • the integer i.e., decimal value
  • the integer stored in each cell of the integer array is converted to a corresponding character, which may be encoded using any suitable encoding scheme, including but not limited to the ASCII and
  • the encoding scheme used for character data generated in act 320 may depend on values stored in the integer array generated in act 315.
  • characters encoded using the ASCII encoding scheme correspond to decimal values from 0 to 255, and so when adding a value to each integer stored in the integer array results in a value which exceeds 255, this value may not be converted properly to an ASCII character.
  • some embodiments of the invention employ the Unicode encoding scheme to encode the character data produced in act 320. It should be appreciated that employing the ASCII encoding scheme is generally preferable to employing the Unicode scheme when transferring messages via SMS, because the maximum number of ASCII characters in an SMS message is 160, while the maximum number of Unicode characters in an SMS message is 70. Thus, in some
  • act 320 involves creating a string of ASCII characters unless any integers stored in the integer array exceed 255, in which case a string of Unicode characters is created.
  • act 320 need not involve encoding the data stored in the integer array using the same encoding scheme.
  • a first subset could be encoded using the ASCII encoding scheme
  • a second first subset could be encoded using the Unicode encoding scheme
  • a third first subset could be encoded using another encoding scheme.
  • Any suitable technique for generating character data which is transmissible via text messaging service may be employed, as embodiments of the invention are not limited in this respect.
  • representative process 300 proceeds to act 325, wherein the string of character data generated in the act 320 is broken into subsets, and an identifier is added to each subset.
  • This may be performed in any of numerous ways, and the technique chosen may depend on the text messaging service to be employed. For example, if SMS is to be employed, and if the character string generated in the act 320 comprises character data encoded using the ASCII scheme (e.g., if no integer in the array generated in act 315 exceeds a value of 255), then the act 325 may comprise breaking the character string into subsets which each include no more than 160 characters, since this is the maximum number of ASCII characters in any SMS message.
  • act 325 may involve breaking the character string into subsets which each include no more than 70 characters, since this is the maximum number of Unicode characters in any SMS message. If another text messaging service is to be used to transfer data, then act 325 may involve creating subsets of different lengths, which may or may not vary based on the encoding scheme used to encode character data. Any of numerous techniques may be employed.
  • representative process 300 completes.
  • representative process 200 proceeds to act 220, wherein media data is transmitted by transmission unit 105 to reception unit 150. This may be performed in any of numerous ways. For example, transfer may be accomplished by transmitting each of the subsets generated in act 325 separately as text messages. For example, each subset may be transmitted as its own SMS message.
  • Some embodiments of the invention accommodate message transmission restrictions imposed by network carriers and/or device operating systems.
  • some network carriers may limit the number of text messages that a device may send in a given time period, and device operating systems may impose similar limits.
  • the number of text messages needed to send media data according to the techniques described herein do not approach known carrier and operating system limits, but embodiments of the invention may cause message transmission to be throttled to accommodate restrictions if necessary.
  • some embodiments of the invention may limit the number of SMS messages sent by the transmission unit to 100 per hour, since this is a restriction commonly imposed by the Android operating system.
  • representative process 200 proceeds to act 225, wherein reception unit 150 receives the messages transmitted in act 220. Then, in act 230, media data included in received messages is processed to prepare the data for display and/or analysis.
  • a representative process 700 whereby data is received and prepared for display or analysis is shown in FIG. 7.
  • a message transmitted by transmission unit 105 is received by reception unit 150 in act 705, and then a determination is made in act 710 whether the received message includes media data. This determination may be made in any of numerous ways, and may be performed to provide a seamless user experience to a user of reception unit 150. In this respect, if a message received in act 705 does not include media data, then its receipt may be immediately broadcast to applications executing on reception unit 150, such as those which allow a user to examine received text messages. However, if a message received in act 705 includes media data, then its receipt may not be immediately broadcast to these applications, so that media data included in the messages may be prepared for display and/or analysis first.
  • the determination in act 710 may involve examining the message received in act 705 for a marker which indicates that the message includes media data. For example, in some embodiments of the invention, a semicolon is prepended to each message sent by transmission unit 105 that includes media data, to indicate to reception unit 150 that its receipt should not be immediately broadcast to applications. Thus, if the reception unit 150 detects this marker in a received message, it may save the message in local memory (e.g., memory 160, FIG. 1) until all transmitted media data has been received (at which point the transmitted media data may be reconstructed), rather than alerting the user that an individual text message including seemingly garbled character data has been received. If it is determined in act 710 that the received message does not include media data, then representative process 700 proceeds to act 715, wherein the message is provided to other applications on reception unit 150, such as a messaging application, and process 700 then completes.
  • a marker indicates that the message includes media data. For example, in some embodiments of the invention, a semicolon is prepended to each message sent
  • process 700 proceeds to act 720, wherein the media data is written to the reception unit's local memory.
  • Process 700 then proceeds to act 725, wherein a determination is made whether there are more messages which include media data which have yet to arrive. This determination may be performed in any of numerous ways.
  • each message may include an indication of the total number of text messages including media data which the reception unit 150 should expect, and so act 725 may involve comparing this quantity to the quantity of messages received.
  • any of numerous other techniques may be employed to determine whether more messages have yet to arrive.
  • each received message includes a sequence identifier, and the sequence identifiers define the order in which media data in the messages should be arranged.
  • an example set of messages received by reception unit 150 is shown in FIG. 8.
  • Each message includes a sequence identifier which follows a semicolon marker indicating that the message includes media data. In the example shown in FIG.
  • the sequence identifiers are 40, 41, 42, 43 and 44.
  • the sequence identifiers define the order in which the media data (which follows the sequence identifier in each message) should be arranged.
  • the media data included in the message having the sequence identifier 40 is placed first in the character array, followed by the media data included in the message having the sequence identifier 41, then the media data included in the message having the sequence identifier 42, and so on until all data included in messages having a sequence identifier is placed in the character array.
  • An example character array created from media data included in the messages shown in FIG. 8 is shown in FIG. 9.
  • Representative process 700 then proceeds to act 735, wherein the data in the character array generated in the act 730 is converted to an integer array.
  • act 735 involves performing the reverse of the operation performed in act 320, described above with reference to FIG. 3, in that a data character in each cell of the array generated in act 730 (e.g., encoded using the ASCII or Unicode scheme) is mapped to its decimal equivalent.
  • a data character in each cell of the array generated in act 730 e.g., encoded using the ASCII or Unicode scheme
  • the invention is not limited to generating an integer array in any particular fashion. For example, data characters may not be mapped to their decimal value equivalents.
  • a transformation is applied to the integers in the array.
  • this transformation may involve subtracting the value 32 from each integer in the array, to reverse the operation performed in act 315 (FIG. 3).
  • any suitable transformation may be performed, such as to reverse operations performed in preparation for transmission, as embodiments of the invention are not limited in this respect.
  • process 700 proceeds to act 740, wherein the integer array is converted into a byte array. This may be performed in any of numerous ways. In some embodiments, act 740 may involve converting each integer stored in the array to a
  • Process 700 then proceeds to act 745, wherein a decompression algorithm is applied to the data stored in the byte array created in act 740. This may be performed in any of numerous ways. Continuing with the example described above wherein the WebP compression technique was employed to compress media data in act 305 (FIG. 3), a corresponding decompression technique may be used to reproduce the media data which was selected and read in act 210 (FIG. 2). Representative process 700 then complete. Referring again to FIG.
  • representative process 200 proceeds to act 235, wherein the media data that was prepared in the act 230 is displayed an/or analyzed.
  • Display and/or analysis may take any of numerous forms.
  • media data may be displayed via display 165 (FIG. 1) to a user of reception unit 150.
  • media data may be analyzed via the execution of programmed instructions (e.g., stored in memory 160) by CPU 155 (FIG. 1).
  • programmed instructions e.g., stored in memory 160
  • CPU 155 FIG. 1
  • automated analysis of the media data may reveal characteristics which trigger the performance of particular actions. Representative process 200 then completes.
  • FIG. 10 depicts a representative implementation of system 100 (FIG. 1).
  • system 1000 shown in FIG. 10, is configured to monitor an inventory facility 1005, and to send images of inventory stored in facility 1005 via text message to analysis facility 1010.
  • inventory facility 1005 includes transmission unit 105, described above, which communicates via network(s) 140 with reception unit 150 at analysis facility 1010.
  • Analysis facility 1010 comprises computing system 1015 which may process media data received from inventory facility 1005, such as in the manner described below. It should be appreciated that although only one inventory facility 1005 is depicted in
  • FIG. 10 embodiments of the invention are not limited as to the number of facilities which may be monitored. Any suitable number of inventory facilities 1005 may send media data, including image data and/or media data of another type, to analysis facility 1010. In some embodiments, each inventory facility 1005 may include a single transmission unit 105, although embodiments of the invention are not limited to such an implementation, as any suitable number of
  • transmission units 105 may be deployed at each inventory facility 1005.
  • FIG. 10 depicts analysis facility 1010 with only one reception unit 150, embodiments of the invention are not limited to such an implementation, as analysis facility 1010 may include any suitable number of analysis units 150.
  • inventory facility 1005 may store any suitable type of goods, products or other tangible items.
  • inventory facility 1005 may be a warehouse, refrigerated appliance, vending machine, and/or any other type of facility which stores physical items.
  • Transmission unit 105 may be placed within inventory facility 1005 so as to be able to periodically capture media data indicative of conditions at the facility.
  • transmission unit 105 may be positioned so that a camera constituting media capture unit 120 (FIG. 1) may capture images that indicate inventory levels at facility 1005.
  • transmission unit 105 may be positioned so that a microphone captures audio that may indicate whether machinery within facility 1005 is operating properly.
  • Captured media may serve any of numerous purposes, and support any of numerous forms of analysis.
  • an operator at analysis facility 1010, and/or computing system 1015 may examine and/or process image data received from inventory facility 1005 indicating that goods stored at the facility need not be immediately re-stocked, and may reschedule deliveries that otherwise would have occurred to facility 1005, thereby conserving labor and fuel costs.
  • analysis of image data may identify particular types of goods that require re-stocking, allowing delivery vehicles to only be loaded with those particular types of goods, and further conserving labor and fuel costs.
  • a comparison of images captured periodically may reveal detailed consumption patterns for certain types of goods. Consumption data may be at more granular levels than could be otherwise be measured using conventional techniques.
  • embodiments of the invention may enable consumption patterns to be measured more often (e.g., daily), which may indicate that some types of goods should be replenished more frequently than weekly. Any of numerous types of conclusions may be drawn from an analysis, performed by computing system 1015 and/or an operator at analysis facility 1010, of media data sent by transmission unit 105.
  • media capture may be performed automatically by transmission unit 105 at some predefined periodicity, or in response to a command (e.g., received from reception unit 150, or another component not shown in FIG. 10).
  • a command e.g., received from reception unit 150, or another component not shown in FIG. 10.
  • a representative process 1100 in which media capture by transmission unit 105 is initiated via a command received from reception unit 150 is depicted in FIG. 11.
  • a command to capture and send media data is sent by reception unit 150 to transmission unit 105.
  • a request may take any of numerous forms.
  • a request for data could include one or more predefined keywords which, when received by the transmission unit, cause the transmission unit to provide access to media capture functionality.
  • an operator of reception unit 150 may send (e.g., via text message, and/or in some other form) one or more keywords which indicate that transmission unit 105 is to begin capturing media data of a specified type.
  • Representative process 1100 then proceeds to act 1110, wherein the request is received by transmission unit 105.
  • Transmission unit 105 may, for example, authenticate the request and/or the originator of the request (in this example, reception unit 150).
  • transmission unit 105 may verify that the request includes predefined keywords, or originates from a transmission unit having particular characteristics. It should be appreciated, however, that embodiments of the invention are not limited to transmission unit 105 authenticating the request and/or the device from which it originated.
  • process 1100 then proceeds to act 1115, wherein transmission unit 105 sets a media data messaging mode.
  • Act 1115 is similar to act 205, described above with reference to FIG. 2, in that a media data messaging mode may be set in any of numerous ways.
  • programmed instructions executing on transmission unit 105 may, in response to receiving the request in act 1110, establish a media data messaging mode, enabling transmission unit 105 to transmit media data via a text messaging service.
  • Representative process 1100 then proceeds to act 1120, wherein transmission unit 105 captures media data.
  • Media data capture may take any of numerous forms, and employ any of various functionality provided by transmission unit 105.
  • act 1120 may comprise transmission unit 105 opening a camera and capturing an image or video.
  • act 1120 may comprise transmission unit 105 initiating a microphone and capturing audio data. Any of numerous types of media capture functionality may be accessed to capture media data, and embodiments of the invention are not limited to employing any particular type of functionality.
  • act 1120 may involve capturing media using a front camera, a back camera, a microphone, screenshot functionality, and/or any other type of media capture functionality.
  • Act 1120 may involve preparing captured media data for transmission via a text messaging service. This may be accomplished, for example, using any or all of the techniques described above with reference to FIG. 3. However, embodiments of the invention are not limited to such an implementation.
  • Representative process 1100 then proceeds to act 1125, wherein the media data captured in act 1120 is sent to reception unit 150 via a text messaging service. This may be
  • Process 1100 then proceeds to act 1130, wherein reception unit 150 receives the data sent in act 1125.
  • Act 1130 may, for example, include performing any or all of the techniques described above with reference to acts 225, 230 and 235 (FIG. 2).
  • transmission unit 105 may comprise a camera hidden inside an automobile, and a user of reception unit 150 may send a command to capture image and/or video data of the car's interior after discovering that the car has been stolen.
  • transmission unit 105 may comprise a camera positioned to capture images within a warehouse, and a user of reception unit 150 may initiate image and/or video data capture upon learning that a fire or security alarm has been triggered at the warehouse. Any of numerous security uses may be envisioned.
  • the ability to remotely initiate media data capture and transmission may have other, non- security uses as well.
  • friends may mutually agree to allow each other access to their phones' media capture and transmission functionality, enabling them to share media data captured throughout the day as part of a social media experience.
  • each phone may serve both as a transmission unit and a reception unit.
  • a parent may remotely initiate capture and transmission of media data by their child's phone, allowing them to "keep tabs" on the child and/or locate him/her if they become lost or the parent otherwise becomes concerned.
  • Media data capture and transmission may be consensual or not.
  • embodiments of the invention are not limited to transferring media data to a reception unit.
  • a reception unit may remotely initiate transfer of any data (e.g., a file stored on transmission unit 105, which may or may not comprise media data) via a text messaging service.
  • Embodiments of the invention are not limited to transferring any particular type of information.
  • FIG. 12 illustrates one example of a suitable computing system environment 1200 which may be employed.
  • the computing system environment 1200 is only one example of a suitable computing environment, and is not intended to suggest any limitation as to the scope of use or functionality of the invention.
  • computing environment 1200 Neither should the computing environment 1200 be interpreted as having any dependency or requirement relating to any one or combination of components illustrated in the exemplary operating environment 1200. In this respect, the invention is operational with numerous other general purpose or special purpose computing system environments or configurations. Examples of well-known computing systems, environments, and/or
  • configurations that may be suitable for use with the invention include, but are not limited to, personal computers, server computers, mobile or laptop devices, multiprocessor systems, microprocessor-based systems, set top boxes, programmable consumer electronics, network PCs, minicomputers, mainframe computers, distributed computing environments that include any of the above systems or devices, and the like.
  • the computing environment may execute computer-executable instructions, such as program modules.
  • program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types.
  • the invention may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network.
  • program modules may be located in both local and remote computer storage media including memory storage devices.
  • FIG.12 depicts a general purpose computing device in the form of a computer 1210.
  • Components of computer 1210 may include, but are not limited to, a processing unit 1220, a system memory 1230, and a system bus 1221 that couples various system components including the system memory to the processing unit 1220.
  • the system bus 1221 may be any of several types of bus structures including a memory bus or memory controller, a peripheral bus, and a local bus using any of a variety of bus architectures.
  • bus architectures include Industry Standard Architecture (ISA) bus, Micro Channel
  • MCA Management Entity Bus
  • EISA Enhanced ISA
  • VESA Video Electronics Standards Association
  • PCI Peripheral Component Interconnect
  • Computer 1210 typically includes a variety of computer readable media.
  • Computer readable media can be any available media that can be accessed by computer 1210 and includes both volatile and nonvolatile media, removable and non-removable media.
  • Computer readable media may comprise computer storage media and communication media.
  • Computer storage media includes both volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data.
  • Computer storage media include, but are not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other one or more media which may be used to store the desired information and may be accessed by computer 1210.
  • Communication media typically embody computer readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media.
  • modulated data signal means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal.
  • communication media include wired media such as a wired network or direct- wired connection, and wireless media such as acoustic, RF, infrared and other wireless media.
  • the system memory 1230 includes computer storage media in the form of volatile and/or nonvolatile memory such as read only memory (ROM) 1231 and random access memory (RAM) 1232.
  • ROM read only memory
  • RAM random access memory
  • BIOS basic input/output system 1233
  • RAM 1232 typically contains data and/or program modules that are immediately accessible to and/or presently being operated on by processing unit 1220.
  • FIG. 12 illustrates operating system 1234, application programs 1235, other program modules 1236, and program data 1237.
  • the computer 1210 may also include other removable/non-removable,
  • FIG. 12 illustrates a hard disk drive 1241 that reads from or writes to non-removable, nonvolatile magnetic media, a magnetic disk drive 1251 that reads from or writes to a removable, nonvolatile magnetic disk 1252, and an optical disk drive 1255 that reads from or writes to a removable, nonvolatile optical disk 1256 such as a CD ROM or other optical media.
  • Other removable/non-removable, volatile/nonvolatile computer storage media that can be used in the exemplary operating environment include, but are not limited to, magnetic tape cassettes, flash memory cards, digital versatile disks, digital video tape, solid state RAM, solid state ROM, and the like.
  • the hard disk drive 1241 is typically connected to the system bus 1221 through an non-removable memory interface such as interface 1240, and magnetic disk drive 1251 and optical disk drive 1255 are typically connected to the system bus 1221 by a removable memory interface, such as interface 1250.
  • hard disk drive 1241 is illustrated as storing operating system 1244, application programs 1245, other program modules 1246, and program data 1247. Note that these components can either be the same as or different from operating system 1234, application programs 1235, other program modules 536, and program data 1237. Operating system 1244, application programs 1245, other program modules 1246, and program data 1247 are given different numbers here to illustrate that, at a minimum, they are different copies.
  • a user may enter commands and information into the computer 1210 through input devices such as a keyboard 1262 and pointing device 1261, commonly referred to as a mouse, trackball or touch pad.
  • Other input devices may include a microphone, joystick, game pad, satellite dish, scanner, or the like.
  • These and other input devices are often connected to the processing unit 1220 through a user input interface 560 that is coupled to the system bus, but may be connected by other interface and bus structures, such as a parallel port, game port or a universal serial bus (USB).
  • a monitor 1291 or other type of display device is also connected to the system bus 1221 via an interface, such as a video interface 1290.
  • computers may also include other peripheral output devices such as speakers 1297 and printer 1296, which may be connected through a output peripheral interface 1295.
  • the computer 1210 may operate in a networked environment using logical connections to one or more remote computers, such as a remote computer 1280.
  • the remote computer 1280 may be a personal computer, a server, a router, a network PC, a peer device or other common network node, and typically includes many or all of the elements described above relative to the computer 1210, although only a memory storage device 1281 has been illustrated in FIG. 12.
  • the logical connections depicted in FIG. 12 include a local area network (LAN) 1271 and a wide area network (WAN) 1273, but may also include other networks, including
  • the embodiments can be implemented in any of numerous ways.
  • the embodiments may be implemented using hardware, software or a combination thereof.
  • the software code can be executed on any suitable processor or collection of processors, whether provided in a single computer or distributed among multiple computers.
  • processors may be implemented as integrated circuits, with one or more processors in an integrated circuit component.
  • a processor may be implemented using circuitry in any suitable format.
  • a computer may be embodied in any of a number of forms, such as a rack-mounted computer, a desktop computer, a laptop computer, or a tablet computer.
  • a computer may be embedded in a device not generally regarded as a computer but with suitable processing capabilities, including a Personal Digital Assistant (PDA), a smart phone or any other suitable portable or fixed electronic device.
  • PDA Personal Digital Assistant
  • a computer may have one or more input and output devices. These devices can be used, among other things, to present a user interface. Examples of output devices that can be used to provide a user interface include printers or display screens for visual presentation of output and speakers or other sound generating devices for audible presentation of output.
  • Examples of input devices that can be used for a user interface include keyboards, and pointing devices, such as mice, touch pads, and digitizing tablets.
  • a computer may receive input information through speech recognition or in other audible format.
  • Such computers may be interconnected by one or more networks in any suitable form, including as a local area network or a wide area network, such as an enterprise network or the Internet.
  • networks may be based on any suitable technology and may operate according to any suitable protocol and may include wireless networks, wired networks or fiber optic networks.
  • the various methods or processes outlined herein may be coded as software that is executable on one or more processors that employ any one of a variety of operating systems or platforms. Additionally, such software may be written using any of a number of suitable programming languages and/or programming or scripting tools, and also may be compiled as executable machine language code or intermediate code that is executed on a framework or virtual machine.
  • the invention may be embodied as a computer readable storage medium (or multiple computer readable media) (e.g., a computer memory, one or more floppy discs, compact discs (CD), optical discs, digital video disks (DVD), magnetic tapes, flash memories, circuit configurations in Field Programmable Gate Arrays or other semiconductor devices, or other tangible computer storage medium) encoded with one or more programs that, when executed on one or more computers or other processors, perform methods that implement the various embodiments of the invention discussed above.
  • a computer readable storage medium may retain information for a sufficient time to provide computer-executable instructions in a non-transitory form.
  • Such a computer readable storage medium or media can be transportable, such that the program or programs stored thereon can be loaded onto one or more different computers or other processors to implement various aspects of the present invention as discussed above.
  • the term "computer- readable storage medium” encompasses only a computer-readable medium that can be considered to be a manufacture (i.e., article of manufacture) or a machine.
  • the invention may be embodied as a computer readable medium other than a computer-readable storage medium, such as a propagating signal.
  • program or “software” are used herein in a generic sense to refer to any type of computer code or set of computer-executable instructions that can be employed to program a computer or other processor to implement various aspects of the present invention as discussed above. Additionally, it should be appreciated that according to one aspect of this embodiment, one or more computer programs that when executed perform methods of the present invention need not reside on a single computer or processor, but may be distributed in a modular fashion amongst a number of different computers or processors to implement various aspects of the present invention.
  • Computer-executable instructions may be in many forms, such as program modules, executed by one or more computers or other devices.
  • program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types.
  • functionality of the program modules may be combined or distributed as desired in various embodiments.
  • data structures may be stored in computer-readable media in any suitable form.
  • data structures may be shown to have fields that are related through location in the data structure. Such relationships may likewise be achieved by assigning storage for the fields with locations in a computer-readable medium that conveys relationship between the fields.
  • any suitable mechanism may be used to establish a relationship between information in fields of a data structure, including through the use of pointers, tags or other mechanisms that establish relationship between data elements.
  • the invention may be embodied as a method, of which an example has been provided.
  • the acts performed as part of the method may be ordered in any suitable way.
  • embodiments may be constructed in which acts are performed in an order different than illustrated, which may include performing some acts simultaneously, even though shown as sequential acts in illustrative embodiments.

Abstract

Some embodiments of the invention enable the transfer of media data from a transmission unit to a reception unit via a text messaging service (e.g., SMS), allowing the transmission unit to transfer the media data (e.g., image data, audio data, etc.) wirelessly, without access to an Internet connection. This capability may be employed to cost-effectively monitor a facility, such as to monitor inventory stored at the facility.

Description

METHODS AND APPARATUS FOR MONITORING A FACILITY
BACKGROUND
Text messaging services are commonly provided by communications networks to enable users of mobile devices to send text messages to recipients. One example of a text messaging service is Short Message Service (SMS), which enables users to transfer text messages of up to a maximum specified length allowed by the network. (As used herein, the term "text message" means a message in a format adapted to communicate characters which could be representative of text. Conventionally, text messages are limited in the number of characters they may communicate.)
Conventionally, text messaging services are limited to transferring data in text format from one user to another. A transfer of media data (e.g., image data, audio data, video data, formatted documents, etc.) from one mobile device to another conventionally employs a messaging service designed for media data, such as the multimedia messaging service (MMS). Messaging services such as MMS require the recipient device to be capable of connecting to the Internet, are more costly for users than text messaging services, and may not be available in certain geographic areas.
SUMMARY
Some embodiments of the invention enable the transfer of media data (e.g., image data, audio data, video data, formatted documents, and/or other media data types) via a text messaging service. In this respect, some embodiments of the invention provide a transmission unit (e.g., a mobile device, such as a cell phone, smart phone, tablet device, gaming console, and/or any other type of device capable of communicating via a network which offers a text messaging service) configured to transfer media data via a text messaging service. In some embodiments, the transmission unit includes one or more processors which execute programmed instructions enabling the transfer of media data via the text messaging service. The programmed instructions may, for example, comprise an application programming interface, or API, which may provide other applications also executed by the processor access to this media data transfer capability. Thus, applications executed by the transmission unit's processor(s) may transfer media data, such as visually discernable images and other media data, wirelessly without access to an Internet connection.
Some embodiments of the invention employ data compression techniques to compress the media data which is to be transmitted. Compression of the media data may, for example, reduce the number of text messages needed to transfer the media data. Compressed media data may be processed to prepare it for transmission via a text messaging service, and then divided into subsets of text, each having a number of characters of data that does not exceed character limits (e.g., imposed by the text messaging service to be used). Each subset may be labeled with a unique identifier and serial number, and transmitted via the text messaging service to a chosen reception unit. In some embodiments of the invention, the reception unit may assemble the received messages in proper sequence, combine the text included in the messages to produce a body of compressed data, and decompress this data to reconstruct the media data that was transmitted. The reception unit may, for example, visually obscure the reception of text messages that include media data from the user until all of the media data has been received and processed and is ready for display to the user.
Some embodiments of the invention may employ the capability to transfer media data via a text messaging service to cost-effectively monitor one or more facilities, such as to monitor inventory stored at the facility(ies). For example, in some embodiments of the invention, a mobile device deployed at each facility may periodically capture media data, such as one or more images depicting inventory stored at the facility, and transfer the captured media data to a reception unit via one or more text messages. Analysis of the media data received at the reception unit (which may be performed in automated or manual fashion, or using some combination of automated and manual techniques) may reveal, for example, that inventory at one or more facilities need not be re-stocked. As such, some embodiments of the invention may enable users to reduce labor and fuel costs that otherwise may have been expended in attempting a delivery of goods to re-stock inventory at one or more of the facilities. Analysis of media data may yield other insights as well, as discussed further below.
The foregoing is a non-limiting summary of the invention, some embodiments of which are defined by the attached claims. BRIEF DESCRIPTION OF DRAWINGS
The accompanying drawings are not intended to be drawn to scale. In the drawings, each identical or nearly identical component illustrated in the various figures is represented by a like numeral. For purposes of clarity, not every component may be labeled in every drawing. In the drawings:
FIG. 1 is a block diagram depicting system components for transferring media data, in accordance with some embodiments of the invention;
FIG. 2 is a flow chart depicting a representative process for transmitting and receiving media data, in accordance with some embodiments of the invention; FIG. 3 is a flow chart depicting a representative process for preparing media data for transmission, in accordance with some embodiments of the invention;
FIG. 4 depicts a representative byte array generated as a result of the process shown in FIG. 3, in accordance with some embodiments of the invention;
FIG. 5 is a depiction of an integer array generated as a result of the process shown in FIG. 3, in accordance with some embodiments of the invention;
FIG. 6 is a depiction of a character string generated as a result of the process shown in FIG. 3, in accordance with some embodiments of the invention;
FIG. 7 is a flow chart depicting a representative process for preparing media data for display and/or analysis, in accordance with some embodiments of the invention; FIG. 8 is a depiction of a set of short messages processed via the process shown in FIG.
7, in accordance with some embodiments of the invention;
FIG. 9 is a depiction of a representative character array generated as a result of the process shown in FIG. 7, in accordance with some embodiments of the invention;
FIG. 10 is a block diagram depicting a representative system for monitoring an inventory facility, in accordance with some embodiments of the invention;
FIG. 11 is a flow chart depicting a representative process for capturing media data in response to a command being received, in accordance with some embodiments of the invention; and FIG. 12 is a block diagram depicting a representative computer system with which various aspects of the invention may be implemented.
DETAILED DESCRIPTION Some embodiments of the invention enable the transfer of media data via a text messaging service. For example, a transmission unit may be configured (e.g., through programmed instructions executed by one or more processors of the transmission unit) to transfer media data via a text messaging service, thereby allowing the media data to be transmitted more cost-effectively than conventional techniques allow, to a recipient which need not have access to an Internet connection.
Representative system 100, depicted in FIG. 1, includes transmission unit 105 which communicates with reception unit 150 via network(s) 140. Transmission unit 105 includes antenna 135, which is operatively connected to a central processing unit (CPU) 110 via modulator/demodulator 125. In representative system 100, modulator/demodulator 125 provides modulation capabilities; i.e., conveying information (e.g., a data stream) within a signal that may be transmitted by antenna 135. Display 130, which enables display of text, image and/or video data, is also operatively connected to CPU 110, as is memory 115, which stores programmed instructions for execution by CPU 110. Media capture unit 120 comprises hardware and/or software for capturing media data, which may be of any suitable type(s). For example, media capture unit 120 may comprise a camera, microphone, network streaming device, and/or any other suitable hardware and/or software for capturing media data.
Network(s) 140 may comprise any suitable communications infrastructure, and employ any suitable communications protocol, as embodiments of the invention are not limited in this respect. In some embodiments of the invention, network(s) 140 are configured to support text messaging services, such as SMS and/or others. For example, network(s) 140 may implement the Global System for Mobile Communications (GSM) series of standards, which supports the use of SMS to transfer text messages of up to 160 American Standard Code For Information Interchange (ASCII) characters between devices.
Reception unit 150 includes antenna 175 which is operatively connected to CPU 155 via modulator/demodulator 170. In representative system 100, modulator/demodulator 170 provides demodulation capabilities; i.e., extracting information from a signal received by antenna 175. CPU 155 is also operatively connected to memory 160, which stores information such as programmed instructions for execution by CPU 155 and media data received via antenna 175 from transmission unit 105. Display 165 is operatively connected to CPU 155 and enables display of information to a user, such as media data received from transmission unit 105.
FIG. 2 depicts a representative process 200 performed to transfer media data from transmission unit 105 to reception unit 150 via text messaging service. At the start of representative process 200, a media data transfer mode is set in act 205. This may be performed in any of numerous ways. For example, a user may provide input to an application executing on transmission unit 105 indicating a desire to transfer media data to reception unit 150 via text messaging service.
Representative process 200 then proceeds to act 210, wherein the media data that is to be transferred is selected and read. This, too, may be performed in any of numerous ways. For example, a user may provide input to an application indicating one or more media files that are to be transferred. In this respect, embodiments of the invention may be used to transfer media data of any suitable type via text messaging service. Representative media types that may be transferred include image data, audio data, video data, and documents or other structured data files. In some embodiments, so long as the media data to be transferred is susceptible to compression, then it may be transferred via text messaging service using the techniques described herein.
Representative process 200 then proceeds to act 215, wherein the media data to be transferred is prepared for transmission via text messaging service. Act 215 may incorporate any of numerous types of processing. One example technique for preparing media data for transmission via a text messaging service is shown in FIG. 3. However, it should be appreciated that embodiments of the invention are not limited to employing the technique shown in FIG. 3, as numerous variations are possible, as described further below.
At the start of representative process 300 depicted in FIG. 3, the media data to be transferred is compressed in act 305. Compression of the media data may be performed using any of numerous techniques, and embodiments of the invention are not limited to compressing media data in any particular way. If the media data includes image data (as but one example media type), then it may be compressed using any of numerous image data compression techniques, whether now known or later developed. In some embodiments of the invention, image data may be compressed using the WebP compression algorithm.
Some embodiments of the invention provide the ability to tailor the image data compression process to produce images of variable quality, For example, a user of transmission unit 105 may configure the image compression process to vary the quality of image data to be transferred, thereby varying the amount of text to be transferred to convey the image data to reception unit 150. This may be performed in any of numerous ways. For example, if the WebP compression technique is employed, then the user may define image quality by setting a variable which ranges from 0 to 100, with values closer to 0 causing the image data to be compressed in an increasingly "lossy" manner. As such, embodiments of the invention enable a user to configure the compression process to send the least amount of text necessary to convey a visually discernable image to reception unit 150, thereby conserving processing resources, network bandwidth, and cost.
At the completion of act 305, representative process 300 proceeds to act 310, wherein the compressed media data generated in act 305 is converted into a byte array. In some
embodiments, the data produced as output by the compression technique employed in act 305 is loaded to an array, with each byte of output occupying a different cell in the array. A byte array produced in this fashion may have any suitable dimensions, and the data in each cell may be encoded using any suitable encoding scheme. In this respect, FIG. 4 depicts a representative byte array which has a single row of data, with the data in each cell being encoded in
hexadecimal format.
At the completion of act 310, representative process 300 proceeds to act 315, wherein the byte array generated in the act 310 is converted to an integer array. This may be performed in any of numerous ways. In some embodiments of the invention, the hexadecimal data in each cell in the byte array of FIG. 4 is converted to its equivalent in decimal format. A representative integer array produced as a result of act 315 is shown in FIG. 5. It can be seen that the first value in the byte array of FIG. 4 (namely, the hexadecimal value "0x52") has been converted to a corresponding integer (namely, the decimal value 82) in the integer array of FIG. 5. Similarly, the second value in the byte array of FIG. 4 (namely, the hexadecimal value "0x49") has been converted to a corresponding integer (namely, the decimal value 73) in the integer array of FIG. 5. It should be appreciated that although the integer stored in each cell of the array shown in FIG. 5 is the decimal value equivalent of the hexadecimal value stored in the corresponding cell of the array shown in FIG. 4, embodiments of the invention are not limited to converting values stored in cells of a byte array to their decimal equivalents, or to having converted integer data populate the same cells as their hexadecimal equivalents. Any suitable technique may be employed, as embodiments of the invention are not limited in this respect.
Once the integer array is created, act 315 also involves performing an arithmetic operation on the data stored in each cell of the array to ensure that the data is transmissible via text message. In the example shown in FIG. 3, the arithmetic operation involves adding a predetermined value (specifically, the value 32) to each integer stored in the array. This is because, in the example shown, the data is to be transferred via SMS, and the SMS service reserves the characters which correspond to the values 0 to 32 for predefined network carrier commands used to manage the SMS service. Thus, the characters which correspond to the values 0 to 32 cannot be used when transmitting data via SMS. Because of this, the value 32 is added to the integers stored in each cell of the array shown in FIG. 5 to produce a value that has a character equivalent that can be transferred via SMS. Of course, other text messaging services may reserve other characters for network carrier commands, and so act 315 may involve performing other operations on values stored in the cells of an integer array to enable transfer via those other text messaging services. In this respect, embodiments of the invention are not limited to performing any particular type(s) of arithmetic or logical operation(s) on data stored in an integer array to make the data transmissible via a text messaging service.
At the completion of act 315, representative process 300 proceeds to act 320, wherein the integer array generated in act 315 is converted to a string of character data. This may be performed in any of numerous ways. In one example technique, the integer (i.e., decimal value) stored in each cell of the integer array is converted to a corresponding character, which may be encoded using any suitable encoding scheme, including but not limited to the ASCII and
Unicode encoding schemes. Of course, decimal values need not be converted to corresponding character data, as any suitable transformation may alternatively be employed.
In some embodiments, the encoding scheme used for character data generated in act 320 may depend on values stored in the integer array generated in act 315. In this respect, characters encoded using the ASCII encoding scheme correspond to decimal values from 0 to 255, and so when adding a value to each integer stored in the integer array results in a value which exceeds 255, this value may not be converted properly to an ASCII character. Thus, in some
embodiments, if any integer stored in the integer array generated in act 315 exceeds 255, some embodiments of the invention employ the Unicode encoding scheme to encode the character data produced in act 320. It should be appreciated that employing the ASCII encoding scheme is generally preferable to employing the Unicode scheme when transferring messages via SMS, because the maximum number of ASCII characters in an SMS message is 160, while the maximum number of Unicode characters in an SMS message is 70. Thus, in some
embodiments, act 320 involves creating a string of ASCII characters unless any integers stored in the integer array exceed 255, in which case a string of Unicode characters is created. Of course, act 320 need not involve encoding the data stored in the integer array using the same encoding scheme. For example, a first subset could be encoded using the ASCII encoding scheme, a second first subset could be encoded using the Unicode encoding scheme, and a third first subset could be encoded using another encoding scheme. Any suitable technique for generating character data which is transmissible via text messaging service may be employed, as embodiments of the invention are not limited in this respect.
At the completion of act 320, representative process 300 proceeds to act 325, wherein the string of character data generated in the act 320 is broken into subsets, and an identifier is added to each subset. This may be performed in any of numerous ways, and the technique chosen may depend on the text messaging service to be employed. For example, if SMS is to be employed, and if the character string generated in the act 320 comprises character data encoded using the ASCII scheme (e.g., if no integer in the array generated in act 315 exceeds a value of 255), then the act 325 may comprise breaking the character string into subsets which each include no more than 160 characters, since this is the maximum number of ASCII characters in any SMS message. If the character string generated in the act 320 comprises Unicode data, then act 325 may involve breaking the character string into subsets which each include no more than 70 characters, since this is the maximum number of Unicode characters in any SMS message. If another text messaging service is to be used to transfer data, then act 325 may involve creating subsets of different lengths, which may or may not vary based on the encoding scheme used to encode character data. Any of numerous techniques may be employed. At the completion of act 325, representative process 300 completes. Returning again to FIG. 2, at the completion of act 215, representative process 200 proceeds to act 220, wherein media data is transmitted by transmission unit 105 to reception unit 150. This may be performed in any of numerous ways. For example, transfer may be accomplished by transmitting each of the subsets generated in act 325 separately as text messages. For example, each subset may be transmitted as its own SMS message.
Some embodiments of the invention accommodate message transmission restrictions imposed by network carriers and/or device operating systems. In this respect, some network carriers may limit the number of text messages that a device may send in a given time period, and device operating systems may impose similar limits. Typically, the number of text messages needed to send media data according to the techniques described herein do not approach known carrier and operating system limits, but embodiments of the invention may cause message transmission to be throttled to accommodate restrictions if necessary. For example, some embodiments of the invention may limit the number of SMS messages sent by the transmission unit to 100 per hour, since this is a restriction commonly imposed by the Android operating system.
At the completion of act 220, representative process 200 proceeds to act 225, wherein reception unit 150 receives the messages transmitted in act 220. Then, in act 230, media data included in received messages is processed to prepare the data for display and/or analysis. A representative process 700 whereby data is received and prepared for display or analysis is shown in FIG. 7.
At the start of representative process 700, a message transmitted by transmission unit 105 is received by reception unit 150 in act 705, and then a determination is made in act 710 whether the received message includes media data. This determination may be made in any of numerous ways, and may be performed to provide a seamless user experience to a user of reception unit 150. In this respect, if a message received in act 705 does not include media data, then its receipt may be immediately broadcast to applications executing on reception unit 150, such as those which allow a user to examine received text messages. However, if a message received in act 705 includes media data, then its receipt may not be immediately broadcast to these applications, so that media data included in the messages may be prepared for display and/or analysis first. In some embodiments of the invention, the determination in act 710 may involve examining the message received in act 705 for a marker which indicates that the message includes media data. For example, in some embodiments of the invention, a semicolon is prepended to each message sent by transmission unit 105 that includes media data, to indicate to reception unit 150 that its receipt should not be immediately broadcast to applications. Thus, if the reception unit 150 detects this marker in a received message, it may save the message in local memory (e.g., memory 160, FIG. 1) until all transmitted media data has been received (at which point the transmitted media data may be reconstructed), rather than alerting the user that an individual text message including seemingly garbled character data has been received. If it is determined in act 710 that the received message does not include media data, then representative process 700 proceeds to act 715, wherein the message is provided to other applications on reception unit 150, such as a messaging application, and process 700 then completes.
If, however, it is determined in the act 710 that the received message includes media data, then process 700 proceeds to act 720, wherein the media data is written to the reception unit's local memory. Process 700 then proceeds to act 725, wherein a determination is made whether there are more messages which include media data which have yet to arrive. This determination may be performed in any of numerous ways. In some embodiments, each message may include an indication of the total number of text messages including media data which the reception unit 150 should expect, and so act 725 may involve comparing this quantity to the quantity of messages received. Of course, any of numerous other techniques may be employed to determine whether more messages have yet to arrive.
If it is determined in act 725 that more messages which include media data have yet to arrive, then process 700 returns to act 705, and reception unit 150 awaits receipt of further messages. If, however, it is determined in act 725 that no more messages are yet to arrive, then representative process 700 proceeds to act 730, wherein the media data included in the received messages are combined into a character array. This may be performed in any of numerous ways. In one example, each received message includes a sequence identifier, and the sequence identifiers define the order in which media data in the messages should be arranged. In this respect, an example set of messages received by reception unit 150 is shown in FIG. 8. Each message includes a sequence identifier which follows a semicolon marker indicating that the message includes media data. In the example shown in FIG. 8, the sequence identifiers are 40, 41, 42, 43 and 44. The sequence identifiers define the order in which the media data (which follows the sequence identifier in each message) should be arranged. Thus, in the example shown, the media data included in the message having the sequence identifier 40 is placed first in the character array, followed by the media data included in the message having the sequence identifier 41, then the media data included in the message having the sequence identifier 42, and so on until all data included in messages having a sequence identifier is placed in the character array. An example character array created from media data included in the messages shown in FIG. 8 is shown in FIG. 9. Representative process 700 then proceeds to act 735, wherein the data in the character array generated in the act 730 is converted to an integer array. In some embodiments of the invention, act 735 involves performing the reverse of the operation performed in act 320, described above with reference to FIG. 3, in that a data character in each cell of the array generated in act 730 (e.g., encoded using the ASCII or Unicode scheme) is mapped to its decimal equivalent. Of course, other techniques may be employed, as the invention is not limited to generating an integer array in any particular fashion. For example, data characters may not be mapped to their decimal value equivalents.
In representative process 700, after the integer array is populated, a transformation is applied to the integers in the array. Continuing with the example described above, in which messages are transferred using SMS, this transformation may involve subtracting the value 32 from each integer in the array, to reverse the operation performed in act 315 (FIG. 3). Of course, any suitable transformation may be performed, such as to reverse operations performed in preparation for transmission, as embodiments of the invention are not limited in this respect.
At the completion of act 735, process 700 proceeds to act 740, wherein the integer array is converted into a byte array. This may be performed in any of numerous ways. In some embodiments, act 740 may involve converting each integer stored in the array to a
corresponding hexadecimal value representing compressed media data, such as is shown in the byte array of FIG. 4. Of course, the byte array produced in act 740 need not include data in any particular format, as any suitable data format may be employed. Process 700 then proceeds to act 745, wherein a decompression algorithm is applied to the data stored in the byte array created in act 740. This may be performed in any of numerous ways. Continuing with the example described above wherein the WebP compression technique was employed to compress media data in act 305 (FIG. 3), a corresponding decompression technique may be used to reproduce the media data which was selected and read in act 210 (FIG. 2). Representative process 700 then complete. Referring again to FIG. 2, at the completion of act 230, representative process 200 proceeds to act 235, wherein the media data that was prepared in the act 230 is displayed an/or analyzed. Display and/or analysis may take any of numerous forms. As an example, media data may be displayed via display 165 (FIG. 1) to a user of reception unit 150. Alternatively, or in addition, media data may be analyzed via the execution of programmed instructions (e.g., stored in memory 160) by CPU 155 (FIG. 1). For example, automated analysis of the media data may reveal characteristics which trigger the performance of particular actions. Representative process 200 then completes.
FIG. 10 depicts a representative implementation of system 100 (FIG. 1). In this respect, system 1000, shown in FIG. 10, is configured to monitor an inventory facility 1005, and to send images of inventory stored in facility 1005 via text message to analysis facility 1010. In this respect, inventory facility 1005 includes transmission unit 105, described above, which communicates via network(s) 140 with reception unit 150 at analysis facility 1010. Analysis facility 1010 comprises computing system 1015 which may process media data received from inventory facility 1005, such as in the manner described below. It should be appreciated that although only one inventory facility 1005 is depicted in
FIG. 10, embodiments of the invention are not limited as to the number of facilities which may be monitored. Any suitable number of inventory facilities 1005 may send media data, including image data and/or media data of another type, to analysis facility 1010. In some embodiments, each inventory facility 1005 may include a single transmission unit 105, although embodiments of the invention are not limited to such an implementation, as any suitable number of
transmission units 105 may be deployed at each inventory facility 1005. Similarly, although FIG. 10 depicts analysis facility 1010 with only one reception unit 150, embodiments of the invention are not limited to such an implementation, as analysis facility 1010 may include any suitable number of analysis units 150. In the representative system 1000 shown in FIG. 10, inventory facility 1005 may store any suitable type of goods, products or other tangible items. For example, inventory facility 1005 may be a warehouse, refrigerated appliance, vending machine, and/or any other type of facility which stores physical items. Transmission unit 105 may be placed within inventory facility 1005 so as to be able to periodically capture media data indicative of conditions at the facility. In one example, transmission unit 105 may be positioned so that a camera constituting media capture unit 120 (FIG. 1) may capture images that indicate inventory levels at facility 1005. In another example, transmission unit 105 may be positioned so that a microphone captures audio that may indicate whether machinery within facility 1005 is operating properly.
Captured media may serve any of numerous purposes, and support any of numerous forms of analysis. In one example, an operator at analysis facility 1010, and/or computing system 1015, may examine and/or process image data received from inventory facility 1005 indicating that goods stored at the facility need not be immediately re-stocked, and may reschedule deliveries that otherwise would have occurred to facility 1005, thereby conserving labor and fuel costs. In another example, analysis of image data may identify particular types of goods that require re-stocking, allowing delivery vehicles to only be loaded with those particular types of goods, and further conserving labor and fuel costs. In yet another example, a comparison of images captured periodically may reveal detailed consumption patterns for certain types of goods. Consumption data may be at more granular levels than could be otherwise be measured using conventional techniques. For example, rather than measuring consumption levels when delivery personnel make weekly deliveries, embodiments of the invention may enable consumption patterns to be measured more often (e.g., daily), which may indicate that some types of goods should be replenished more frequently than weekly. Any of numerous types of conclusions may be drawn from an analysis, performed by computing system 1015 and/or an operator at analysis facility 1010, of media data sent by transmission unit 105.
It should be appreciated that media capture may be performed automatically by transmission unit 105 at some predefined periodicity, or in response to a command (e.g., received from reception unit 150, or another component not shown in FIG. 10). A representative process 1100 in which media capture by transmission unit 105 is initiated via a command received from reception unit 150 is depicted in FIG. 11.
At the start of representative process 1100, a command to capture and send media data is sent by reception unit 150 to transmission unit 105. A request may take any of numerous forms. For example, a request for data could include one or more predefined keywords which, when received by the transmission unit, cause the transmission unit to provide access to media capture functionality. For example, an operator of reception unit 150 may send (e.g., via text message, and/or in some other form) one or more keywords which indicate that transmission unit 105 is to begin capturing media data of a specified type. Representative process 1100 then proceeds to act 1110, wherein the request is received by transmission unit 105. Transmission unit 105 may, for example, authenticate the request and/or the originator of the request (in this example, reception unit 150). For example, transmission unit 105 may verify that the request includes predefined keywords, or originates from a transmission unit having particular characteristics. It should be appreciated, however, that embodiments of the invention are not limited to transmission unit 105 authenticating the request and/or the device from which it originated.
At the completion of act 1110, process 1100 then proceeds to act 1115, wherein transmission unit 105 sets a media data messaging mode. Act 1115 is similar to act 205, described above with reference to FIG. 2, in that a media data messaging mode may be set in any of numerous ways. For example, programmed instructions executing on transmission unit 105 may, in response to receiving the request in act 1110, establish a media data messaging mode, enabling transmission unit 105 to transmit media data via a text messaging service.
Representative process 1100 then proceeds to act 1120, wherein transmission unit 105 captures media data. Media data capture may take any of numerous forms, and employ any of various functionality provided by transmission unit 105. For example, if the media data that is captured comprises image data, then act 1120 may comprise transmission unit 105 opening a camera and capturing an image or video. If the media to be captured comprises audio data, then act 1120 may comprise transmission unit 105 initiating a microphone and capturing audio data. Any of numerous types of media capture functionality may be accessed to capture media data, and embodiments of the invention are not limited to employing any particular type of functionality. As examples, act 1120 may involve capturing media using a front camera, a back camera, a microphone, screenshot functionality, and/or any other type of media capture functionality.
Act 1120 may involve preparing captured media data for transmission via a text messaging service. This may be accomplished, for example, using any or all of the techniques described above with reference to FIG. 3. However, embodiments of the invention are not limited to such an implementation.
Representative process 1100 then proceeds to act 1125, wherein the media data captured in act 1120 is sent to reception unit 150 via a text messaging service. This may be
accomplished, for example, using the techniques described above with reference to act 220 (FIG. 2). Process 1100 then proceeds to act 1130, wherein reception unit 150 receives the data sent in act 1125. Act 1130 may, for example, include performing any or all of the techniques described above with reference to acts 225, 230 and 235 (FIG. 2).
Representative process 1100 then completes. The capability to remotely initiate media data capture and transmission via text messaging service may have any of numerous uses. For example, this capability may have security applications. As one example, transmission unit 105 may comprise a camera hidden inside an automobile, and a user of reception unit 150 may send a command to capture image and/or video data of the car's interior after discovering that the car has been stolen. As another example, transmission unit 105 may comprise a camera positioned to capture images within a warehouse, and a user of reception unit 150 may initiate image and/or video data capture upon learning that a fire or security alarm has been triggered at the warehouse. Any of numerous security uses may be envisioned.
The ability to remotely initiate media data capture and transmission may have other, non- security uses as well. For example, friends may mutually agree to allow each other access to their phones' media capture and transmission functionality, enabling them to share media data captured throughout the day as part of a social media experience. (In this example, each phone may serve both as a transmission unit and a reception unit.) In another example, a parent may remotely initiate capture and transmission of media data by their child's phone, allowing them to "keep tabs" on the child and/or locate him/her if they become lost or the parent otherwise becomes concerned. Media data capture and transmission may be consensual or not.
It should be appreciated that embodiments of the invention are not limited to transferring media data to a reception unit. For example, a reception unit may remotely initiate transfer of any data (e.g., a file stored on transmission unit 105, which may or may not comprise media data) via a text messaging service. Embodiments of the invention are not limited to transferring any particular type of information. It should also be appreciated from the foregoing that some embodiments of the invention may employ a computer to implement certain aspects of the invention. FIG. 12 illustrates one example of a suitable computing system environment 1200 which may be employed. The computing system environment 1200 is only one example of a suitable computing environment, and is not intended to suggest any limitation as to the scope of use or functionality of the invention. Neither should the computing environment 1200 be interpreted as having any dependency or requirement relating to any one or combination of components illustrated in the exemplary operating environment 1200. In this respect, the invention is operational with numerous other general purpose or special purpose computing system environments or configurations. Examples of well-known computing systems, environments, and/or
configurations that may be suitable for use with the invention include, but are not limited to, personal computers, server computers, mobile or laptop devices, multiprocessor systems, microprocessor-based systems, set top boxes, programmable consumer electronics, network PCs, minicomputers, mainframe computers, distributed computing environments that include any of the above systems or devices, and the like.
The computing environment may execute computer-executable instructions, such as program modules. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. The invention may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote computer storage media including memory storage devices.
FIG.12 depicts a general purpose computing device in the form of a computer 1210. Components of computer 1210 may include, but are not limited to, a processing unit 1220, a system memory 1230, and a system bus 1221 that couples various system components including the system memory to the processing unit 1220. The system bus 1221 may be any of several types of bus structures including a memory bus or memory controller, a peripheral bus, and a local bus using any of a variety of bus architectures. By way of example, and not limitation, such architectures include Industry Standard Architecture (ISA) bus, Micro Channel
Architecture (MCA) bus, Enhanced ISA (EISA) bus, Video Electronics Standards Association (VESA) local bus, and Peripheral Component Interconnect (PCI) bus also known as Mezzanine bus.
Computer 1210 typically includes a variety of computer readable media. Computer readable media can be any available media that can be accessed by computer 1210 and includes both volatile and nonvolatile media, removable and non-removable media. By way of example, and not limitation, computer readable media may comprise computer storage media and communication media. Computer storage media includes both volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. Computer storage media include, but are not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other one or more media which may be used to store the desired information and may be accessed by computer 1210. Communication media typically embody computer readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media. The term "modulated data signal" means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media include wired media such as a wired network or direct- wired connection, and wireless media such as acoustic, RF, infrared and other wireless media.
Combinations of the any of the above should also be included within the scope of computer readable media.
The system memory 1230 includes computer storage media in the form of volatile and/or nonvolatile memory such as read only memory (ROM) 1231 and random access memory (RAM) 1232. A basic input/output system 1233 (BIOS), containing the basic routines that help to transfer information between elements within computer 1210, such as during start-up, is typically stored in ROM 1231. RAM 1232 typically contains data and/or program modules that are immediately accessible to and/or presently being operated on by processing unit 1220. By way of example, and not limitation, FIG. 12 illustrates operating system 1234, application programs 1235, other program modules 1236, and program data 1237. The computer 1210 may also include other removable/non-removable,
volatile/nonvolatile computer storage media. By way of example only, FIG. 12 illustrates a hard disk drive 1241 that reads from or writes to non-removable, nonvolatile magnetic media, a magnetic disk drive 1251 that reads from or writes to a removable, nonvolatile magnetic disk 1252, and an optical disk drive 1255 that reads from or writes to a removable, nonvolatile optical disk 1256 such as a CD ROM or other optical media. Other removable/non-removable, volatile/nonvolatile computer storage media that can be used in the exemplary operating environment include, but are not limited to, magnetic tape cassettes, flash memory cards, digital versatile disks, digital video tape, solid state RAM, solid state ROM, and the like. The hard disk drive 1241 is typically connected to the system bus 1221 through an non-removable memory interface such as interface 1240, and magnetic disk drive 1251 and optical disk drive 1255 are typically connected to the system bus 1221 by a removable memory interface, such as interface 1250.
The drives and their associated computer storage media discussed above and illustrated in FIG. 12, provide storage of computer readable instructions, data structures, program modules and other data for the computer 1210. In FIG. 12, for example, hard disk drive 1241 is illustrated as storing operating system 1244, application programs 1245, other program modules 1246, and program data 1247. Note that these components can either be the same as or different from operating system 1234, application programs 1235, other program modules 536, and program data 1237. Operating system 1244, application programs 1245, other program modules 1246, and program data 1247 are given different numbers here to illustrate that, at a minimum, they are different copies. A user may enter commands and information into the computer 1210 through input devices such as a keyboard 1262 and pointing device 1261, commonly referred to as a mouse, trackball or touch pad. Other input devices (not shown) may include a microphone, joystick, game pad, satellite dish, scanner, or the like. These and other input devices are often connected to the processing unit 1220 through a user input interface 560 that is coupled to the system bus, but may be connected by other interface and bus structures, such as a parallel port, game port or a universal serial bus (USB). A monitor 1291 or other type of display device is also connected to the system bus 1221 via an interface, such as a video interface 1290. In addition to the monitor, computers may also include other peripheral output devices such as speakers 1297 and printer 1296, which may be connected through a output peripheral interface 1295. The computer 1210 may operate in a networked environment using logical connections to one or more remote computers, such as a remote computer 1280. The remote computer 1280 may be a personal computer, a server, a router, a network PC, a peer device or other common network node, and typically includes many or all of the elements described above relative to the computer 1210, although only a memory storage device 1281 has been illustrated in FIG. 12. The logical connections depicted in FIG. 12 include a local area network (LAN) 1271 and a wide area network (WAN) 1273, but may also include other networks, including
telecommunications networks.
Having thus described several aspects of at least one embodiment of this invention, it is to be appreciated that various alterations, modifications, and improvements will readily occur to those skilled in the art.
Such alterations, modifications, and improvements are intended to be part of this disclosure, and are intended to be within the spirit and scope of the invention. Further, though advantages of the present invention are indicated, it should be appreciated that not every embodiment of the invention will include every described advantage. Some embodiments may not implement any features described as advantageous herein and in some instances.
Accordingly, the foregoing description and drawings are by way of example only.
The above-described embodiments of the present invention can be implemented in any of numerous ways. For example, the embodiments may be implemented using hardware, software or a combination thereof. When implemented in software, the software code can be executed on any suitable processor or collection of processors, whether provided in a single computer or distributed among multiple computers. Such processors may be implemented as integrated circuits, with one or more processors in an integrated circuit component. Though, a processor may be implemented using circuitry in any suitable format. Further, it should be appreciated that a computer may be embodied in any of a number of forms, such as a rack-mounted computer, a desktop computer, a laptop computer, or a tablet computer. Additionally, a computer may be embedded in a device not generally regarded as a computer but with suitable processing capabilities, including a Personal Digital Assistant (PDA), a smart phone or any other suitable portable or fixed electronic device. Also, a computer may have one or more input and output devices. These devices can be used, among other things, to present a user interface. Examples of output devices that can be used to provide a user interface include printers or display screens for visual presentation of output and speakers or other sound generating devices for audible presentation of output.
Examples of input devices that can be used for a user interface include keyboards, and pointing devices, such as mice, touch pads, and digitizing tablets. As another example, a computer may receive input information through speech recognition or in other audible format.
Such computers may be interconnected by one or more networks in any suitable form, including as a local area network or a wide area network, such as an enterprise network or the Internet. Such networks may be based on any suitable technology and may operate according to any suitable protocol and may include wireless networks, wired networks or fiber optic networks.
Also, the various methods or processes outlined herein may be coded as software that is executable on one or more processors that employ any one of a variety of operating systems or platforms. Additionally, such software may be written using any of a number of suitable programming languages and/or programming or scripting tools, and also may be compiled as executable machine language code or intermediate code that is executed on a framework or virtual machine.
In this respect, the invention may be embodied as a computer readable storage medium (or multiple computer readable media) (e.g., a computer memory, one or more floppy discs, compact discs (CD), optical discs, digital video disks (DVD), magnetic tapes, flash memories, circuit configurations in Field Programmable Gate Arrays or other semiconductor devices, or other tangible computer storage medium) encoded with one or more programs that, when executed on one or more computers or other processors, perform methods that implement the various embodiments of the invention discussed above. As is apparent from the foregoing examples, a computer readable storage medium may retain information for a sufficient time to provide computer-executable instructions in a non-transitory form. Such a computer readable storage medium or media can be transportable, such that the program or programs stored thereon can be loaded onto one or more different computers or other processors to implement various aspects of the present invention as discussed above. As used herein, the term "computer- readable storage medium" encompasses only a computer-readable medium that can be considered to be a manufacture (i.e., article of manufacture) or a machine. Alternatively or additionally, the invention may be embodied as a computer readable medium other than a computer-readable storage medium, such as a propagating signal.
The terms "program" or "software" are used herein in a generic sense to refer to any type of computer code or set of computer-executable instructions that can be employed to program a computer or other processor to implement various aspects of the present invention as discussed above. Additionally, it should be appreciated that according to one aspect of this embodiment, one or more computer programs that when executed perform methods of the present invention need not reside on a single computer or processor, but may be distributed in a modular fashion amongst a number of different computers or processors to implement various aspects of the present invention.
Computer-executable instructions may be in many forms, such as program modules, executed by one or more computers or other devices. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. Typically the functionality of the program modules may be combined or distributed as desired in various embodiments.
Also, data structures may be stored in computer-readable media in any suitable form. For simplicity of illustration, data structures may be shown to have fields that are related through location in the data structure. Such relationships may likewise be achieved by assigning storage for the fields with locations in a computer-readable medium that conveys relationship between the fields. However, any suitable mechanism may be used to establish a relationship between information in fields of a data structure, including through the use of pointers, tags or other mechanisms that establish relationship between data elements.
Various aspects of the present invention may be used alone, in combination, or in a variety of arrangements not specifically discussed in the embodiments described in the foregoing and is therefore not limited in its application to the details and arrangement of components set forth in the foregoing description or illustrated in the drawings. For example, aspects described in one embodiment may be combined in any manner with aspects described in other embodiments.
Also, the invention may be embodied as a method, of which an example has been provided. The acts performed as part of the method may be ordered in any suitable way.
Accordingly, embodiments may be constructed in which acts are performed in an order different than illustrated, which may include performing some acts simultaneously, even though shown as sequential acts in illustrative embodiments.
Use of ordinal terms such as "first," "second," "third," etc., in the claims to modify a claim element does not by itself connote any priority, precedence, or order of one claim element over another or the temporal order in which acts of a method are performed, but are used merely as labels to distinguish one claim element having a certain name from another element having a same name (but for use of the ordinal term) to distinguish the claim elements.
Also, the phraseology and terminology used herein is for the purpose of description and should not be regarded as limiting. The use of "including," "comprising," or "having,"
"containing," "involving," and variations thereof herein, is meant to encompass the items listed thereafter and equivalents thereof as well as additional items.
What is claimed is:

Claims

1. A transmission unit for sending media data to a reception unit via a text messaging service implemented by at least one communications network, the transmission unit comprising: at least one processor programmed to; convert a first plurality of characters of data representing a compressed version of the media data to a second plurality of characters of data amenable to transmission via the text messaging service, wherein the converting comprises ensuring that none of the second plurality of characters is a character representing a command used by the at least one communications network to manage the text messaging service; and transmit the second plurality of characters of data to the reception unit via the text messaging service.
2. The transmission unit of claim 1, wherein the at least one processor is programmed to ensure that none of the second plurality of characters is a character representing a command used by the at least one communications network to manage the text messaging service at least in part by: converting each of the first plurality of characters of data to a corresponding first integer value; performing an arithmetic operation on each first integer value to yield a plurality of second integer values; and converting each of the plurality of second integer values to a corresponding character of data encoded using an encoding scheme that is amenable to transmission via the text messaging service, the corresponding characters of data collectively constituting the second plurality of characters of data.
3. The transmission unit of claim 2, wherein performing an arithmetic operation on each first integer value comprises adding a third integer value to each first integer value, the third integer value being chosen so that when the second integer values are converted to
corresponding characters of data, none of the corresponding characters of data represent a command used by the at least one communications network to manage the text messaging service.
4. The transmission unit of claim 3, wherein the third integer value added to each first integer value is 32.
5. The transmission unit of claim 2, wherein converting each of the plurality of second integer values to a corresponding character of data comprises: determining whether any of the plurality of second integer values exceeds a threshold value; if it is determined that any of the plurality of second integer values exceeds the threshold value, converting each second integer value to a corresponding character encoded using a first encoding scheme; and if it is determined that none of the plurality of second integer values exceeds the threshold value, converting each second integer value to a corresponding character encoded using a second encoding scheme.
6. The transmission unit of claim 5, wherein the threshold value is 255, the first encoding scheme is Unicode, and the second encoding scheme is ASCII.
7. The transmission unit of claim 1, wherein transmitting the second plurality of characters of data to the reception unit comprises dividing the second plurality of characters of data into a plurality of subsets, and transmitting each of the subsets separately.
8. The transmission unit of claim 7, wherein dividing the second plurality of characters comprises creating the plurality of subsets so that none of the plurality of subsets comprises a quantity of characters of data that exceeds an upper limit of characters of data for a message sent via the text messaging service.
9. The transmission unit of claim 7, wherein transmitting the second plurality of characters of data to the reception unit comprises not exceeding an upper limit of messages that can be sent in a given time period.
10. The transmission unit of claim 1, wherein the text messaging service is Short Message Service (SMS).
11. The transmission unit of claim 1, wherein the programming of the at least one microprocessor is via an application programming interface.
12. A reception unit, comprising: a user interface; a memory; and at least one processor programmed to; determine whether a first text message received by the reception unit comprises media data; if it is determined that the first text message does not comprise media data, cause at least a portion of the first text message to be presented to a user of the reception unit via the user interface; and if it is determined that the first text message comprises media data, cause at least a portion of the media data to be stored in the memory and not presented to the user via the user interface.
13. The reception unit of claim 12, wherein the at least one processor is programmed to determine whether the first text message comprises media data based at least in part on the presence or absence of a marker included in the first text message.
14. The reception unit of claim 13, wherein the marker comprises an alphanumeric character.
15. The reception unit of claim 12, wherein the at least one processor is programmed to: determine whether any of a plurality of text messages received by the reception unit comprises media data, the plurality of text messages comprising the first text message; for the one or more particular text messages determined to comprise media data, cause at least a portion of the media data to be stored in the memory; and reconstruct media using the media data caused to be stored in the memory.
16. A monitoring system, comprising a transmission unit configured to capture media data indicative of at least one condition at a facility, and to transmit the captured media data via one or more text messages; and a reception unit configured to receive the one or more text messages comprising the media data transmitted by the transmission unit.
17. The monitoring system of claim 16, wherein the reception unit is configured to reconstruct media using the media data received from the transmission unit.
18. The monitoring system of claim 16, comprising a plurality of transmission units each configured to transmit media data to the reception unit via one or more text messages.
19. The monitoring system of claim 16, wherein the media data which the transmission unit is configured to capture comprises image data.
20. The monitoring system of claim 19, wherein the facility stores physical inventory, and the image data reflects a condition of the physical inventory.
21. The monitoring system of claim 20, further comprising an analysis facility for analyzing the media data received by the reception unit to identify a condition of the physical inventory.
22. The monitoring system of claim 21, wherein the analysis facility comprises components enabling manual and/or automated analysis techniques.
23. The monitoring system of claim 21, wherein the identified condition of the physical inventory comprises an inventory level of at least one item.
24. The monitoring system of claim 23, wherein the analysis facility is configured to enable scheduling of deliveries of supplies of the at least one item to the facility based at least in part on the identified inventory level of the at least one item.
25. The monitoring system of claim 16, wherein the transmission unit is configured to capture the media data at predefined intervals and to transmit the media data to the reception unit upon the media data being captured.
26. The monitoring system of claim 16, wherein the transmission unit is configured to receive a command from the reception unit to capture media data, and to capture the media data in response to the command being received.
27. The monitoring system of claim 16, wherein the facility comprises a refrigerated appliance.
PCT/US2014/039749 2014-04-14 2014-05-28 Methods and apparatus for monitoring a facility WO2015160369A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
PK31914 2014-04-14
PK319/2014 2014-04-14

Publications (1)

Publication Number Publication Date
WO2015160369A1 true WO2015160369A1 (en) 2015-10-22

Family

ID=54324409

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2014/039749 WO2015160369A1 (en) 2014-04-14 2014-05-28 Methods and apparatus for monitoring a facility

Country Status (1)

Country Link
WO (1) WO2015160369A1 (en)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040006741A1 (en) * 2002-04-24 2004-01-08 Radja Coumara D. System and method for efficient processing of XML documents represented as an event stream
US20040243835A1 (en) * 2003-05-28 2004-12-02 Andreas Terzis Multilayer access control security system
US20050119018A1 (en) * 2003-11-27 2005-06-02 Lg Electronics Inc. System and method for transmitting data via a mobile communication terminal
US20050188308A1 (en) * 2004-02-23 2005-08-25 International Business Machines Corporation Testing multi-byte data handling using multi-byte equivalents to single-byte characters in a test string
US20070230810A1 (en) * 2006-03-31 2007-10-04 Canon Kabushiki Kaisha Image-processing apparatus, image-processing method, and computer program used therewith
US20110176537A1 (en) * 2010-01-19 2011-07-21 Jeffrey Lawson Method and system for preserving telephony session state
US20120029691A1 (en) * 2010-06-02 2012-02-02 Darrell Scott Mockus Mobile device assisted retail system and process in a vending unit, retail display or automated retail store
US20120322420A1 (en) * 2009-03-06 2012-12-20 Bolton Lawrence G Remote messaging for mobile communication device and accessory
US20140058555A1 (en) * 2012-08-23 2014-02-27 Parata Systems, Llc Device for offloading capped vials useful in system and method for dispensing prescriptions

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040006741A1 (en) * 2002-04-24 2004-01-08 Radja Coumara D. System and method for efficient processing of XML documents represented as an event stream
US20040243835A1 (en) * 2003-05-28 2004-12-02 Andreas Terzis Multilayer access control security system
US20050119018A1 (en) * 2003-11-27 2005-06-02 Lg Electronics Inc. System and method for transmitting data via a mobile communication terminal
US20050188308A1 (en) * 2004-02-23 2005-08-25 International Business Machines Corporation Testing multi-byte data handling using multi-byte equivalents to single-byte characters in a test string
US20070230810A1 (en) * 2006-03-31 2007-10-04 Canon Kabushiki Kaisha Image-processing apparatus, image-processing method, and computer program used therewith
US20120322420A1 (en) * 2009-03-06 2012-12-20 Bolton Lawrence G Remote messaging for mobile communication device and accessory
US20110176537A1 (en) * 2010-01-19 2011-07-21 Jeffrey Lawson Method and system for preserving telephony session state
US20120029691A1 (en) * 2010-06-02 2012-02-02 Darrell Scott Mockus Mobile device assisted retail system and process in a vending unit, retail display or automated retail store
US20140058555A1 (en) * 2012-08-23 2014-02-27 Parata Systems, Llc Device for offloading capped vials useful in system and method for dispensing prescriptions

Similar Documents

Publication Publication Date Title
US10721190B2 (en) Sequence to sequence to classification model for generating recommended messages
US11677702B2 (en) Automatically selecting an ephemeral message availability
US11671389B2 (en) Contextual mobile communication platform
CN111352912B (en) Compressed file processing method, device, storage medium, terminal and server
US11792149B2 (en) Systems and methods for automated message delivery feedback
US11429656B2 (en) Scaled delivery of media content
US20200106692A1 (en) Application program interface endpoint monitoring
US10991398B2 (en) Automated video bumper system
CN103067478A (en) Method, device and system for transmitting contact person information
US11431819B2 (en) Call termination for webhook call
US11901941B2 (en) Low power light wave communication for mobile and wearable devices
US8150429B1 (en) Cost-effective voting
CN109218393B (en) Push implementation method, device, equipment and computer storage medium
KR20200024317A (en) Improved messaging system
US20150142804A1 (en) Methods, apparatuses and computer program products for utilizing subtyping to support evolution of data types
CN108062401B (en) Application recommendation method and device and storage medium
WO2015160369A1 (en) Methods and apparatus for monitoring a facility
CN109241381B (en) Information matching method and device
CN112823349A (en) Data processing method, data processing device, electronic equipment and storage medium
CN106169988B (en) The method of data is transmitted in cruising inspection system
WO2017049317A1 (en) Secure data link for subscriber identification module (sim)-based processor
CN112083945A (en) NPM installation package update prompting method and device, electronic equipment and storage medium
CN110795500A (en) Method, device and system for putting face data into storage and storage medium
CN112256677A (en) Information storage method and device, electronic equipment and computer readable storage medium
CN104093154A (en) Short message intercepting method and device

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 14889684

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 14889684

Country of ref document: EP

Kind code of ref document: A1