Conscience Core
CscEntityAlertIdentificationService.h
Go to the documentation of this file.
1 //
2 // CscEntityDetectionState.h
3 // ConscienceRobotManager
4 //
5 // Created by Hazar Zaoui on 15/12/2023.
6 // Copyright © 2023 IliesZaoui. All rights reserved.
7 //
8 
9 #ifndef CscEntityAlertIdentificationService_h
10 #define CscEntityAlertIdentificationService_h
13 #include "alerts.h"
14 #include "CscEntitySensorValues.h"
15 
16 namespace conscience_core::ai {
17 
19 public:
20 
28  map<AlertId, CscDetectedAlert *> identifyAlerts(ptr<CscEntityDetectionState> detectionState, string entitySerialNumber,
29  const vector<ptr<const CscAlertIdentificationConfig>> &enabledAlerts,
30  const map<string, EntitySensorValues> &sensorValuesBySensorName,
31  int accelerationFactor = 1, double analysisMaxPeriodMillis = 100'000,
32  const string &logPrefix = "", bool isUsingAiApi = false);
36  static CscEntityAlertIdentificationService *getInstance();
37 
38 private:
39  CscEntityAlertIdentificationService();
40  inline static CscEntityAlertIdentificationService *serviceInstance = nullptr;
41  ptr<const CscAlertIdentificationConfig> getAlertEnabledConfig(CscAlertTypeBuiltin type, const vector<ptr<const CscAlertIdentificationConfig>> &enabledAlerts) const;
42  void identifyNobodyPresentAlert(map<AlertId, CscDetectedAlert *> &currentAlerts, const vector<ptr<const CscAlertIdentificationConfig>> &enabledAlerts, ptr<CscEntityDetectionState> detectionState, ptr<CscLogger> logger);
43  void identifyMultiplePersonsAlert(map<AlertId, CscDetectedAlert *> &currentAlerts, const vector<ptr<const CscAlertIdentificationConfig>> &enabledAlerts, ptr<CscEntityDetectionState> detectionState, ptr<CscLogger> logger);
44  void identifyRedonAlert(map<AlertId, CscDetectedAlert *> &currentAlerts,
45  const vector<ptr<const CscAlertIdentificationConfig>> &enabledAlerts,
46  ptr<CscEntityDetectionState> detectionState, const map<string, EntitySensorValues> &sensorValuesBySensorName, ptr<CscLogger> logger);
47  void identifyPulseAlert(map<AlertId, CscDetectedAlert *> &currentAlerts,
48  const vector<ptr<const CscAlertIdentificationConfig>> &enabledAlerts,
49  ptr<CscEntityDetectionState> detectionState, const map<string, EntitySensorValues> &sensorValuesBySensorName, ptr<CscLogger> logger);
50  void identifyAlertsForAiApi(map<AlertId, CscDetectedAlert *> &currentAlerts, const vector<ptr<const CscAlertIdentificationConfig>> &enabledAlerts, ptr<CscEntityDetectionState> detectionState, ptr<CscLogger> logger);
51  vector<float> framesWithPersonRatioPerPeriod;
52  vector<bool> framesWithPerson;
53  ptr<TrackedObject> currentPersonFall = nullptr;
54 };
55 }
56 #endif
CSC_DLL_IMPORTEXPORT
#define CSC_DLL_IMPORTEXPORT
Definition: os.h:34
conscience_core::ai
Definition: alerts.cpp:12
CscCoreEvents.h
conscience_core::ai::CscEntityAlertIdentificationService
Definition: CscEntityAlertIdentificationService.h:18
CscEntitySensorValues.h
alerts.h
ptr
std::shared_ptr< T > ptr
Definition: CscCommon.h:29
CscEntityDetectionState.h