FrameGrabberBase.h
Go to the documentation of this file.
1 //
2 // Copyright (c) 2023 SICK AG, Waldkirch
3 //
4 // SPDX-License-Identifier: Unlicense
5 
6 #pragma once
7 
8 #include "VisionaryDataStream.h"
9 #include <condition_variable>
10 #include <mutex>
11 #include <thread>
12 
13 namespace visionary {
15 {
16 public:
17  FrameGrabberBase(const std::string& hostname, std::uint16_t port, std::uint32_t timeoutMs);
19 
20  void start(std::shared_ptr<VisionaryData> inactiveDataHandler, std::shared_ptr<VisionaryData> activeDataHandler);
21  bool getNextFrame(std::shared_ptr<VisionaryData>& pDataHandler, std::uint32_t timeoutMs = 1000);
22  bool getCurrentFrame(std::shared_ptr<VisionaryData>& pDataHandler);
23 
24 private:
25  void run();
29  const std::string m_hostname;
30  const std::uint16_t m_port;
31  const std::uint32_t m_timeoutMs;
32  std::unique_ptr<VisionaryDataStream> m_pDataStream;
33  std::thread m_grabberThread;
34  std::shared_ptr<VisionaryData> m_pDataHandler;
35  std::mutex m_dataHandler_mutex;
36  std::condition_variable m_frameAvailableCv;
37 };
38 } // namespace visionary
visionary::FrameGrabberBase::m_hostname
const std::string m_hostname
Definition: FrameGrabberBase.h:29
visionary::FrameGrabberBase::m_connected
bool m_connected
Definition: FrameGrabberBase.h:28
visionary
Definition: MD5.cpp:44
visionary::FrameGrabberBase
Definition: FrameGrabberBase.h:14
VisionaryDataStream.h
visionary::FrameGrabberBase::m_pDataStream
std::unique_ptr< VisionaryDataStream > m_pDataStream
Definition: FrameGrabberBase.h:32
visionary::FrameGrabberBase::m_grabberThread
std::thread m_grabberThread
Definition: FrameGrabberBase.h:33
visionary::FrameGrabberBase::m_pDataHandler
std::shared_ptr< VisionaryData > m_pDataHandler
Definition: FrameGrabberBase.h:34
visionary::FrameGrabberBase::m_timeoutMs
const std::uint32_t m_timeoutMs
Definition: FrameGrabberBase.h:31
visionary::FrameGrabberBase::m_dataHandler_mutex
std::mutex m_dataHandler_mutex
Definition: FrameGrabberBase.h:35
visionary::FrameGrabberBase::m_isRunning
bool m_isRunning
Definition: FrameGrabberBase.h:26
visionary::FrameGrabberBase::m_frameAvailableCv
std::condition_variable m_frameAvailableCv
Definition: FrameGrabberBase.h:36
visionary::FrameGrabberBase::m_port
const std::uint16_t m_port
Definition: FrameGrabberBase.h:30
visionary::FrameGrabberBase::FrameGrabberBase
FrameGrabberBase(const std::string &hostname, std::uint16_t port, std::uint32_t timeoutMs)
Definition: FrameGrabberBase.cpp:11
visionary::FrameGrabberBase::run
void run()
Definition: FrameGrabberBase.cpp:46
visionary::FrameGrabberBase::getCurrentFrame
bool getCurrentFrame(std::shared_ptr< VisionaryData > &pDataHandler)
Definition: FrameGrabberBase.cpp:100
visionary::FrameGrabberBase::start
void start(std::shared_ptr< VisionaryData > inactiveDataHandler, std::shared_ptr< VisionaryData > activeDataHandler)
Definition: FrameGrabberBase.cpp:21
visionary::FrameGrabberBase::~FrameGrabberBase
~FrameGrabberBase()
Definition: FrameGrabberBase.cpp:40
visionary::FrameGrabberBase::getNextFrame
bool getNextFrame(std::shared_ptr< VisionaryData > &pDataHandler, std::uint32_t timeoutMs=1000)
Definition: FrameGrabberBase.cpp:84
visionary::FrameGrabberBase::m_FrameAvailable
bool m_FrameAvailable
Definition: FrameGrabberBase.h:27


sick_visionary_ros
Author(s): SICK AG TechSupport 3D Snapshot
autogenerated on Thu Feb 8 2024 03:39:24