派生自 development/c++

xuxiuxi
2019-03-08 5bf0020b189b2bc8c64737c2af4ea77c3e8f5612
QiaoJiaSystem/StructureApp/AppPipeController.h
@@ -15,8 +15,26 @@
#include "PerimeterElement.h"
#include "JudgmentRetrogradeTool.h"
#include "NewRecordVideoElement.h"
#include "PersonElement.h"
#include "PerStaticElement.h"
#include <jsoncpp/json/json.h>
#include "DBStruct.h"
#include "SaveVideoRpc.h"
class VideoCaptureElementNotDecoder : public ffmpeg::VideoCaptureElement {
    using ffmpeg::VideoCaptureElement::VideoCaptureElement;
private:
    virtual void timerFunc() override {
        fireConnectors();
    }
    virtual void threadInitial() override {}
    virtual void threadClosing() override {}
private:
    bool m_decoderRet = {false};
};
class AppPipeController : public PipeController {
public:
@@ -25,11 +43,14 @@
     * @param folderPath 任务根目录,用于做共享内存id
     * @param json 参数为rtsp流地址 sdk是否启用的标识
     */
    AppPipeController(std::string folderPath, const Json::Value &json);
    //  AppPipeController(std::string folderPath, const Json::Value &json);
    AppPipeController(std::string folderPath, const SdkRuleMap &ruleMap);
    AppPipeController(int index, const Json::Value &json, bool RecordVideoEnable = false);
    //  AppPipeController(int index, const Json::Value &json, bool RecordVideoEnable = false);
    AppPipeController(std::string camId, const Json::Value &json, bool RecordVideoEnable);
    //  AppPipeController(std::string camId, const Json::Value &json, bool RecordVideoEnable);
    AppPipeController(std::string camId, const SdkRuleMap &ruleMap, bool RecordVideoEnable);
    virtual ~AppPipeController();
@@ -41,12 +62,14 @@
    void setfdfsClient(FastFdsWithLock *p_fdfsClient);
    void setWeekRule(const std::map<int, std::vector<LActRuleWeekRecord>> &weekRuleMap);
private:
    void init();
private://Perimete
    PerimeterElement perimeterElement;
   // TriggerElement peTriggerElement;
    // TriggerElement peTriggerElement;
    void initPerimeter();
@@ -56,6 +79,8 @@
    void initCrowd();
    void RecordVideo();
private://KeepRight
    JudgmentRetrogradeTool leftJudgment;
    JudgmentRetrogradeTool rightJudgment;
@@ -63,24 +88,38 @@
//    TriggerElement leftTriggerElement;
//    TriggerElement rightTriggerElement;
    void intKeepRight();
    void initKeepRight();
private:
    ffmpeg::VideoCaptureElement videoCaptureElement;
    PerStaticElement perStaticElement;
    void initPerStatic();
private://Perimete
    PerimeterElement perHubElement;
    // TriggerElement peTriggerElement;
    void initPerHub();
private:
    SaveVideoRpcClient_t m_rpcClient;
    VideoCaptureElementNotDecoder videoCaptureElement;
//    ffmpeg::VideoCaptureElement videoCaptureElement;
    YoloRpcElement yoloRpcElement;
    FaceRpcElement faceRpcElement;
    FaceExtractElement faceExtractElement;
    ImageDrawElement imageDrawElement;
    RecordVideoElement recordVideoElement;
    NewRecordVideoElement newRecordVideoElement;
//    RecordVideoElement recordVideoElement;
//    NewRecordVideoElement newRecordVideoElement;
    PersonElement personElement;
    int m_index;
    std::string m_camId;
    std::string m_folderPath;
    Json::Value m_json;
    Json::Value m_json_Record;
//    Json::Value m_json;
//    Json::Value m_json_Record;
//    Json::FastWriter m_fastWriter;
    Json::FastWriter m_fastWriter;
    FastFdsWithLock *fdfsClient;
    bool bRecordVideoEnable;
@@ -91,25 +130,15 @@
    QDateTime m_dt;
    std::map<int, std::vector<LActRuleWeekRecord>> m_weekRuleMap;
    SdkRuleMap m_sdkRuleMap;
    std::string m_localIp;
    std::string getFullFileName();
    void recordInit(int videoMin, int videoMax);
    void setSdkTrigger();
    void doRecord();
    int fileMin;
    int fileMax;
    bool sdkTrigger;
    int triggerDelay;
#define RECORD_STOP (0)
#define RECORD_DOING (1)
#define RECORD_ENDING (2)
    int recordStatus;
    int videoLength;
    int recordDelay;
    std::mutex mutex;
    bool m_bSetWH;
    HiredisTool m_hiredisTool;
};