Abstract: A method for automating and configuring scheduling of events and the system, that is an automated event scheduling system is disclosed. The method and system prepares an event configuration file comprising details of one or more events for processing and creates a module for the event handler and the response handler for defining actions and defining approaches. The method and the system initialize each event of the one or more events by performing one or more steps of initialization and initiate a sequence for execution of the events based on a sequence defined in the event configuration file. The method and system execute a subsystem processing thread corresponding to the event, based on the sequence, upon detecting a trigger for executing the event and re-execute the events in the event configuration file, upon detecting an instruction for re-execution.
DESC:TECHNICAL FIELD
The present invention generally relates to scheduling of events, more particularly the present invention relates to automated scheduling of events in real time.
BACKGROUND
Traditionally, one or more events are added in code by writing the code separately for managing each of the events and connecting to predecessor and successor events. Change in ordering of events, omissions, change in trigger type, that is timer or user, change in time for event and response handler etc., require code changes or updates. The changes or updates in code are cumbersome, time consuming and error prone as the number of changes and system complexity increases. Additionally, the code becomes bulky, maintainability of corresponding software reduces and associated code review effort increases.
Indian patent application 6731/DELNP/2008 (hereinafter referred to as 6731') mentions execution of events from queue or event contents addressable memory (CAM) to trigger actions in software defined radio circuitry. 6731' supports preselected timer based event triggers. 6731' discloses triggering of actions in software defined radio circuitry, however 6731' does not cater for configuring the subsystem or module for handling the trigger. Further, 6731' does not support configuring of sequence and other event attributes by user. 6731' supports static selection and execution of a sequence and execution of predefined sequence without dynamic alterations.
Therefore there is a need for a system and a method that generically supports any application for processor based systems, caters for configuring the subsystem or module that can handle the trigger, caters for initiating an event and triggering a corresponding response handler on timeout, caters for dynamic reordering of events, supports selection and execution of a sequence based on the user selected operational mode dynamically, and enables configurability by user without restarting the system.
There is also a need for a system and a method for supporting event triggers and user input triggers, configuring subsystem or module for handling the event and the user input triggers and configuring sequence and event attributes. Further, there is a need for supporting initiation of event and triggering a corresponding response handler on timeout. Furthermore there is a need for supporting selection and execution of a sequence based on the user selected operational mode dynamically and enabling configurability by user without restarting the system.
US2016012162 mentions a system and a method for scheduling the execution of model components using model events applicable for graphical model, which does not support re-execution of the model without restarting, does not support reordering of events, does not support multiple trigger type for execution of event, and does not support event response handler functionality based on trigger. Therefore there is a need for a system that is a generic module for configuring and automating events without any dependency on graphical modelling environment, support re-execution of the model without restarting, supports reordering of events, supports multiple trigger type for execution of event, and support event response handler functionality based on trigger.
Embedded real time applications require executing many sequences involving multiple events. Scheduling the events separately to various subsystems will make the applications bulky and tightly coupled. Reordering of events, changing the subsystem involved, changing the event trigger type (timer or user input), change in response time or omission of events, will consume enormous development effort, especially when changes become more frequent. There is a need for a method and a system to automate a given sequence and also facilitate easy configuration without modifying the source code.
SUMMARY
An aspect of the present invention is to address at least the above-mentioned problems and/or disadvantages and to provide at least the advantages described below.
A method for automating and configuring scheduling of events and the system, that is an automated event scheduling system is disclosed. The method employs an automated event scheduling system comprising at least one processor configured to execute computer program instructions for performing the method. The method and the system allow altering the sequence of execution of events without changing the source code and without restarting the system. The method and the system allow omitting and reordering of events through a configuration file. The method and the system allow changing the trigger type, event trigger time, event response timeout and subsystem handling the events. The method and the system allow changing the sequence of execution of events dynamically or in real time. The method and the system allow execution of the events based on a selection of mode from the one or more modes.
The method and system disclosed herein prepares an event configuration file comprising details of one or more events for processing and creates a module for the event handler and the response handler for defining actions and defining approaches for performing the defined actions to the event handler and the response handler corresponding to each of the events of the one or more events. The details in the event configuration file are information regarding event handlers and response handlers corresponding to each of the event of the one or more events. The event configuration file comprises current event ID, next event ID, mode of triggering next event, target subsystem, event trigger time and event response timeout. The method and the system initialize each event of the one or more events by performing one or more steps of initialization and initiate a sequence for execution of the events based on a sequence defined in the event configuration file. The method and system initialize by creating a message queue for a subsystem corresponding to each of the event of the one or more events, configuring resolution of a clock of each event of the one or more events, reading the event configuration file, initializing and enabling the clock for providing a timer tick to the event handler corresponding to the event, and spawning the subsystem processing threads for activating the threads. The method and the system execute a subsystem processing thread corresponding to the event, based on the sequence, upon detecting a trigger for executing the event and re-execute the events in the event configuration file, upon detecting an instruction for re-execution, wherein the instruction comprising a sequence of execution of the one or more events. The method and the system execute the subsystem processing thread by determining if one of the event handler and the response handler has to be triggered based on a countdown timer and by providing a trigger to the corresponding subsystem processing thread based on the determination of providing a trigger one of the event handler and the response handler and updating the countdown timer.
The method and system perform the re-execution of the events either after completion of the execution of the events in the event configuration file or halting the execution of the sequence of the events due to an event failure.
BRIEF DESCRIPTION OF THE DRAWINGS
The detailed description is described with reference to the accompanying figures.
FIG. 1 illustrates a layer architectural diagram.
FIG. 2 illustrates a method for automating and configuring scheduling of events
FIG. 3 illustrates exemplarily illustrates the steps of a method for automatically configuring and managing event scheduling.
FIG. 4 illustrates the steps required for initializing each event of the one or more events.
FIG. 5 illustrates initializing and enabling software mission clock.
FIG. 6 illustrates the steps performed for handling triggers in a subsystem processing thread.
FIG. 7 illustrates auto sequencing of events in a first operation mode.
FIG. 8 illustrates auto sequencing of events in a second operation mode.
FIG. 9: illustrates auto sequencing of events in a third operation mode.
FIG. 10 illustrates automated event scheduling system.
It should be appreciated by those skilled in the art that any block diagrams herein represent conceptual views of illustrative methods embodying the principles of the present disclosure. Similarly, it will be appreciated that any flow charts, flow diagrams, and the like represent various processes which may be substantially represented in computer readable medium and so executed by a computer or processor, whether or not such computer or processor is explicitly shown.
DETAILED DESCRIPTION
The various embodiments of the present invention describe about automated event scheduling system and methods thereof. However, the systems and methods are not limited to the specific embodiments described herein. Further, structures and devices shown in the figures are illustrative of exemplary embodiments of the present inven-tion and are meant to avoid obscuring of the present invention. In the following de-scription, for purpose of explanation, specific details are set forth in order to provide an understanding of the present invention. It will be apparent, however, to one skilled in the art that the present disclosure may be practiced without these details. One skilled in the art will recognize that embodiments of the present invention, some of which are described below, may be incorporated into a number of systems.
It should be noted that the description merely illustrates the principles of the present invention. It will thus be appreciated that those skilled in the art will be able to devise various arrangements that, although not explicitly described herein, embody the prin-ciples of the present invention. Furthermore, all examples recited herein are principally intended expressly to be only for explanatory purposes to help the reader in un-derstanding the principles of the invention and the concepts contributed by the inven-tor to furthering the art and are to be construed as being without limitation to such specifically recited examples and conditions. Moreover, all statements herein reciting principles, aspects, and embodiments of the invention, as well as specific examples thereof, are intended to encompass equivalents thereof.
The following description with reference to the accompanying drawings is provided to assist in a comprehensive understanding of exemplary embodiments of the inven-tion as defined by the claims and their equivalents. It includes various specific details to assist in that understanding but these are to be regarded as merely exemplary. Ac-cordingly, those of ordinary skill in the art will recognize that various changes and modifications of the embodiments described herein can be made without departing from the scope and spirit of the invention. In addition, descriptions of well-known functions and constructions are omitted for clarity and conciseness.
The terms and words used in the following description and claims are not limited to the bibliographical meanings, but, are merely used by the inventor to enable a clear and consistent understanding of the invention. Accordingly, it should be apparent to those skilled in the art that the following description of exemplary embodiments of the present invention are provided for illustration purpose only and not for the pur-pose of limiting the invention as defined by the appended claims and their equiva-lents. It is to be understood that the singular forms “a,” “an,” and “the” include plural referents unless the context clearly dictates otherwise. By the term “substantially” it is meant that the recited characteristic, parameter, or value need not be achieved exactly, but that deviations or variations, including for example, tolerances, measurement er-ror, measurement accuracy limitations and other factors known to those of skill in the art, may occur in amounts that do not preclude the effect the characteristic is intended to provide.
A method and a system to automatically configure and manage event scheduling is disclosed herein. The system and the method use an auxiliary clock trigger and event configuration file to automate a sequence of activities. The system facilitates configu-ration of events for type of event trigger, that is, user input event trigger and/or timer event trigger. The system further facilitates next event to be executed after successful completion of current event. The system further facilitates by providing an interactive subsystem. It also supports omission and reordering of events in the sequence, chang-ing event trigger time and response timeout and changing the handling subsystem without modifying the application code.
FIG. 1 illustrates an layer architectural diagram comprising a hardware layer, a layer comprising the routines, such as interrupt service routine (ISR), for system clock or the auxiliary clock, a layer of operating system, and an application layer, where the application layer comprises one or more subsystem processing threads. The threads or tasks used comprise subsystem processing threads. Based on the number of subsystems required in a sequence, a corresponding number of subsystem processing threads are created. On initiation of an operator selected sequence, the ISR updates an event time based on the timer tick received from a clock and checks if the time matches the event trigger time or event response time of the current event. Upon determining a match, the ISR provides a trigger to the associated one or more subsystem processing threads.
FIG. 2 illustrates a method for automating and configuring scheduling of events. The method employs an automated event scheduling system (AESS) comprising at least one processor configured for executing computer program instructions or the steps of the method. The AESS prepares 201 an event configuration file comprising details of one or more events for processing, wherein the details are information regarding event handlers and response handlers corresponding to each of the event of the one or more events. The event configuration file comprises current event ID, next event ID, mode of triggering next event, target subsystem, event trigger time and event response timeout. The AESS creates 202 modules for the event handlers and response handlers for defining actions and defining approaches for performing the defined actions to the event handler and the response handler corresponding to each of the events of the one or more events. The AESS initializes 203 each event of the one or more events by performing one or more steps of initialization. The one or more steps of initialization comprise creating a message queue for a subsystem processing threads corresponding to each of the event of the one or more events, configuring resolution of a clock of each event of the one or more events, wherein resolution of a software mission clock is set. The steps of initialization further comprise reading the event configuration file, initializing and enabling the software mission clock for providing a timer tick to the event handler corresponding to the event, and spawning subsystem processing threads for activating the threads. The steps of initialization are illustrated in the FIG. 4. The AESS initiates 204 sequence for execution of the events based on a sequence defined in the event configuration file.
The AESS executes 205 a subsystem processing thread corresponding to the event, based on the sequence, upon detecting a trigger for executing the event. The steps of executing the subsystem processing thread comprise determining if one of the event handler and the response handler has to be triggered based on a countdown timer and providing a trigger to the corresponding subsystem processing thread based on the determination of providing a trigger one of the event handler and the response handler and updating the countdown timer. The AESS re-executes 206 the events in the event configuration file, upon detecting an instruction for re-execution, wherein the instruction comprising a sequence of execution of the one or more events.
The AESS re-executes the events after one of completion of the execution of the events in the event configuration file and halting the execution of the sequence of the events due to an event failure. The AESS updates the event configuration file with the altered event attributes for the re-execution of the events. The modification in event attributes of the one or more events or the sequence of execution, alter the configuration file without modifying an underlying code corresponding to the events. The AESS omits the events from being executed based on the event attributes in the event configuration file. The event attributes comprise event identifier (ID), ID of next event in sequence, time for triggering event, event response timeout, the subsystem thread to which the event is associated, the event handler, the response handler and trigger type through a data file. The configuration of the event attributes is altered by updating the data file for modifying the sequence of execution of the events. The source code remains constant thereby reducing efforts related to implementation, verification and validation. The system and the method support configuration of the event attributes without changing a source code. The method and the system support the timer trigger and a user input as trigger for initiating event handler and response handler. The AESS allows re-initiation or re-execution of the events of sequence without restarting and with altering the source code. The usage of the data file for changing the configuration allows improved change management. As the configurability is through a data file, the method and system supports a user to easily make changes to event attributes required to modify the sequence. As the source code of the module does not change, efforts related to implementation, verification and validation gets significantly reduced.
FIG. 3 exemplarily illustrates the steps of a method for automatically configuring and managing event scheduling. The method comprises preparing the event configuration file with current event ID, next event ID, mode of triggering next event, target sub-system, event trigger time and event response timeout and creating modules for event handlers and event response handlers, creating message queue for subsystem process-ing threads; setting software mission clock resolution as disclosed in the detailed de-scription of FIG. 2. The method further comprises performing the initialization pro-cedure for automating and configuring event scheduling. The method further com-prises initiating a sequence and waiting for the event trigger, and, handling trigger in subsystem processing thread. The sequence of execution of events proceeds using one of timer trigger and user inputs based on the sequence configured in the configuration file. Upon completion of execution of events, repeat of execution of sequence is de-termined. If the repetition is required, requirement of alteration of event attributes is determined and the configuration file is updated if the alteration is required and the sequence is reset. The method supports re-initiation of the sequence, resetting the se-quence and initiating again after the completion or halting of sequence due to event failure, altering only the configuration file without modifying the code for any modi-fication that is required in event attributes or event sequence. If the repetition of se-quence is not required, the process is deemed completed.
FIG. 4 illustrates the steps required for initializing each event of the one or more events. The steps comprise creating message queue for subsystem processing threads, setting software mission clock resolution, reading event configuration file initializing and enabling software mission clock, and spawning subsystem processing threads. FIG. 5 illustrates initializing and enabling software mission clock required for initial-izing the event of the one or more events. A recurring timer tick is provided to the event handler as an interrupt service routine (ISR).
FIG. 6 illustrates the steps performed for handling triggers in the subsystem process-ing thread. The step of event handling comprises initiating an action or command to the specified system or subsystem and checking the response after the specified re-sponse timeout or on receiving user input as configured. The countdown time is up-dated and the system constantly checks the time for triggering the event of the re-sponse handler. Upon receiving a timer tick and determining to trigger an event hand-ler or a response handler at the instant of the timer tick, the system sends a trigger to a corresponding subsystem processing thread. The trigger is an event handler trigger or a response handler trigger based on the received timer tick. Upon triggering the event handler or the response handler, the countdown time is updated.
FIG. 7 illustrates operation of the AESS in a first operating mode. The sequence is executed for Event1, Event 2, Event 3, Event 4, Event 5 using timer trigger for event and response timeout without omission of one or more events and without one or more user inputs. FIG. 8 illustrates operation of AESS in a second operating mode. The sequence is executed for Event 1, Event 2, Event 5 using timer trigger for event and response timeout where Event3 and Event4 are skipped for the second operating mode. The second operating mode does not have user inputs for altering or directing the sequence of execution of the events. FIG. 9 illustrates operation of AESS in a third operating mode. The sequence is executed for Event 1, Event 3, Event 5 with a user input after event1 and timer trigger after Event 3. The third operating mode is a combination of user input and timer trigger as an interrupt for the sequence of execution of events. The types of triggers for the events are configurable and sequence of execution of events are configurable. The method and the system support configuration of variants of sequences that are executed automatically based on the operational mode selected by a user.
In an embodiment, the method and the system for automating and configuring se-quence of events is used for a processor based system in a variety of domains. The method and the system support omitting and/or reordering of events through the con-figuration file. Further, the method and the system support changing of the type of trigger, event trigger time, event response timeout and the subsystem that shall handle the event. The method and the system supports customization of the sequence of events as per the requirements of user selected mode of operation, dynamically. The method and the system support selection of a sequence from multiple set of available sequences based on the operational mode selected by a user. The method and the sys-tem allow re-execution of sequence without restarting the system. As the configura-bility is achieved through a data file, the method and the system support a user to change the event attributes for modifying the sequence. As the source code of the module does not change, efforts related to implementation, verification and validation are reduced.
The system and the method support effective event scheduling and change manage-ment through automation of event scheduling using configuration files. The AESS and the method support applications for processor based systems. The AESS and the method cater for configuring the subsystems or modules that handle the trigger, cater for initiating an event and triggering a corresponding response handler on timeout. The AESS and the method support selection and execution of a sequence based on the user selected operational mode dynamically, and enables configurability by user without restarting the system. The AESS configures and automates events without a dependency on a graphical modelling environment. Further, the AESS and the method support re-execution of the events without restarting, supports reordering of events, supports multiple trigger type for execution of the event, and supports event response handler functionality based on trigger. The method automates the given se-quence and also facilitates re-configuration of the sequence without a requirement to modify the source code.
FIG. 10 illustrates the automated event scheduling system (AESS) 1000. The AESS 1000 executes the method for automating and configuring scheduling of the events. The AESS 1000 comprises a non-transitory computer readable storage medium, such as the memory unit 1004, configured to store computer program instructions defined by modules of the automated event scheduling system. The AESS 1000 further com-prises at least one processor 1010 communicatively coupled to the non-transitory computer readable storage medium 1004, the processor 1010 is configured to execute the computer program instructions defined by the modules of the automated event scheduling system. The modules in the non-transitory computer readable storage me-dium 1004 are a creation module 1001, a configuration module 1002, and an execu-tion module 1003. The creation module 1001 is configured to prepare an event con-figuration file comprising details of one or more events for processing. The details are information regarding the event handler and the response handler corresponding to each of the event of the one or more events. The event configuration file comprises current event ID, next event ID, mode of triggering next event, target subsystem, event trigger time and event response timeout.
It will be readily apparent in different embodiments that the various methods, algo-rithms, and computer programs disclosed herein are implemented on non-transitory computer readable storage media appropriately programmed for computing devices. The non-transitory computer readable storage media participate in providing data, for example, instructions that are read by a computer, a processor or a similar device. In different embodiments, the “non-transitory computer readable storage media” also refer to a single medium or multiple media, for example, a centralized database, a dis-tributed database, and/or associated caches and servers that store one or more sets of instructions that are read by a computer, a processor or a similar device. The “non-transitory computer readable storage media” also refer to any medium capable of storing or encoding a set of instructions for execution by a computer, a processor or a similar device and that causes a computer, a processor or a similar device to perform any one or more of the methods disclosed herein. Common forms of the non-transitory computer readable storage media comprise, for example, a floppy disk, a flexible disk, a hard disk, magnetic tape, a laser disc, a Blu-ray Disc® of the Blu-ray Disc Association, any magnetic medium, a compact disc-read only memory (CD-ROM), a digital versatile disc (DVD), any optical medium, a flash memory card, punch cards, paper tape, any other physical medium with patterns of holes, a random access memory (RAM), a programmable read only memory (PROM), an erasable programmable read only memory (EPROM), an electrically erasable programmable read only memory (EEPROM), a flash memory, any other memory chip or cartridge, or any other medium from which a computer can read.
The creation module 1001 is further configured to create a module for the event han-dler and the response handler for defining actions and defining approaches for per-forming the defined actions to the event handler and the response handler corresponding to each of the events of the one or more events. The configuration module 1002 is configured to initialize each event of the one or more events by performing one or more steps of initialization and initiate a sequence for execution of the events based on a sequence defined in the event configuration file. The configuration module 1002 creates a message queue for a subsystem corresponding to each of the event of the one or more events, configures resolution of a clock of each event of the one or more events, reads the event configuration file, initializes and enables the clock for providing a timer tick to the event handler corresponding to the event, and spawns the subsystem processing threads for activating the threads.
The execution module 1003 is configured to execute the subsystem processing thread corresponding to the event, based on the sequence, upon detecting a trigger for exe-cuting the event. The execution module 1003 is further configured to re-execute the events in the event configuration file, upon detecting an instruction for re-execution, wherein the instruction comprising a sequence of execution of the one or more events. The re-execution of the events is performed either after the completion of the execution of the events in the event configuration file or after halting the execution of the sequence of the events due to an event failure. The event configuration file is up-dated with altered event attributes for the re-execution of the events. The events are omitted from being executed based on the event attributes in the event configuration file. The execution module 1003 determines if one of the event handler and the re-sponse handler has to be triggered based on a countdown timer and provides a trigger to the corresponding subsystem processing thread based on the determination of pro-viding a trigger one of the event handler and the response handler and updating the countdown timer.
The term “processor” refers to any one or more microprocessors, central processing unit (CPU) devices, finite state machines, computers, microcontrollers, digital signal processors, logic, a logic device, an electronic circuit, an application specific inte-grated circuit (ASIC), a field-programmable gate array (FPGA), a chip, etc., or any combination thereof, capable of executing computer programs or a series of com-mands, instructions, or state transitions. The processor may also be implemented as a processor set comprising, for example, a general purpose microprocessor and a math or graphics co-processor. The automated event scheduling system (AESS) disclosed herein is not limited to employing a processor 505. The AESS may also employ a controller or a microcontroller.
The AESS 1000 further comprises a data bus 1005 that permits communications be-tween the components, for example, 1004, 1010, 1006, 1007, 1008, etc., of the AESS 1000. The display unit 1009 displays information, display interfaces, user interface elements such as text fields, checkboxes, text boxes, windows, etc., for example, for allowing a user to view a graphical representation of execution of events, to access source code files. The display unit 1009 comprises, for example, a liquid crystal dis-play, a plasma display, an organic light emitting diode (OLED) based display, etc. The I/O controller 1007 controls input actions and output actions performed by the AESS 1000. The I/O devices 1008 can be classified as input devices, output devices, or in-put-output devices. The input devices are used for inputting data into the AESS 1000. The users use the input devices to provide inputs to the AESS 1000. For example, a user may enter a user processing routine or sequence for executing the events and processing the subsystem threads using the input devices. The input devices are, for example, a keyboard such as an alphanumeric keyboard, a microphone, a joystick, a pointing device such as a computer mouse, a touch pad, a light pen, a physical button, a touch sensitive display device, a track ball, a pointing stick, any device capable of sensing a tactile input, etc. The output devices output the results of operations per-formed by the AESS 1000. For example, the AESS 1000 provides details about exe-cution of events, source code, sequence of execution of events, the event handlers and the response handler corresponding to the event. In an embodiment, the output device is the display unit 1009. The removable media drive 1006 receives the removable media. The removable media, in an embodiment, is used for loading the source code to the memory unit 1004.
In an embodiment, the modules in the memory unit 1004 are loaded from a database. The AESS 1000, in an embodiment, is connected to an external database or an exter-nal memory through a network. Where databases are described such as local database central database, it will be understood by one of ordinary skill in the art that (i) alter-native database structures to those described may be employed, and (ii) other memory structures besides databases may be employed. Any illustrations or descriptions of any sample databases disclosed herein are illustrative arrangements for stored repre-sentations of information. In an embodiment, any number of other arrangements are employed besides those suggested by tables illustrated in the drawings or elsewhere. Similarly, any illustrated entries of the databases represent exemplary information only; one of ordinary skill in the art will understand that the number and content of the entries can be different from those disclosed herein. In another embodiment, de-spite any depiction of the databases as tables, other formats including relational data-bases, object-based models, and/or distributed databases are used to store and ma-nipulate the data types disclosed herein. Object methods or behaviours of a database can be used to implement various processes such as those disclosed herein. In another embodiment, the databases are, in a known manner, stored locally or remotely from a device that accesses data in such a database. In embodiments where there are multiple databases in the mail tracking system, the databases are integrated to communicate with each other for enabling simultaneous updates of data linked across the databases, when there are any updates to the data in one of the databases.
FIGS. 1-10 are merely representational and are not drawn to scale. Certain portions thereof may be exaggerated, while others may be minimized. FIGS. 1-10 illustrate various embodiments of the invention that can be understood and appropriately car-ried out by those of ordinary skill in the art.
The foregoing and other features of embodiments will become more apparent from the following detailed description of embodiments when read in conjunction with the accompanying drawing. In a drawing, like reference numerals refer to like elements. In the foregoing detailed description of embodiments of the invention, various fea-tures are grouped together in a single embodiment for the purpose of streamlining the disclosure. This method of disclosure is not to be interpreted as reflecting an intention that the claimed embodiments of the invention require more features than are ex-pressly recited in each claim. Rather, as the following claims reflect, inventive subject matter lies in less than all features of a single disclosed embodiment. Thus, the fol-lowing claims are hereby incorporated into the detailed description of embodiments of the invention, with each claim standing on its own as a separate embodiment.
,CLAIMS:
1. A method for automating and configuring scheduling of events, the method employing an automated event scheduling system comprising at least one processor configured to execute computer program instructions for performing the method comprising:
preparing (201) an event configuration file comprising details of one or more events for processing, wherein the details are information regarding event handlers and response handlers corresponding to each of the event of the one or more events;
creating (202) a module for the event handler and the response handler for defining actions and defining approaches for performing the defined actions to the event handler and the response handler corresponding to each of the events of the one or more events;
initializing (203) each event of the one or more events by performing one or more steps of initialization;
initiating (204) a sequence for execution of the events based on a sequence defined in the event configuration file;
executing (205) a subsystem processing thread corresponding to the event, based on the sequence, upon detecting a trigger for executing the event; and
re-executing (206) the events in the event configuration file, upon detecting an instruction for re-execution, wherein the instruction comprising a sequence of execution of the one or more events.
2. The method as claimed in claim 1, wherein the event configuration file com-prises current event ID, next event ID, mode of triggering next event, target subsystem, event trigger time and event response timeout.
3. The method as claimed in claim 1, wherein the re-execution of the events are performed after one of completion of the execution of the events in the event configuration file and halting the execution of the sequence of the events due to an event failure.
4. The method as claimed in claim 3, wherein the event configuration file is up-dated with altered event attributes for the re-execution of the events.
5. The method as claimed in claim 1, wherein the events are omitted from being executed based on the event attributes in the event configuration file.
6. The method as claimed in claim 1, wherein the one or more steps of initializa-tion comprising:
creating a message queue for a subsystem corresponding to each of the event of the one or more events;
configuring resolution of a clock of each event of the one or more events;
reading the event configuration file;
initializing and enabling the clock for providing a timer tick to the event handler corresponding to the event; and
spawning the subsystem processing threads for activating the threads.
7. The method as claimed in claim 1, wherein the step of executing the subsys-tem processing thread comprising:
determining if one of the event handler and the response handler has to be triggered based on a countdown timer; and
providing a trigger to the corresponding subsystem processing thread based on the determination of providing a trigger one of the event handler and the response handler and updating the countdown timer.
8. The method as claimed in claim 1, wherein modification in event attributes of the one or more events or the sequence of execution , alter the configuration file without modifying the code.
9. An automated event scheduling system (1000) for automating and configuring scheduling of events, the automated event scheduling system comprising:
a non-transitory computer readable storage medium (1004) configured to store computer program instructions defined by modules of the automated event scheduling system; and
at least one processor (1010) communicatively coupled to the non-transitory computer readable storage medium (1004), the at least one processor configured to execute the computer program instructions defined by the modules of the automated event scheduling system (1000), the modules comprising:
a creation module (1001) configured to prepare an event configuration file comprising details of one or more events for processing, wherein the details are information regarding an event handler and a response handler corresponding to each of the event of the one or more events;
the creation module (1001) further configured to create a module for the event handler and the response handler for defining actions and defining approaches for performing the defined actions to the event handler and the response handler corresponding to each of the events of the one or more events;
a configuration module (1002) configured to initialize each event of the one or more events by performing one or more steps of initialization and initiate a sequence for execution of the events based on a sequence defined in the event configuration file;
an execution module (1003) configured to execute a subsystem processing thread corresponding to the event, based on the sequence, upon detecting a trigger for executing the event; and
the execution module (1003) further configured to re-execute the events in the event configuration file, upon detecting an instruction for re-execution, wherein the instruction comprising a sequence of execution of the one or more events.
10. The system as claimed in claim 9, wherein the event configuration file com-prises current event ID, next event ID, mode of triggering next event, target subsystem, event trigger time and event response timeout.
11. The system as claimed in claim 9, wherein the re-execution of the events are performed after one of completion of the execution of the events in the event configuration file and halting the execution of the sequence of the events due to an event failure.
12. The system as claimed in claim 9, wherein the event configuration file is up-dated with altered event attributes for the re-execution of the events.
13. The system as claimed in claim 9, wherein the events are omitted from being executed based on the event attributes in the event configuration file.
14. The system as claimed in claim 9, wherein the configuration module (1002)
creates a message queue for a subsystem corresponding to each of the event of the one or more events;
configures resolution of a clock of each event of the one or more events;
reads the event configuration file;
initializes and enables the clock for providing a timer tick to the event handler corresponding to the event; and
spawns the subsystem processing threads for activating the threads.
15. The system as claimed in claim 9, wherein the execution module (1003)
determines if one of the event handler and the response handler has to be triggered based on a countdown timer; and
provides a trigger to the corresponding subsystem processing thread based on the determination of providing a trigger one of the event handler and the response handler and updating the countdown timer.
| # | Name | Date |
|---|---|---|
| 1 | 201941012901-PROVISIONAL SPECIFICATION [30-03-2019(online)].pdf | 2019-03-30 |
| 2 | 201941012901-FORM 1 [30-03-2019(online)].pdf | 2019-03-30 |
| 3 | 201941012901-DRAWINGS [30-03-2019(online)].pdf | 2019-03-30 |
| 4 | 201941012901-Proof of Right (MANDATORY) [27-06-2019(online)].pdf | 2019-06-27 |
| 5 | 201941012901-FORM-26 [28-06-2019(online)].pdf | 2019-06-28 |
| 6 | Correspondence by Agent_Power of Attorney_08-07-2019.pdf | 2019-07-08 |
| 7 | Correspondence by Agent_Form1_08-07-2019.pdf | 2019-07-08 |
| 8 | 201941012901-FORM 3 [11-03-2020(online)].pdf | 2020-03-11 |
| 9 | 201941012901-ENDORSEMENT BY INVENTORS [11-03-2020(online)].pdf | 2020-03-11 |
| 10 | 201941012901-DRAWING [11-03-2020(online)].pdf | 2020-03-11 |
| 11 | 201941012901-CORRESPONDENCE-OTHERS [11-03-2020(online)].pdf | 2020-03-11 |
| 12 | 201941012901-COMPLETE SPECIFICATION [11-03-2020(online)].pdf | 2020-03-11 |
| 13 | 201941012901-FORM 18 [10-02-2021(online)].pdf | 2021-02-10 |
| 14 | 201941012901-FER.pdf | 2022-02-08 |
| 15 | 201941012901-OTHERS [08-08-2022(online)].pdf | 2022-08-08 |
| 16 | 201941012901-FER_SER_REPLY [08-08-2022(online)].pdf | 2022-08-08 |
| 17 | 201941012901-DRAWING [08-08-2022(online)].pdf | 2022-08-08 |
| 18 | 201941012901-COMPLETE SPECIFICATION [08-08-2022(online)].pdf | 2022-08-08 |
| 19 | 201941012901-ABSTRACT [08-08-2022(online)].pdf | 2022-08-08 |
| 20 | 201941012901-Annexure [09-08-2022(online)].pdf | 2022-08-09 |
| 21 | 201941012901-US(14)-HearingNotice-(HearingDate-05-02-2024).pdf | 2023-12-22 |
| 22 | 201941012901-Correspondence to notify the Controller [02-02-2024(online)].pdf | 2024-02-02 |
| 23 | 201941012901-Written submissions and relevant documents [20-02-2024(online)].pdf | 2024-02-20 |
| 24 | 201941012901-PETITION UNDER RULE 137 [21-02-2024(online)].pdf | 2024-02-21 |
| 25 | 201941012901-PatentCertificate14-03-2024.pdf | 2024-03-14 |
| 26 | 201941012901-IntimationOfGrant14-03-2024.pdf | 2024-03-14 |
| 27 | 201941012901-FORM-27 [15-09-2025(online)].pdf | 2025-09-15 |
| 1 | SearchHistory(4)E_02-02-2022.pdf |