Critical Link MityCam SoC Firmware  1.0
Critical Link MityCam SoC Firmware
BufferedCameraLinkIO.h
Go to the documentation of this file.
1 /*
2  * BufferedCameraLinkIO.h
3  *
4  * Created on: Jun 25, 2014
5  * Author: mitycam
6  */
7 
8 #ifndef BUFFEREDCAMERALINKIO_H_
9 #define BUFFEREDCAMERALINKIO_H_
10 
11 #include "CameraLinkIO.h"
12 #include "libfpga/sgdma_dispatcher.h"
13 
14 namespace SocCamera
15 {
16 
18 {
19 public:
22 
28  virtual void frameTransmit(tsFrameHeader asFrameHeader) {}
29 };
30 
32 {
33 public:
45  tcBufferedCameraLinkIO(tcSensorBoard *apSensor, int32 anCamLinkFPGAControlAddress,
46  uint32 anSgdmaCtrlAddr, uint32 anSgdmaDescAddr, uint32 anRespRegAddr, uint32 anMuxRegAddr, uint32 anPacketizerAddr, tcPllReconfig *apReconfig = NULL);
47 
48  virtual ~tcBufferedCameraLinkIO();
49 
58 
65  virtual void sendUpdate(tsNewFrameMsg *apMsg);
66 
73 
74  void alwaysBuffer(int anAlwaysBuffer);
75 
82  tcCameraLinkIO::teOutputMode aeOutputMode);
83 
86 
87 private:
88 
92  void updateWatchers(tsNewFrameMsg *apMsg);
93 
100  tcSGDMADispatcher mcDispatcher;
101 
102  tcFPGARegister<uint32> mhMuxRegister;
103  tcFPGARegister<uint32> mhPacketizerRegister;
104 
105  bool mbFullyBuffered;
106  bool mbAlwaysBuffer;
107 
108  tcRAMStreamer::tePackingMode meLastPackingMode;
109 
110  bool mbSlowOutput;
111 
112  std::list<tcBufferedCameraLinkWatcher*> mcWatchers;
113 };
114 
115 } /* namespace SocCamera */
116 
117 #endif /* BUFFEREDCAMERALINKIO_H_ */
SocCamera::tcBufferedCameraLinkIO::setBpp
virtual SocCamera::teNackCode setBpp(SocCamera::teBPPMode aeBppMode)
Definition: BufferedCameraLinkIO.cpp:225
CameraLinkIO.h
int32
int32_t int32
Definition: Types.h:8
SocCamera::tcBufferedCameraLinkIO::tcBufferedCameraLinkIO
tcBufferedCameraLinkIO(tcSensorBoard *apSensor, int32 anCamLinkFPGAControlAddress, uint32 anSgdmaCtrlAddr, uint32 anSgdmaDescAddr, uint32 anRespRegAddr, uint32 anMuxRegAddr, uint32 anPacketizerAddr, tcPllReconfig *apReconfig=NULL)
Definition: BufferedCameraLinkIO.cpp:26
SocCamera::tcBufferedCameraLinkIO::capture
virtual SocCamera::teNackCode capture(tsCaptureRequest asRequest)
Definition: BufferedCameraLinkIO.cpp:62
SocCamera::tcBufferedCameraLinkWatcher::~tcBufferedCameraLinkWatcher
virtual ~tcBufferedCameraLinkWatcher()
Definition: BufferedCameraLinkIO.h:21
tcCameraLinkIO::teOutputMode
teOutputMode
Definition: CameraLinkIO.h:17
tsFrameHeader
Definition: Image.h:21
tcRAMStreamer::tePackingMode
tePackingMode
Definition: RAMStreamer.h:101
SocCamera::teNackCode
teNackCode
Definition: CameraTypes.h:62
SocCamera::teBPPMode
teBPPMode
Definition: CameraTypes.h:133
SocCamera::tcBufferedCameraLinkIO::unregisterWatcher
void unregisterWatcher(tcBufferedCameraLinkWatcher *apWatcher)
Definition: BufferedCameraLinkIO.cpp:253
SocCamera::tcBufferedCameraLinkIO::~tcBufferedCameraLinkIO
virtual ~tcBufferedCameraLinkIO()
Definition: BufferedCameraLinkIO.cpp:58
SocCamera::tcBufferedCameraLinkWatcher::tcBufferedCameraLinkWatcher
tcBufferedCameraLinkWatcher()
Definition: BufferedCameraLinkIO.h:20
SocCamera::tcBufferedCameraLinkWatcher::frameTransmit
virtual void frameTransmit(tsFrameHeader asFrameHeader)
Definition: BufferedCameraLinkIO.h:28
SocCamera::tcBufferedCameraLinkWatcher
Definition: BufferedCameraLinkIO.h:17
SocCamera
Definition: CameraTypes.h:7
uint32
uint32_t uint32
Definition: Types.h:11
tcCameraLinkIO
Definition: CameraLinkIO.h:10
tsNewFrameMsg
Definition: IOCallback.h:11
SocCamera::tcBufferedCameraLinkIO
Definition: BufferedCameraLinkIO.h:31
SocCamera::tcBufferedCameraLinkIO::setOutputMode
virtual SocCamera::teNackCode setOutputMode(tcCameraLinkIO::teOutputMode aeOutputMode)
Definition: BufferedCameraLinkIO.cpp:233
SocCamera::tcSensorBoard
Definition: SensorBoard.h:40
SocCamera::tcBufferedCameraLinkIO::alwaysBuffer
void alwaysBuffer(int anAlwaysBuffer)
Definition: BufferedCameraLinkIO.cpp:259
SocCamera::tcBufferedCameraLinkIO::sendUpdate
virtual void sendUpdate(tsNewFrameMsg *apMsg)
Definition: BufferedCameraLinkIO.cpp:166
tsCaptureRequest
Definition: IOCallback.h:56
SocCamera::tcBufferedCameraLinkIO::registerWatcher
void registerWatcher(tcBufferedCameraLinkWatcher *apWatcher)
Definition: BufferedCameraLinkIO.cpp:247