派生自 development/c++

zhangjixing
2019-01-18 9f08028f23d9e5cbfa159bec1e07d63b141a6809
QiaoJiaSystem/YoloServer/YoloDetectClientTest.cpp
@@ -10,70 +10,94 @@
#include <basic/pipe_element/ffmpeg/VideoCaptureElement.h>
#include "ImageDrawElement.h"
#include "YoloRpcElement.h"
class Controllor : public PipeController
{
#include <basic/util/app/AppPreference.hpp>
class Controllor : public PipeController {
public:
    Controllor(const int index,const std::string& rtsp):m_videoCaptureElement(rtsp,25,1000,0),
        m_YoloRpcElement(std::to_string(index)+"YoloRpc")
    {
    Controllor(const int index, const std::string &rtsp) : m_videoCaptureElement(rtsp, 25, 1000, 0),
                                                           m_YoloRpcElement(std::to_string(index) + "YoloRpc") {
        m_index = index;
        m_rtsp = rtsp;
        m_videoCaptureElement.registerConnector([&]{
            if(!m_YoloRpcElement.isBusy()){
        m_videoCaptureElement.registerConnector([&] {
            if (!m_YoloRpcElement.isBusy()) {
                m_YoloRpcElement.setImage(m_videoCaptureElement.getImage());
    //            paElement.setImage(videoCaptureElement.getImage());
    //            paNumElement.setImage(videoCaptureElement.getImage());
                //            paElement.setImage(videoCaptureElement.getImage());
                //            paNumElement.setImage(videoCaptureElement.getImage());
                m_YoloRpcElement.submit();
            }
            if(!m_imageDrawElement.isBusy()){
            if (!m_imageDrawElement.isBusy()) {
                m_imageDrawElement.setImage(m_videoCaptureElement.getImage());
                m_imageDrawElement.submit();
            }
        });
        m_YoloRpcElement.registerConnector([&]{
                m_imageDrawElement.setRects(m_YoloRpcElement.getRects());
        m_YoloRpcElement.registerConnector([&] {
            m_imageDrawElement.setYoloObjects(m_YoloRpcElement.getLastScoreRects());
        });
        m_imageDrawElement.registerConnector([&]{
            ImageShowElement::showImage(m_rtsp,*m_imageDrawElement.getImage());
        m_imageDrawElement.registerConnector([&] {
//            ImageShowElement::showImage(std::to_string(m_index), *m_imageDrawElement.getImage());
        });
        m_videoCaptureElement.setOutPutInterval(2);
        m_videoCaptureElement.setOutPutInterval(3);
        registerElement(m_videoCaptureElement);
        registerElement(m_YoloRpcElement);
        registerElement(m_imageDrawElement);
    }
    virtual ~Controllor()
    {}
    virtual ~Controllor() {}
private:
    std::string m_rtsp;
    ffmpeg::VideoCaptureElement m_videoCaptureElement;
    YoloRpcElement m_YoloRpcElement;
    ImageDrawElement m_imageDrawElement;
    int m_index;
};
//using namespace std;
int main(int argc, char *argv[])
{
int main(int argc, char *argv[]) {
    SAVE_APP_ARGS
    Controllor _Controllor(0,"/home/basic/video/201804/day0416/01010002606000000-slice1.mp4");
    _Controllor.start();
    Controllor _Controllor0(1,"/home/basic/video/201804/day0416/01010002606000000-slice2.mp4");
    _Controllor0.start();
    cout << "Hello World!" << endl;
    Controllor _Controllor1(2,"/home/basic/video/201804/day0416/01010002609000000-slice.mp4");
    _Controllor1.start();
    Controllor _Controllor2(3,"/home/basic/video/201804/day0416/01010002611000000-slice.mp4");
    _Controllor2.start();
    Controllor _Controllor3(4,"/home/basic/video/201804/night0418/02000000652000100-slice.mp4");
    _Controllor3.start();
    Controllor _Controllor4(5,"/home/basic/video/201804/night0418/02000000654000100-slice.mp4");
    _Controllor4.start();
    Controllor _Controllor5(6,"/home/basic/video/201804/night0418/02000000659000100-slice.mp4");
    _Controllor5.start();
    while(true)
    {sleep(1);}
    int num = atoi(argv[1]);
    std::string path(argv[2]);
    int portNum = atoi(argv[3]);
    //yolo server
    appPref.setStringData("yolo.proxy", "yoloServer");
    //#todo
    appPref.setStringData("yolo.ip", "");
    appPref.setIntData("yolo.port", portNum);
//    rpcClient(appPref.getStringData("yolo.proxy"), appPref.getStringData("yolo.ip"), appPref.getLongData("yolo.port"),"tcp"),
    for (int i = 0; i < num; i++) {
        Controllor *_Controllor = new Controllor(i, path);
        _Controllor->start();
    }
//    Controllor _Controllor(0, "/home/bsk/2.mp4");
//    _Controllor.start();
//    Controllor _Controllor1(1, "/home/bsk/2.mp4");
//    _Controllor1.start();
//    Controllor _Controllor2(2, "/home/bsk/2.mp4");
//    _Controllor2.start();
//    Controllor _Controllor3(3, "/home/bsk/2.mp4");
//    _Controllor3.start();
//    Controllor _Controllor4(4, "/home/bsk/2.mp4");
//    _Controllor4.start();
//    Controllor _Controllor0(1,"/home/basic/video/201804/day0416/01010002606000000-slice2.mp4");
//    _Controllor0.start();
//    cout << "Hello World!" << endl;
//    Controllor _Controllor1(2,"/home/basic/video/201804/day0416/01010002609000000-slice.mp4");
//    _Controllor1.start();
//    Controllor _Controllor2(3,"/home/basic/video/201804/day0416/01010002611000000-slice.mp4");
//    _Controllor2.start();
//    Controllor _Controllor3(4,"/home/basic/video/201804/night0418/02000000652000100-slice.mp4");
//    _Controllor3.start();
//    Controllor _Controllor4(5,"/home/basic/video/201804/night0418/02000000654000100-slice.mp4");
//    _Controllor4.start();
//    Controllor _Controllor5(6,"/home/basic/video/201804/night0418/02000000659000100-slice.mp4");
//    _Controllor5.start();
    while (true) { sleep(10); }
    return 0;
}