Sign In to Follow Application
View All Documents & Correspondence

System And Method For Executing Sensor Based Application On Plurality Of Devices

Abstract: The present disclosure discloses system and method for executing sensor based application on plurality of devices comprises first and second device. The sensor based application is developed as an algorithm by developers. Further, the system provides algorithm prototyping and algorithm partitioning. According to embodiments, plurality of sensor and their corresponding configuration settings may be displayed on first device of user. The first device comprises an algorithm associated with the sensor based application. Further, the system enables the user to select a configuration setting corresponding to a sensor, and to partition the algorithm into a first part and a second part based on complexity of the algorithm and functional capability of the first device. Based on the partition, the system executes the first part of the algorithm on the first device and the second part of the algorithm on a second device deployed in a cloud computing environment.

Get Free WhatsApp Updates!
Notices, Deadlines & Correspondence

Patent Information

Application #
Filing Date
20 March 2015
Publication Number
40/2016
Publication Type
INA
Invention Field
COMPUTER SCIENCE
Status
Email
ip@legasis.in
Parent Application
Patent Number
Legal Status
Grant Date
2024-02-23
Renewal Date

Applicants

Tata Consultancy Services Limited
Nirmal Building, 9th Floor, Nariman Point, Mumbai 400021, Maharashtra, India

Inventors

1. GHOSE, Avik
Tata Consultancy Services Limited, Building 1B, Ecospace Plot - IIF/12, New Town, Rajarhat, Kolkata - 700156,West Bengal, India
2. DUTTA CHOUDHURY, Anirban
Tata Consultancy Services Limited, Building 1B, Ecospace Plot - IIF/12, New Town, Rajarhat, Kolkata - 700156, West Bengal, India
3. AHMED, Nasimuddin
Tata Consultancy Services Limited, Building 1B, Ecospace Plot - IIF/12, New Town, Rajarhat, Kolkata - 700156, West Bengal, India
4. ALAM, Shahnawaz
Tata Consultancy Services Limited, Building 1B, Ecospace Plot - IIF/12, New Town, Rajarhat, Kolkata - 700156, West Bengal, India
5. MAITI, Santa
Tata Consultancy Services Limited, Building 1B, Ecospace Plot - IIF/12, New Town, Rajarhat, Kolkata - 700156, West Bengal, India
6. PAL, Arpan
Tata Consultancy Services Limited, Building 1B, Ecospace Plot - IIF/12, New Town, Rajarhat, Kolkata - 700156, West Bengal, India

Specification

CLIAMS:WE CLAIM:

1. A method for executing sensor based application on plurality of devices, the method comprising:
displaying, by a processor, a plurality of sensors along with a plurality of configuration settings associated therewith on a first device of a user, wherein the first device comprises an algorithm associated with a sensor based application;
enabling, by the processor, the user to
select at least one configuration setting corresponding to at least one sensor of the plurality of sensors, wherein the configuration setting selected by the user is stored into a configuration store configured for managing sensor-specific configuration settings, and wherein the at least one sensor is configured based on the at least one configuration setting selected by the user, and
partition the algorithm into a first part and a second part based on complexity of the algorithm and functional capability of the first device; and
executing, by the processor, the algorithm in such a manner that the first part of the algorithm is executed on the first device and the second part of the algorithm is executed on a second device deployed in a cloud computing environment.

2. The method of claim 1, wherein the sensor based application comprises road condition monitoring application, inertial positioning, activity tracking application, and heart rate estimation application.

3. The method of claim 1, wherein the configuration setting comprises sampling rate, duration, and logging criteria associated with the sensor.

4. The method of claim 1, wherein configuration store is ported on the first device and the second device deployed on the cloud.

5. The method of claim 1, wherein functional capability, of the first device (104-1, 104-2), comprises battery support and computational capability.

6. The method of claim 1, wherein the first device (104-1, 104-2) and the second device (104-3, 104-4) comprises at least one of a mobile device, personal computer, and a server.

7. A system 102 for executing sensor based application on plurality of devices, wherein the system 102 comprises:
a processor 202;
a memory 206 coupled with the processor 202, wherein the processor 202 executes a plurality of modules 208 stored in the memory 206, and where the plurality of modules 208 comprises:
displaying module 210 to display a plurality of sensors along with a plurality of configuration settings associated therewith on a first device of a user, wherein the first device comprises an algorithm associated with a sensor based application;
user-interface module 212 to enable the user to
select at least one configuration setting corresponding to at least one sensor of the plurality of sensors, wherein the configuration setting selected by the user is stored into a configuration store configured for managing sensor-specific configuration settings, and wherein the at least one sensor is configured based on the at least one configuration setting selected by the user, and
partition the algorithm into a first part and a second part based on complexity of the algorithm and functional capability of the first device; and
executing module 214 to execute the algorithm in such a manner that the first part of the algorithm is executed on the first device and the second part of the algorithm is executed on a second device deployed in a cloud computing environment.

8. The system 102 of claim 7, wherein the sensor based application comprises road condition monitoring application, inertial positioning, activity tracking application, and heart rate estimation application.

9. The system 102 of claim 7, wherein the first device (104-1, 104-2) and the second device (104-3, 104-4) comprises at least one of a mobile device, personal computer, and a server.

10. A non-transitory computer readable medium embodying a program executable in a computing device for executing sensor based application on plurality of devices, the program comprising:
a program code for displaying a plurality of sensors along with a plurality of configuration settings associated therewith on a first device of a user, wherein the first device comprises an algorithm associated with a sensor based application;
a program code for enabling the user to
select at least one configuration setting corresponding to at least one sensor of the plurality of sensors, wherein the configuration setting selected by the user is stored into a configuration store configured for managing sensor-specific configuration settings, and wherein the at least one sensor is configured based on the at least one configuration setting selected by the user, and
partition the algorithm into a first part and a second part based on complexity of the algorithm and functional capability of the first device; and
a program code for executing the algorithm in such a manner that the first part of the algorithm is executed on the first device and the second part of the algorithm is executed on a second device deployed in a cloud computing environment. ,TagSPECI:FORM 2
THE PATENTS ACT, 1970
(39 of 1970)
&
THE PATENT RULES, 2003

COMPLETE SPECIFICATION
(See Section 10 and Rule 13)

Title of invention:
SYSTEM AND METHOD FOR EXECUTING SENSOR BASED APPLICATION ON PLURALITY OF DEVICES

APPLICANT:
Tata Consultancy Services Limited
A company Incorporated in India under The Companies Act, 1956
Having address:
Nirmal Building, 9th Floor,
Nariman Point, Mumbai 400021,
Maharashtra, India


The following specification particularly describes the invention and the manner in which it is to be performed.
CROSS-REFERENCE TO RELATED APPLICATIONS AND PRIORITY
[001] The present application does not claim priority from any patent application.
TECHNICAL FIELD
[002] The present disclosure described herein, in general, relates to system and method for executing sensor based application on plurality of devices.
BACKGROUND
[003] Sensor based applications are mostly available with mobile devices. They come up with a special capability of sensing environmental conditions like motion, light etc. These sensor based applications are developed as an algorithm comprising set of computational steps. These steps are generally performed on the mobiles devices for performing the activities of the sensor based applications. But, in some cases, these sensor based applications becomes too complex (computationally intensive), that performing all the steps of the algorithm becomes critical for the mobile device. Also, the functional capability of the mobile devices hinders the execution of these sensor based applications.
[004] Further, differences in the mobile computing environment, variation in sensor availability and accuracy, variations in sensor control functions and their effects is a another concern. Further, there are issues related to algorithm prototyping and partitioning across different mobile devices of different configuration and cloud and deployment of the algorithm on these different mobile devices with minimum amount of work. Also, the heterogeneous nature of the sensors and their control functions are another concern.
[005] In the known art, the mobile sensing framework provides reusable set of functionality, enabling the collection, uploading, and configuration of a wide range of data types. Further, these known framework uses the probe data abstraction and application programming interface (API) to collect raw sensing data. However, the major challenge of algorithm prototyping, development, and development is these available frameworks still exist.
SUMMARY
[006] This summary is provided to introduce aspects related to systems and methods for executing sensor based application on plurality of devices and the concepts are further described below in the detailed description. This summary is not intended to identify essential features of disclosure nor is it intended for use in determining or limiting the scope of the disclosure.
[007] In one implementation, a system for executing sensor based application on plurality of devices is disclosed. The system comprises a processor and a memory coupled to the processor. The processor executes a plurality of modules stored in the memory. The plurality of modules comprises a displaying module, a user-interface module, and an executing module. The displaying module may display a plurality of sensors along with a plurality of configuration settings associated therewith on a first device of a user. The first device may comprise an algorithm associated with a sensor based application. Further, the user-interface module may enable the user to select at least one configuration setting corresponding to at least one sensor of the plurality of sensors. The configuration setting selected by the user may be stored into a configuration store configured for managing sensor-specific configuration settings. Further, the at least one sensor may be configured based on the at least one configuration setting selected by the user. The user-interface module may further enable the user to partition the algorithm into a first part and a second part based on complexity of the algorithm and functional capability of the first device. Further, executing module may execute the algorithm in such a manner that the first part of the algorithm is executed on the first device and the second part of the algorithm is executed on a second device deployed in a cloud computing environment.
[008] In another implementation, a method for executing sensor based application on plurality of devices is disclosed. The method may comprise displaying, by a processor, a plurality of sensors along with a plurality of configuration settings associated therewith on a first device of a user. The first device may comprise an algorithm associated with a sensor based application. Further, the method may comprise a step of enabling, by the processor, the user to select at least one configuration setting corresponding to at least one sensor of the plurality of sensors. The configuration setting selected by the user may be stored into a configuration store configured for managing sensor-specific configuration settings. The at least one sensor may be configured based on the at least one configuration setting selected by the user. The method may further comprise enabling the user to partition the algorithm into a first part and a second part based on complexity of the algorithm and functional capability of the first device. Further, the method may comprise a step of executing, by the processor, the algorithm in such a manner that the first part of the algorithm is executed on the first device and the second part of the algorithm is executed on a second device deployed in a cloud computing environment.
[009] Yet in another implementation a non-transitory computer readable medium embodying a program executable in a computing device for executing sensor based application on plurality of devices is disclosed. The program may comprise a program code for displaying a plurality of sensors along with a plurality of configuration settings associated therewith on a first device of a user. The first device may comprise an algorithm associated with a sensor based application. The program may further comprise a program code for enabling the user to select at least one configuration setting corresponding to at least one sensor of the plurality of sensors. The configuration setting selected by the user may be stored into a configuration store configured for managing sensor-specific configuration settings. Further, the at least one sensor may be configured based on the at least one configuration setting selected by the user. Further, the program may comprise a program code to enable the user to partition the algorithm into a first part and a second part based on complexity of the algorithm and functional capability of the first device. The program may further comprise a program code for executing the algorithm in such a manner that the first part of the algorithm is executed on the first device and the second part of the algorithm is executed on a second device deployed in a cloud computing environment.
BRIEF DESCRIPTION OF THE DRAWINGS
[0010] The detailed description is described with reference to the accompanying figures. In the figures, the left-most digit(s) of a reference number identifies the figure in which the reference number first appears. The same numbers are used throughout the drawings to refer like features and components.
[0011] Figure 1 illustrates a network implementation of a system and plurality of devices for executing sensor based application, in accordance with an embodiment of the present disclosure.
[0012] Figure 2 illustrates the system, in accordance with an embodiment of the present disclosure.
[0013] Figure 3A-3E illustrates a detailed working of the system, in accordance with an embodiment of the present disclosure.
[0014] Figure 4 illustrates a method for executing sensor based application on plurality of devices, in accordance with an embodiment of the present disclosure.
DETAILED DESCRIPTION
[0015] Systems and methods for executing sensor based application on plurality of devices are described. The plurality of devices may comprise a first device and a second device. Further, the sensor based applications are developed as an algorithm by software developers. These sensor based applications are generally executed on a mobile device/phone (first device) of a user. But, sometimes, due to computational complexity of the algorithm or functional incapability of the mobile device (first device) of the user, execution of such sensor based application becomes a concern. To overcome such concern, the present disclosure discloses the concept of algorithm prototyping and algorithm partitioning for executing the sensor based applications over the plurality of devices.
[0016] In algorithm prototyping, the system abstracts the heterogeneous nature of sensors deployed on the mobile device of the user. Further, at the run-time, the underlying platform i.e., application programming interface (API), of the system, may provide list of available sensors and their configuration settings to the user. From the list, the user may select a configuration setting corresponding to a sensor. Based on the configuration setting selected by the user, the system automatically configures the sensor accordingly during the run-time.
[0017] In algorithm partitioning, the system ensures that the same set of code of the algorithm prototyped on a personal computer runs on the plurality of devices without any modification in the code. According to embodiments of present disclosure, the system enables the user to partition the algorithm dynamically. In other words, the user can dynamically divide the algorithm in plurality of parts, for example first and second part, to be executed on the mobile device (first device) and the second device. According to embodiments, the second device may be a server or any other computing device deployed in a cloud computing environment. Due to dynamic partitioning of the algorithm, no changes in the code of the algorithm are required. Thus, the system executes the algorithm in such a manner that the first part of the algorithm is executed on the first device and the second part of the algorithm is executed on the second device deployed in the cloud computing environment.
[0018] While aspects of described system and method for executing the sensor based application on the plurality of devices may be implemented in any number of different computing devices, environments, and/or configurations, the embodiments are described in the context of the following exemplary devices.
[0019] Referring to Figure 1, a network implementation 100 of a system 102 and a plurality of devices 104 is for executing the sensor based application is illustrated, in accordance with an embodiment of the present disclosure. In one embodiment, the system 102 may facilitate the execution of the algorithm prototyping and algorithm partitioning. Although the present disclosure is explained considering that the system 102 is implemented as a software application on a server, it may be understood that the system 102 may also be implemented as a variety of computing systems, such as a laptop computer, a desktop computer, a notebook, a workstation, a mainframe computer, a server, a network server, a tablet, a mobile phone, and the like. In one implementation, the server 104 may be implemented in a cloud-based environment. According to an embodiment, the system 102 may be connected with the plurality of devices 104 through a network 106. Further, the plurality of devices may comprise a first device (104-1 and 104-2) and a second device (104-3 and 104-4).
[0020] In one implementation, the network 106 may be a wireless network, a wired network or a combination thereof. The network 106 can be implemented as one of the different types of networks, such as intranet, local area network (LAN), wide area network (WAN), the internet, and the like. The network 106 may either be a dedicated network or a shared network. The shared network represents an association of the different types of networks that use a variety of protocols, for example, Hypertext Transfer Protocol (HTTP), Transmission Control Protocol/Internet Protocol (TCP/IP), Wireless Application Protocol (WAP), and the like, to communicate with one another. Further the network 106 may include a variety of network devices, including routers, bridges, servers, computing devices, storage devices, and the like.
[0021] Referring now to Figure 2, the system 102 is illustrated in accordance with an embodiment of the present disclosure. In one embodiment, the device 102 may include at least one processor 202, an input/output (I/O) interface 204, and a memory 206. The at least one processor 202 may be implemented as one or more microprocessors, microcomputers, microcontrollers, digital signal processors, central processing units, state machines, logic circuitries, and/or any devices that manipulate signals based on operational instructions. Among other capabilities, the at least one processor 202 is configured to fetch and execute computer-readable instructions or modules stored in the memory 206.
[0022] The I/O interface 204 may include a variety of software and hardware interfaces, for example, a web interface, a graphical user interface, and the like. The I/O interface 204 may allow the system 102 to interact with a user directly or through the client devices 104. Further, the I/O interface 204 may enable the system 102 to communicate with other computing devices, such as web servers and external data servers (not shown). The I/O interface 204 can facilitate multiple communications within a wide variety of networks and protocol types, including wired networks, for example, LAN, cable, etc., and wireless networks, such as WLAN, cellular, or satellite. The I/O interface 204 may include one or more ports for connecting a number of devices to one another or to another server.
[0023] The memory 206 may include any computer-readable medium or computer program product known in the art including, for example, volatile memory, such as static random access memory (SRAM) and dynamic random access memory (DRAM), and/or non-volatile memory, such as read only memory (ROM), erasable programmable ROM, flash memories, hard disks, optical disks, a compact disks (CDs), digital versatile disc or digital video disc (DVDs) and magnetic tapes. The memory 206 may include modules 208 and data 218.
[0024] The modules 208 include routines, programs, objects, components, data structures, etc., which perform particular tasks or implement particular abstract data types. In one implementation, the modules 208 may include a displaying module 210, a user-interface module 212, executing module 214, and other modules 216. The other modules 216 may include programs or coded instructions that supplement applications and functions of the device 102.
[0025] The data 218, amongst other things, serves as a repository for storing data processed, received, and generated by one or more of the modules 208. The data 218 may also include a configuration setting database 220, and other data 222.
[0026] Referring now to Figure 3A-3E illustrates detailed working of the system 102, in accordance with an embodiment of the present disclosure. The system 102 facilitates the execution of the sensor based application on the plurality of devices (104) comprising first device (104-1 and 104-2) and second device (104-3 and 104-4). The sensor based application may comprise, but not limited to, road condition monitoring application, inertial positioning, activity tracking application, and heart rate estimation application. Further, these sensor based applications are developed as an algorithm by software developers. These sensor based applications are mostly executed on mobile devices (i.e., the first device) of user. But, due to computational complexity of the algorithm or functional incapability (e.g., battery drainage) of the first device (104-1), there is need to execute these algorithms partially or in-part on the plurality of devices 104.
[0027] At first, a displaying module 210 of the system 102 may display a plurality of sensors along with a plurality of configuration settings associated therewith on the first device 104-1 of the user. Further, the first device 104-1 may comprise an algorithm associated with a sensor based application to be executed. The plurality of sensors along with the plurality of configuration settings may be displayed on the graphical user interface (GUI) 302 of the system 102.
[0028] Further, a user-interface module 212 of the system 102 may enable the user to select at least one configuration setting corresponding to at least one sensor of the plurality of sensors. Further, the configuration setting selected by the user may be stored into a configuration store configured for managing sensor-specific configuration settings. Further, based on the at least one configuration setting selected by the user, the system 102 automatically configures the at least one sensor accordingly. Further, the configuration store may be ported on the first device (104-1 and 104-2) and the second device (104-3 and 104-4) deployed on the cloud. According to embodiments, the user-interface module 212 may comprise sensor manager 304 to manage the information about the plurality of sensors on the first device 104-1 and sensor-specific settings chosen by the user. It enables the system 102 to read same configuration settings during the run-time and configures the sensor accordingly. Further, the configuration settings may be stored in the configuration settings database 220 of the system 102.
[0029] According to embodiments of present disclosure, there may be phone (first device) specific files for the sensor based application. All these specific files and the sensors and their configurations are displayed for user selection. When the user select the configuration file, the sensor manager 304 dispatches the command to appropriate sensor object which register the listener event for the sensor and start sensing raw data associated with the configuration settings. Further, the configuration settings may comprise sampling rate, duration, and logging criteria associated with the sensor. Further, the sensor manager 304 may also enable the user to update the configuration settings of the sensors. The sensor manager 304 may further encapsulate the data sensing process from data logging or uploading to the server. This may enable the developer to focus on the algorithm logic instead of data sensing process. The user-interface module 212 also enables the user to select different sensors at same instance, and all the sensing events may run concurrently and the data is uploaded independently.
[0030] The system 102 may further comprise a sensor sink configured for dumping either the raw or the processed sensor data to either a file or the network. The file and network have the same interface for capturing data. However, a file once logged can also be uploaded to the network for further analysis. Further, the system 102 may comprise sensor task i.e., a template task where users can add their own functionality. The default task gathers sensor data from a queue and logs it to a file (configuration store). The user is free to modify and add processing and reporting functionality to the same. The system 102 may further comprise sensor signal proc component 308 i.e., a processing engine, containing the set of algorithms exposed via a set of packages and classes. The user can choose from the same and build the processing chain using stream-filter design template algorithm.
[0031] Further, the user-interface module 212 may also enable the user to partition the algorithm (in which the sensor based application is developed) into a first part and a second part based on complexity of the algorithm and functional capability of the first device 104-1. For example, the algorithm may comprise of complex computational steps which may take considerable amount of time of the first device 104-1 of the user. Or, in some cases, the first device 104-1 may be functionally incapable for executing such complex algorithms. Such complex algorithms may also lead to battery drainage of the first device 104-1. Thus, the user may partition the algorithm into the first and the second part based on his/her skills and domain knowledge.
[0032] After the partition, the executing module 214 of the system 102 may execute the algorithm in such a manner that the first part of the algorithm is executed on the first device 104- 1 and the second part of the algorithm is executed on a second device 104-3 deployed in a cloud computing environment. According to embodiments of present disclosure, the first device 104-1 and the second device 104-3 may acts as a client-server model. In this model, the first device 104-1 may send the second part of the algorithm (which is computationally intensive) along with output of the first part to the second device 104-3 for computation. After the computation of the second part of the algorithm, the second device 104-2 collaborate the output of the first part and the second part to form a final result corresponding to the algorithm. Thus, the final result is send back from the second device 104-3 to the first device 104-1 to performing the sensor based application.
[0033] In one example, considering the sensor based application as “road condition monitoring application”, the steps of the algorithm may be as follows.
1. Read accelerometer data;
2. Compute vertical components of acceleration i.e., jerk;
3. The “jerk” which is rate of change of acceleration in vertical direction, is a direct function of bad roads; and
[0034] However, it may also happen that due to bad driving of bad vehicle condition, the solution is to fuse data from multiple vehicles to get actual location of bad road. Thus, for fusing the data, following step of the algorithm may be performed.
4. Fuse data from multiple vehicles using k-means clustering. A larger cluster shows a higher probability of bad road.
[0034] In the above example, the steps 1-3 (less intensive) may be performed on the first device 104-1 and the step 4 (i.e., computationally intensive) may be performed on the second device 104-3. In this case, the partitioning of the algorithm is done because the step 4 requires analysis of data from multiple mobile devices.
[0035] Now referring to figure 3B, a sequence flow diagram is illustrated, in accordance with an embodiment of present disclosure. As shown in the figure 3B, sensor data may be registered in the GUI context because of its high priority, but it is transferred to a dedicated task for processing. The processing interface may use an algorithm repository used for performing various processing like cleaning, interpolation, filtering, feature extraction and classification on the data. Further, the data may be sent to a sensor sink which may be cloud or a local GUI or storage depending on the sensor based application.
[0036] Now referring to figure 3C, a class diagram is illustrated, in accordance with an embodiment of present disclosure. The SensorManager class may follow a singleton design pattern by which during the life-cycle framework (system 102), each sensor is enumerated only once from the hardware, leading to faster turnaround time. The SensorTask class may follow the decorator pattern whereby user can add and remove functionality like logging, uploading and running algorithms while starting the task. Also the algorithm instances are passed while starting the task. The SensorSignalProcess class is a template for all algorithms and is implemented using a combination of strategy and facade design patters. While strategy is classically used for abstracting algorithms, the present disclosure uses facade in order to generalize filters into convolution of certain order and polynomials into order and coefficients parameters that can be read from configuration files (configuration settings). So most filters and classifiers may be generated using a common code. Further, the SensorSink class may follow simple inheritance whereby two sink classes may be implemented as storage and network, and then more such classes can be added to the framework (system 102).
[0037] According to embodiments of present disclosure, the system 102 may utilize standard C++ libraries available for signal processing, machine learning, and curve fitting. However, the system 102 has also implemented few wrapper API for the following commonly used function category and also added a few missing modules as listed below.
1. Signal Conditioning - Resample (parameters – input vector, input time-stamp vector, output sampling frequency, output vector), Offset Removal (parameters - input vector, output vector), Windowing (parameters - input vector, output vector, window type – Blackman, Chebyshev, Hanning and Kaiser).
2. Filters - Low pass, High Pass, Band pass (parameters - input vector, input length, sampling frequency, cut-off frequency, output vector, output length, filter type (FIR / IIR), filter order).
3. Transforms - FFT, ( having parameters - input vector- real, input vector-imaginary, output vector magnitude, output vector phase), iFFT, Convolution (input vector, transfer vector, output vector), Correlation (input vectorOne, input vectorTwo).
4. Statistical Processing - Max-min, mean, median, mode, standard deviation, kurtosis histogram, Uniform and Normal Random Number Generator with unit variance.
5. Algebraic and Trigonometric Functions - matrix products, matrix transpose, Linear least Squares Solver, sin, cod, tan, acos, asin, atan, log, exp, power.
[0038] The sensor interface may be handled by enumerating the sensors from phone hardware (first device 104-1) of the user and allowing user to select a particular sensor. After the same, user is allowed to select the configuration settings like sampling rate, duration, logging criteria and the like for that particular sensor which is stored as a configuration file (configuration setting) for data logging. After the algorithm has been proven on the data-set, the same configuration file (configuration setting) is used to configure the sensor at application deployment time. For example, the settings for an audio sensor (microphone) for a typical smart-phone is shown in figure 3D.
[0039] Now referring to figure 3E, a template for algorithm design and deployment is illustrated, in accordance with an embodiment of present disclosure. It can be observed from the figure 3E that data from the sensor goes to the sampler which can be configured for up-sampling, down-sampling or equal sampling. Further, the signal extractor may run various transforms to the signal to get the time and frequency domain signals as applicable. Further, at the pre-processing block, step of filtering, noise cleaning, and conditioning of the signal may be performed before it is sent for quality check. According to embodiments, the quality checker module has configurable quality measures for validating the current signal against them, thereby providing windows of “good” signal. Further, the accepted signal module may act like an accumulator and exits when enough good signals are available. Further, the compute module may process the signals and comes up with a result of interest for the sensor based application. The post-processing method may be used to further improve the results using cumulative decision making logic like majority voting, interpolation, statistical processing etc., to arrive at a final good result. Further, it may be observed from the figure 3E that some of modules are optional and can be replaced by a NULL or pass through module. Hence, it complies with the stream-filter design pattern. According to embodiments of present disclosure, another sensor based application can also be added as a SINK using the Android Intent-Filter and Broadcast-Receiver to achieve the same. This is explained below with an example.
[0040] The message may be designed by following the below steps:
1. Every message should have an application id it is coming from, and it should be universal for every application.
2. From second key onwards, the data definition shall be dependent on the application id.
[0041] In one example, the message design for an activity tracking application is shown below.
ID = Aktrak_ID
startTime =
duration =
calorie =
Steps = walking steps, index 1 => brisk walking
steps and index 2 => running steps> [if any activity was not performed in a session,
step count shall be 0].
[0042] In another example, the message design for the heart rate estimation application is shown below.
ID = HeartSense_ID
HR =
BP_sys = [-1 => not evaluated]
BP_dias = [-1 => not evaluated.
[0043] Referring now to Figure 4, method for executing sensor based application on plurality of devices is shown, in accordance with an embodiment of the present disclosure. The method 400 may be described in the general context of computer executable instructions. Generally, computer executable instructions can include routines, programs, objects, components, data structures, procedures, modules, functions, etc., that perform particular functions or implement particular abstract data types. The method 400 may also be practiced in a distributed computing environment where functions are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, computer executable instructions may be located in both local and remote computer storage media, including memory storage devices
[0044] The order in which the method 400 is described is not intended to be construed as a limitation, and any number of the described method blocks can be combined in any order to implement the method 400 or alternate methods. Additionally, individual blocks may be deleted from the method 400 without departing from the spirit and scope of the disclosure described herein. Furthermore, the method can be implemented in any suitable hardware, software, firmware, or combination thereof. However, for ease of explanation, in the embodiments described below, the method 400 may be considered to be implemented in the above described system 102.
[0045] At block 402, a plurality of sensors along with a plurality of configuration settings associated therewith may be displayed on a first device of a user. Further, the first device may comprise an algorithm associated with a sensor based application.
[0046] At block 404, the user may be enabled to select at least one configuration setting corresponding to at least one sensor of the plurality of sensors. The configuration setting selected by the user may be stored into a configuration store configured for managing sensor-specific configuration settings. Further, the at least one sensor may be configured based on the at least one configuration setting selected by the user. The user may be further enabled to partition the algorithm into a first part and a second part based on complexity of the algorithm and functional capability of the first device.
[0047] At block 406, the algorithm may be executed in such a manner that the first part of the algorithm is executed on the first device and the second part of the algorithm is executed on a second device deployed in a cloud computing environment.
[0048] Although implementations for methods and systems for executing sensor based applications have been described in language specific to structural features and/or methods, it is to be understood that the appended claims are not necessarily limited to the specific features or methods described. Rather, the specific features and methods are disclosed as examples of implementations for the executing the sensor based applications of the plurality of devices.

Documents

Application Documents

# Name Date
1 942-MUM-2015-FORM 26-(27-04-2015).pdf 2015-04-27
1 942-MUM-2015-IntimationOfGrant23-02-2024.pdf 2024-02-23
2 942-MUM-2015-PatentCertificate23-02-2024.pdf 2024-02-23
2 942-MUM-2015-CORRESPONDENCE-(27-04-2015).pdf 2015-04-27
3 Form 3.pdf 2018-08-11
3 942-MUM-2015-PETITION UNDER RULE 137 [25-12-2023(online)].pdf 2023-12-25
4 Form 2.pdf 2018-08-11
4 942-MUM-2015-RELEVANT DOCUMENTS [25-12-2023(online)].pdf 2023-12-25
5 Figure of Abstract.jpg 2018-08-11
5 942-MUM-2015-Written submissions and relevant documents [20-12-2023(online)].pdf 2023-12-20
6 Drawings.pdf 2018-08-11
6 942-MUM-2015-Correspondence to notify the Controller [04-12-2023(online)].pdf 2023-12-04
7 942-MUM-2015-FORM-26 [04-12-2023(online)]-1.pdf 2023-12-04
7 942-MUM-2015-FORM 1(15-4-2015).pdf 2018-08-11
8 942-MUM-2015-FORM-26 [04-12-2023(online)].pdf 2023-12-04
8 942-MUM-2015-CORRESPONDENCE(15-4-2015).pdf 2018-08-11
9 942-MUM-2015-US(14)-HearingNotice-(HearingDate-13-12-2023).pdf 2023-11-20
9 942-MUM-2015-FER.pdf 2019-11-20
10 942-MUM-2015-CLAIMS [20-05-2020(online)].pdf 2020-05-20
10 942-MUM-2015-OTHERS [20-05-2020(online)].pdf 2020-05-20
11 942-MUM-2015-COMPLETE SPECIFICATION [20-05-2020(online)].pdf 2020-05-20
11 942-MUM-2015-FER_SER_REPLY [20-05-2020(online)].pdf 2020-05-20
12 942-MUM-2015-COMPLETE SPECIFICATION [20-05-2020(online)].pdf 2020-05-20
12 942-MUM-2015-FER_SER_REPLY [20-05-2020(online)].pdf 2020-05-20
13 942-MUM-2015-CLAIMS [20-05-2020(online)].pdf 2020-05-20
13 942-MUM-2015-OTHERS [20-05-2020(online)].pdf 2020-05-20
14 942-MUM-2015-FER.pdf 2019-11-20
14 942-MUM-2015-US(14)-HearingNotice-(HearingDate-13-12-2023).pdf 2023-11-20
15 942-MUM-2015-CORRESPONDENCE(15-4-2015).pdf 2018-08-11
15 942-MUM-2015-FORM-26 [04-12-2023(online)].pdf 2023-12-04
16 942-MUM-2015-FORM 1(15-4-2015).pdf 2018-08-11
16 942-MUM-2015-FORM-26 [04-12-2023(online)]-1.pdf 2023-12-04
17 942-MUM-2015-Correspondence to notify the Controller [04-12-2023(online)].pdf 2023-12-04
17 Drawings.pdf 2018-08-11
18 942-MUM-2015-Written submissions and relevant documents [20-12-2023(online)].pdf 2023-12-20
18 Figure of Abstract.jpg 2018-08-11
19 Form 2.pdf 2018-08-11
19 942-MUM-2015-RELEVANT DOCUMENTS [25-12-2023(online)].pdf 2023-12-25
20 Form 3.pdf 2018-08-11
20 942-MUM-2015-PETITION UNDER RULE 137 [25-12-2023(online)].pdf 2023-12-25
21 942-MUM-2015-PatentCertificate23-02-2024.pdf 2024-02-23
21 942-MUM-2015-CORRESPONDENCE-(27-04-2015).pdf 2015-04-27
22 942-MUM-2015-IntimationOfGrant23-02-2024.pdf 2024-02-23
22 942-MUM-2015-FORM 26-(27-04-2015).pdf 2015-04-27

Search Strategy

1 SearchStrategyMatrix_18-11-2019.pdf

ERegister / Renewals

3rd: 18 Mar 2024

From 20/03/2017 - To 20/03/2018

4th: 18 Mar 2024

From 20/03/2018 - To 20/03/2019

5th: 18 Mar 2024

From 20/03/2019 - To 20/03/2020

6th: 18 Mar 2024

From 20/03/2020 - To 20/03/2021

7th: 18 Mar 2024

From 20/03/2021 - To 20/03/2022

8th: 18 Mar 2024

From 20/03/2022 - To 20/03/2023

9th: 18 Mar 2024

From 20/03/2023 - To 20/03/2024

10th: 18 Mar 2024

From 20/03/2024 - To 20/03/2025

11th: 05 Mar 2025

From 20/03/2025 - To 20/03/2026