ConOpSys V2970  P004.07
ANVILEX control operating system
Event_Manager.h
Go to the documentation of this file.
1 //------------------------------------------------------------------------------
2 //! @file Event_Manager.h
3 //! @brief Event manager class header file.
4 //! @attention No special attention requered.
5 //! @copyright (C) 2015-2020 ANVILEX LLC
6 //! $HeadURL: https://192.168.3.4:8443/svn/P004_07/ConOpSys/Engine/Event_Manager.h $
7 //! $Revision: 2795 $
8 //! $Date: 2021-07-11 22:03:14 +0500 (So, 11 Jul 2021) $
9 //! $Author: minch $
10 //------------------------------------------------------------------------------
11 //
12 // Redistribution and use in source and binary forms, with or without
13 // modification, are permitted provided that the following conditions are met:
14 //
15 // 1. Redistributions of source code must retain the above copyright notice,
16 // this list of conditions and the following disclaimer.
17 //
18 // 2. Redistributions in binary form must reproduce the above copyright notice,
19 // this list of conditions and the following disclaimer in the documentation
20 // and/or other materials provided with the distribution.
21 //
22 // 3. Neither the name of ANVILEX nor the names of its contributors may be
23 // used to endorse or promote products derived from this software without
24 // specific prior written permission.
25 //
26 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
27 // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
28 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
29 // ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
30 // LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
31 // CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
32 // SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
33 // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
34 // CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
35 // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
36 // POSSIBILITY OF SUCH DAMAGE.
37 //
38 //------------------------------------------------------------------------------
39 
40 #pragma once
41 
42 //------------------------------------------------------------------------------
43 // System includes
44 //------------------------------------------------------------------------------
45 
46 #include "Application_Resource_Configuration.h"
47 #include "System_Date.h"
48 #include "Protocol_Base.h"
49 #include "SPI_Memory_Base.h"
50 #include "Event_Database.h"
51 #include "S25FL512.h"
52 #include "Event_Manager_Base.h"
53 
54 //------------------------------------------------------------------------------
55 // Event manager buffer defines
56 //------------------------------------------------------------------------------
57 
58 // ANVILEX KM: Moved to event manager base
59 //#define RECORD_SIZE 64
60 //#define EVENT_MANAGER_BUFFER_SIZE 32
61 //#define EVENT_MANAGER_BUFFERS_COUNT 2
62 //#define GLOBAL_INDEX_BYTES_NUMBER 8
63 
64 //-------------------------------------------------------------------------------
65 // Class definitions
66 //-------------------------------------------------------------------------------
67 
68 //! @brief Event manager class
69 class TEvent_Manager/*: public TEvent_Manager_Base*/
70 {
71 
72  //----------------------------------------------------------------------------
73  // Public defines, methods and variables
74  //----------------------------------------------------------------------------
75 
76  public:
77 
78  //--------------------------------------------------------------------------
79  // Public methods
80  //--------------------------------------------------------------------------
81 /*
82  //!-------------------------------------------------------------------------
83  //! @brief Class constructor method.
84  //! @note None
85  //! \par Override
86  //! Not allowed
87  //! @attention Don't call this method directly.
88  //--------------------------------------------------------------------------
89 
90  TEvent_Manager();
91 */
92 /*
93  //!-------------------------------------------------------------------------
94  //! @brief Class destructor method.
95  //! @note None
96  //! \par Override
97  //! Not allowed
98  //! @attention Don't call this method directly.
99  //--------------------------------------------------------------------------
100 
101  ~TEvent_Manager();
102 */
103  //!-------------------------------------------------------------------------
104  //! @brief Event manager initialisation method.
105  //! @note None
106  //! @return None
107  //! \par Override
108  //! Not allowed
109  //! @attention None
110  //--------------------------------------------------------------------------
111 
112  VOID Init();
113 
114  //!-------------------------------------------------------------------------
115  //! @brief Event manager finalisation method.
116  //! @note None
117  //! @return None
118  //! \par Override
119  //! Not allowed
120  //! @attention None
121  //--------------------------------------------------------------------------
122 
123  VOID Done();
124 
125  //!-------------------------------------------------------------------------
126  //! @brief Event manager background execution method.
127  //! @note None
128  //! @return None
129  //! \par Override
130  //! Not allowed
131  //! @attention None
132  //--------------------------------------------------------------------------
133 
134  VOID Execute();
135 
136  //!-------------------------------------------------------------------------
137  //! @brief Memory type assignment method.
138  //! @note Assign SPI memory
139  //! @param [in] *object_Memory_Pointer - Pointer to object of memory class
140  //! @return None
141  //! \par Override
142  //! Not allowed
143  //! @attention None
144  //--------------------------------------------------------------------------
145 
146 // BOOL Assign_Memory( TSPI_Memory_Base *object_Memory_Pointer );
147  BOOL Assign_Memory( TS25FL512 *object_Memory_Pointer );
148 
149  //!-------------------------------------------------------------------------
150  //! @brief Verify database method.
151  //! @note None
152  //! @return None
153  //! \par Override
154  //! Not allowed
155  //! @attention None
156  //--------------------------------------------------------------------------
157 
159 
160  //!-------------------------------------------------------------------------
161  //! @brief Erasing flash memory.
162  //! @note Erase only good blocks
163  //! @return BOOL - Erasing status
164  //! @retval false - Erasing failed
165  //! @retval true - Erasing successfully done
166  //! \par Override
167  //! Not allowed
168  //! @attention None
169  //--------------------------------------------------------------------------
170 
172 
173  //!-------------------------------------------------------------------------
174  //! @brief Method for creating event with determine event index.
175  //! @note None
176  //! @param [in] u32_Event_ID - Event index
177  //! @return None
178  //! \par Override
179  //! Not allowed
180  //! @attention None
181  //--------------------------------------------------------------------------
182 
183  VOID Create( U32 u32_Event_ID );
184 
185  //!-------------------------------------------------------------------------
186  //! @brief Method for creating event by given event descriptor
187  //! @note None
188  //! @param [in] &struct_Event_Descriptor - Event descriptor
189  //! @return None
190  //! \par Override
191  //! Not allowed
192  //! @attention None
193  //--------------------------------------------------------------------------
194 
195  VOID Create( const TEvent_Descriptor &struct_Event_Descriptor );
196 
197  //!-------------------------------------------------------------------------
198  //! @brief Method for creating event header
199  //! @note None
200  //! @param [out] **struct_Event_Record - Pointer to getting event
201  //! @return None
202  //! \par Override
203  //! Not allowed
204  //! @attention None
205  //--------------------------------------------------------------------------
206 
208 
209  //!-------------------------------------------------------------------------
210  //! @brief Method for creating event header
211  //! @note Data events are connected to the event header.
212  //! @param [in] u64_Relative_Event_Index - Relative event index
213  //! @param [out] **struct_Event_Record - Pointer to getting event
214  //! @return None
215  //! \par Override
216  //! Not allowed
217  //! @attention None
218  //--------------------------------------------------------------------------
219 
220  VOID Create_Data_Event( U64 u64_Relative_Event_Index, TEvent_Manager_Base::TEvent_Payload_Record **struct_Event_Record );
221 
222  //!-------------------------------------------------------------------------
223  //! @brief Method get event database descriptor hash
224  //! @note None
225  //! @return Event database descriptor hash
226  //! \par Override
227  //! Not allowed
228  //! @attention None
229  //--------------------------------------------------------------------------
230 
232 
233  //!-------------------------------------------------------------------------
234  //! @brief Method get event database descriptor hash
235  //! @note None
236  //! @return Databse record count
237  //! \par Override
238  //! Not allowed
239  //! @attention None
240  //--------------------------------------------------------------------------
241 
243 
244  //!-------------------------------------------------------------------------
245  //! @brief Method get event buffer size
246  //! @note None
247  //! @return Event buffer size
248  //! \par Override
249  //! Not allowed
250  //! @attention None
251  //--------------------------------------------------------------------------
252 
254 
255  //!-------------------------------------------------------------------------
256  //! @brief Method get event buffer size
257  //! @note None
258  //! @return Event buffer size
259  //! \par Override
260  //! Not allowed
261  //! @attention None
262  //--------------------------------------------------------------------------
263 
265 
266  //!-------------------------------------------------------------------------
267  //! @brief Method get current buffer index
268  //! @note None
269  //! @return Current buffer index
270  //! \par Override
271  //! Not allowed
272  //! @attention None
273  //--------------------------------------------------------------------------
274 
276 
277  //!-------------------------------------------------------------------------
278  //! @brief Method search event record by event index
279  //! @note None
280  //! @param [in] u64_Event_Index - Event index
281  //! @param [out] **struct_Event_Record - Pointer to event
282  //! @return BOOL - Searching status
283  //! @retval false - Searching failed
284  //! @retval true - Searching successfully done
285  //! \par Override
286  //! Not allowed
287  //! @attention None
288  //--------------------------------------------------------------------------
289 
290  BOOL Get_Event_Record_By_Index( U64 u64_Event_Index, TEvent_Manager_Base::TEvent_Generic_Record **struct_Event_Record );
291 
292  //!-------------------------------------------------------------------------
293  //! @brief Method get index of the first event record
294  //! @note None
295  //! @return U64 - Event index for first record
296  //! \par Override
297  //! Not allowed
298  //! @attention None
299  //--------------------------------------------------------------------------
300 
302 
303  //!-------------------------------------------------------------------------
304  //! @brief Method get index of the last event record
305  //! @note None
306  //! @return U64 - Event index for last record
307  //! \par Override
308  //! Not allowed
309  //! @attention None
310  //--------------------------------------------------------------------------
311 
313 
314  //!-------------------------------------------------------------------------
315  //! @brief Method get index of the currently selected event
316  //! @note None
317  //! @return U64 - index of the currently selected event
318  //! \par Override
319  //! Not allowed
320  //! @attention None
321  //--------------------------------------------------------------------------
322 
324 
325  //!-------------------------------------------------------------------------
326  //! @brief Method set index of the currently selected even
327  //! @note None
328  //! @return BOOL - Operation status
329  //! @retval false - Index dont set
330  //! @retval true - Index set successfully
331  //! \par Override
332  //! Not allowed
333  //! @attention None
334  //--------------------------------------------------------------------------
335 
336  BOOL Set_Selected_Event_Index( U64 u64_Selected_Event_New_Index );
337 
338  //!-------------------------------------------------------------------------
339  //! @brief Method get selected event
340  //! @note None
341  //! @param [out] **struct_Event_Record - Pointer to event
342  //! @return BOOL - Operation status
343  //! @retval false - Event not getting
344  //! @retval true - Event successfully getting
345  //! \par Override
346  //! Not allowed
347  //! @attention None
348  //--------------------------------------------------------------------------
349 
351 
352  //!-------------------------------------------------------------------------
353  //! @brief Method show boot information message method
354  //! @note None
355  //! @param [in] *object_Protocol - Pointer to communication protocol
356  //! @return None
357  //! \par Override
358  //! Not allowed
359  //! @attention None
360  //--------------------------------------------------------------------------
361 
362  VOID Show_Boot_Information( TProtocol_Base *object_Protocol );
363 
364  //!-------------------------------------------------------------------------
365  //! @brief Method send diagnostic information about event manager
366  //! @note None
367  //! @param [in] *object_Protocol - Pointer to communication protocol
368  //! @return None
369  //! \par Override
370  //! Not allowed
371  //! @attention None
372  //--------------------------------------------------------------------------
373 
374  VOID Send_Information( TProtocol_Base *object_Protocol );
375 
376  //!-------------------------------------------------------------------------
377  //! @brief Method send event desctiption over protocol
378  //! @note None
379  //! @param [in] *object_Protocol - Pointer to communication protocol
380  //! @param [in] enum_Event_ID - Event index
381  //! @return None
382  //! \par Override
383  //! Not allowed
384  //! @attention None
385  //--------------------------------------------------------------------------
386 
387  VOID Send_Event_Description( TProtocol_Base *object_Protocol, U32 enum_Event_ID );
388 
389  //!-------------------------------------------------------------------------
390  //! @brief Method get pointer to event description by given event ID
391  //! @note None
392  //! @param [in] u32_Event_ID - Event index
393  //! @param [out] **c8_Event_Description - Pointer to event description
394  //! @return BOOL - Operation status
395  //! @retval false - Operation falled
396  //! @retval true - Operation successfully done
397  //! \par Override
398  //! Not allowed
399  //! @attention None
400  //--------------------------------------------------------------------------
401 
402  BOOL Get_Event_Description_By_Event_ID( U32 u32_Event_ID, C8 **c8_Event_Description );
403 
404  //!-------------------------------------------------------------------------
405  //! @brief This method return OS status
406  //! @note None
407  //! @return U32 - OS status
408  //! \par Override
409  //! Required
410  //! @attention None
411  //--------------------------------------------------------------------------
412 
413  U32 Get_OS_Status();
414 
415  //!-------------------------------------------------------------------------
416  //! @brief This method set module in operation mode
417  //! @note None
418  //! @return BOOL - Module status
419  //! @retval false - Module in error mode
420  //! @retval true - Module ready to operations
421  //! \par Override
422  //! Required
423  //! @attention None
424  //--------------------------------------------------------------------------
425 
427 
428  //----------------------------------------------------------------------------
429  // Protected defines, methods and variables
430  //----------------------------------------------------------------------------
431 
432  protected:
433 
434  //----------------------------------------------------------------------------
435  // Private defines, methods and variables
436  //----------------------------------------------------------------------------
437 
438  private:
439 
440  //--------------------------------------------------------------------------
441  // Private defines
442  //--------------------------------------------------------------------------
443 
444  //! @brief Event data flush FSM state definition
445  typedef enum
446  {
447 
448  //! @brief Idle state
450 
451  //! @brief Data flish state
453 
454  //! @brief Looking for next good block stete
456 
457  //! @brief Testing for block is empty state
459 
460  //! @brief Erase block state
462 
464 
465  //! @brief Event buffer structure definition
466  typedef struct
467  {
468 
469  //! @brief Event buffer
471 
472  //! @brief Data buffer flush request
474 
475  } TEvent_Buffer;
476 
477  //--------------------------------------------------------------------------
478  // Private methods
479  //--------------------------------------------------------------------------
480 
481  //!-------------------------------------------------------------------------
482  //! @brief Verify event desriptor database method
483  //! @note This method verify consistency of the event descriptor database.
484  //! @return BOOL - verification status
485  //! @retval false - Verification failed due one or multiple errors
486  //! @retval true - Verification successed
487  //! \par Override
488  //! Not allowed
489  //! @attention None
490  //--------------------------------------------------------------------------
491 
493 
494  //!-------------------------------------------------------------------------
495  //! @brief Get event database size in bytes method.
496  //! @note None
497  //! @return U32 - Event database in bytes
498  //! \par Override
499  //! Not allowed
500  //! @attention None
501  //--------------------------------------------------------------------------
502 
504 
505  //!-------------------------------------------------------------------------
506  //! @brief Calculate event descriptor database hash description.
507  //! @note None
508  //! @return U32 - Event database hash value
509  //! \par Override
510  //! Not allowed
511  //! @attention None
512  //--------------------------------------------------------------------------
513 
515 
516  //!-------------------------------------------------------------------------
517  //! @brief Increment event buffer method.
518  //! @note None
519  //! @return None
520  //! \par Override
521  //! Not allowed
522  //! @attention None
523  //--------------------------------------------------------------------------
524 
526 
527  //!-------------------------------------------------------------------------
528  //! @brief Get previous buffer index.
529  //! @note None
530  //! @param [in] u32_Buffer_Index - Buffer index
531  //! @return U32 - Previous buffer index value
532  //! \par Override
533  //! Not allowed
534  //! @attention None
535  //--------------------------------------------------------------------------
536 
537  U32 Get_Previous_Buffer_Index( U32 u32_Buffer_Index );
538 
539  //!-------------------------------------------------------------------------
540  //! @brief Half division method event searching.
541  //! @note None
542  //! @param [in] u64_Event_Index - Index of the event to search
543  //! @param [out] **struct_Event_Record - Pointer to returned event record
544  //! @return BOOL - Searching status
545  //! @retval false - Searching for event record failed
546  //! @retval true - Event record successfully getted
547  //! \par Override
548  //! Not allowed
549  //! @attention None
550  //--------------------------------------------------------------------------
551 
552  BOOL Half_Devision_Method_Searching( U64 u64_Event_Index, TEvent_Manager_Base::TEvent_Generic_Record **struct_Event_Record );
553 
554  //!-------------------------------------------------------------------------
555  //! @brief Search first and last event index in flash
556  //! @note None
557  //! @return BOOL - Searching status
558  //! @retval false - Searching failed
559  //! @retval true - Params successfully determined
560  //! \par Override
561  //! Required
562  //! @attention None
563  //--------------------------------------------------------------------------
564 
566 
567  //--------------------------------------------------------------------------
568  // Private variables
569  //--------------------------------------------------------------------------
570 
571  //! @brief Pointer to event memory object
572 // TSPI_Memory_Base *object_SPI_Memory = (TSPI_Memory_Base*)NULL;
574 
575  //! @brief Event buffers
577 
578  //! @brief Last flushed buffer index
580 
581  //! @brief Last global event index detected in the Flash
583 
584  //! @brief Event manager database derscriptor hash
585  U32 u32_Database_Hash = (U32)0x00000000;
586 
587  //! @brief Event data flish FSM state variable
589 
590  //! @brief Storage block index variable, used to store actual block index by data flush FSM
592 
593  //! @brief Storage page index variable, used to store actual page index by data flush FSM
595 
596  //! @brief Storage page index with manimal event index in flash
598 
599  //! @brief Storage page index with maximal event index in flash
601 
602  //! @brief Storage Current buffer index
604 
605  //! @brief Storage current number of buffer index
607 
608  //! @brief First global event index detected in the system
610 
611  //! @brief Last global event index detected in the system
613 
614  //! @brief Current global event index detected in the system
616 
617  //! @brief Actual selected event index
619 
620  //! @brief Current event record. Store current event data for VDC tool functionality.
622 
623  //! @brief Selected event validity flag
625 
626  //! @brief Flash data record storage
628 
629  //! @brief Current address for programing
631 
632  //! @brief Last event index in flash memory
634 
635  //! @brief Event descriptors list storage mapped directly to the section
637 
638  //! @brief Container for OS status
640 
641  //! @brief Duplicated event descriptor record counter
643 
644  //! @brief Counter for requested events
646 
647  //! @brief Counter of dropped events caused by buffer overflow
649 
650 };
651 
652 //------------------------------------------------------------------------------
653 // End of file
654 //------------------------------------------------------------------------------
int BOOL
Boolean datatype definition.
Definition: Defines.h:124
#define NULL
Definition: Defines.h:388
unsigned long long U64
Binary 64-Bit unsigned integer datatype defenition.
Definition: Defines.h:213
void VOID
Datatypesess datatype definition.
Definition: Defines.h:105
unsigned long U32
Binary 32-Bit unsigned integer datatype defenition.
Definition: Defines.h:203
unsigned short U16
Binary 16-Bit unsigned integer datatype defenition.
Definition: Defines.h:193
char C8
ASCII 8-Bit char datatype defenition.
Definition: Defines.h:156
Event database header file.
Event manager base class header file.
#define EVENT_MANAGER_BUFFER_SIZE
Definition: Event_Manager_Base.h:58
#define EVENT_MANAGER_BUFFERS_COUNT
Definition: Event_Manager_Base.h:59
Communication protocol base class header file.
SPI NAND FLASH memory chip S25FL512 hardware driver class header file.
SPI connected memory base class header file.
System date and time calss implementation.
Event manager class.
Definition: Event_Manager.h:70
BOOL Half_Devision_Method_Searching(U64 u64_Event_Index, TEvent_Manager_Base::TEvent_Generic_Record **struct_Event_Record)
Half division method event searching.
Definition: Event_Manager.cpp:1847
BOOL Start_Operation()
This method set module in operation mode.
Definition: Event_Manager.cpp:2274
U64 Get_First_Event_Index()
Method get index of the first event record.
Definition: Event_Manager.cpp:930
U64 u64_Selected_Event_Index
Actual selected event index.
Definition: Event_Manager.h:618
VOID Execute()
Event manager background execution method.
Definition: Event_Manager.cpp:490
U32 Get_Event_Buffer_Size()
Method get event buffer size.
Definition: Event_Manager.cpp:906
U64 u64_Current_Program_Page_Address
Current address for programing.
Definition: Event_Manager.h:630
VOID Verify_Database()
Verify database method.
Definition: Event_Manager.cpp:229
BOOL Get_Event_Record_By_Index(U64 u64_Event_Index, TEvent_Manager_Base::TEvent_Generic_Record **struct_Event_Record)
Method search event record by event index.
Definition: Event_Manager.cpp:1762
TEvent_Manager_Base::TEvent_Generic_Record struct_Selected_Event_Record
Current event record. Store current event data for VDC tool functionality.
Definition: Event_Manager.h:621
U16 u16_Offset_For_Max_Event_Index
Storage page index with maximal event index in flash.
Definition: Event_Manager.h:600
VOID Init()
Event manager initialisation method.
Definition: Event_Manager.cpp:92
VOID Create(U32 u32_Event_ID)
Method for creating event with determine event index.
Definition: Event_Manager.cpp:334
U16 u16_Storage_Block_Index
Storage block index variable, used to store actual block index by data flush FSM.
Definition: Event_Manager.h:591
TEvent_Descriptor * struct_Event_Descriptors_List
Event descriptors list storage mapped directly to the section.
Definition: Event_Manager.h:636
U32 Calculate_Database_Hash()
Calculate event descriptor database hash description.
Definition: Event_Manager.cpp:1403
U32 Get_Event_Record_Size()
Method get event buffer size.
Definition: Event_Manager.cpp:918
U32 Get_Database_Size_In_Bytes()
Get event database size in bytes method.
Definition: Event_Manager.cpp:2232
BOOL Get_Min_Max_Flash_Index()
Search first and last event index in flash.
Definition: Event_Manager.cpp:1464
U32 Get_OS_Status()
This method return OS status.
Definition: Event_Manager.cpp:2262
TEvent_Buffer struct_Event_Buffer[EVENT_MANAGER_BUFFERS_COUNT]
Event buffers.
Definition: Event_Manager.h:576
U64 u64_Last_Global_Event_Index
Last global event index detected in the system.
Definition: Event_Manager.h:612
BOOL Verify_Event_Descriptor_Database()
Verify event desriptor database method.
Definition: Event_Manager.cpp:2141
U32 u32_Last_Flushed_Buffer_Index
Last flushed buffer index.
Definition: Event_Manager.h:579
BOOL Get_Event_Description_By_Event_ID(U32 u32_Event_ID, C8 **c8_Event_Description)
Method get pointer to event description by given event ID.
Definition: Event_Manager.cpp:1354
U32 u32_Database_Hash
Event manager database derscriptor hash.
Definition: Event_Manager.h:585
U32 u32_Current_Buffer_Index
Storage Current buffer index.
Definition: Event_Manager.h:603
U32 Get_Database_Hash()
Method get event database descriptor hash.
Definition: Event_Manager.cpp:894
U64 u64_First_Global_Event_Index
First global event index detected in the system.
Definition: Event_Manager.h:609
U32 u32_Dropped_Event_Counter
Counter of dropped events caused by buffer overflow.
Definition: Event_Manager.h:648
U32 u32_Duplicated_Event_Descriptor_Record_Counter
Duplicated event descriptor record counter.
Definition: Event_Manager.h:642
TOS_Status_Structure struct_OS_Status
Container for OS status.
Definition: Event_Manager.h:639
VOID Show_Boot_Information(TProtocol_Base *object_Protocol)
Method show boot information message method.
Definition: Event_Manager.cpp:162
TEvent_Manager_Base::TEvent_Generic_Record struct_Flash_Event_Record
Flash data record storage.
Definition: Event_Manager.h:627
U16 u16_Page_Index_With_Min_Event_Index
Storage page index with manimal event index in flash.
Definition: Event_Manager.h:597
TData_Flush_FSM
Event data flush FSM state definition.
Definition: Event_Manager.h:446
@ enum_Erase_Block
Erase block state.
Definition: Event_Manager.h:461
@ enum_Empty_Block_Test
Testing for block is empty state.
Definition: Event_Manager.h:458
@ enum_Flush_Buffer
Data flish state.
Definition: Event_Manager.h:452
@ enum_Idle
Idle state.
Definition: Event_Manager.h:449
@ enum_Search_Good_Block
Looking for next good block stete.
Definition: Event_Manager.h:455
U64 u64_Current_Event_Index_In_Flash
Last event index in flash memory.
Definition: Event_Manager.h:633
BOOL Format_Event_Storage()
Erasing flash memory.
Definition: Event_Manager.cpp:261
U64 u64_Current_Global_Event_Index
Current global event index detected in the system.
Definition: Event_Manager.h:615
U16 u16_Page_Index_With_Max_Event_Index
Storage page index variable, used to store actual page index by data flush FSM.
Definition: Event_Manager.h:594
U64 u64_Last_Flushed_Event_Index
Last global event index detected in the Flash.
Definition: Event_Manager.h:582
U64 Get_Last_Event_Index()
Method get index of the last event record.
Definition: Event_Manager.cpp:942
BOOL Set_Selected_Event_Index(U64 u64_Selected_Event_New_Index)
Method set index of the currently selected even.
Definition: Event_Manager.cpp:966
VOID Create_Header_Event(TEvent_Manager_Base::TEvent_Header_Record **struct_Event_Record)
Method for creating event header.
Definition: Event_Manager.cpp:411
BOOL Get_Selected_Event(TEvent_Manager_Base::TEvent_Generic_Record **struct_Event_Record)
Method get selected event.
Definition: Event_Manager.cpp:1042
VOID Create_Data_Event(U64 u64_Relative_Event_Index, TEvent_Manager_Base::TEvent_Payload_Record **struct_Event_Record)
Method for creating event header.
Definition: Event_Manager.cpp:450
U64 Get_Selected_Event_Index()
Method get index of the currently selected event.
Definition: Event_Manager.cpp:954
VOID Done()
Event manager finalisation method.
Definition: Event_Manager.cpp:151
U32 Get_Previous_Buffer_Index(U32 u32_Buffer_Index)
Get previous buffer index.
Definition: Event_Manager.cpp:1100
U32 u32_Requested_Event_Counter
Counter for requested events.
Definition: Event_Manager.h:645
TS25FL512 * object_SPI_Memory
Pointer to event memory object.
Definition: Event_Manager.h:573
U32 u32_Current_Number_Buffer_Index
Storage current number of buffer index.
Definition: Event_Manager.h:606
BOOL Assign_Memory(TS25FL512 *object_Memory_Pointer)
Memory type assignment method.
Definition: Event_Manager.cpp:187
VOID Increment_Buffer_Index()
Increment event buffer method.
Definition: Event_Manager.cpp:300
U32 Get_Database_Record_Count()
Method get event database descriptor hash.
Definition: Event_Manager.cpp:2247
TData_Flush_FSM enum_Data_Flush_FSM_State
Event data flish FSM state variable.
Definition: Event_Manager.h:588
U32 Get_Current_Buffer_Index()
Method get current buffer index.
Definition: Event_Manager.cpp:1087
VOID Send_Event_Description(TProtocol_Base *object_Protocol, U32 enum_Event_ID)
Method send event desctiption over protocol.
Definition: Event_Manager.cpp:1299
BOOL bool_Selected_Event_Valid
Selected event validity flag.
Definition: Event_Manager.h:624
VOID Send_Information(TProtocol_Base *object_Protocol)
Method send diagnostic information about event manager.
Definition: Event_Manager.cpp:1139
Definition: Protocol_Base.h:57
NAND memory hardware driver.
Definition: S25FL512.h:62
Event descriptor structure.
Definition: Event_Database.h:241
Event buffer structure definition.
Definition: Event_Manager.h:467
BOOL bool_Flush_Request
Data buffer flush request.
Definition: Event_Manager.h:473
Consolidated generic event data record.
Definition: Event_Manager_Base.h:193
Event header data record, 64 bytes.
Definition: Event_Manager_Base.h:82
Event payload data record, 64 bytes.
Definition: Event_Manager_Base.h:154
OS parameter status structure.
Definition: Defines.h:855