Critical Link MityCam SoC Firmware  1.0
Critical Link MityCam SoC Firmware
U3VIO.h
Go to the documentation of this file.
1 /*
2  * U3VIO.h
3  *
4  * Created on: Oct 12, 2017
5  * Author: mitydsp
6  */
7 
8 #ifndef U3VIO_H_
9 #define U3VIO_H_
10 
11 #include <memory>
12 
13 #include "IOChannel.h"
16 
17 #include "Utility/tcU3VFX3Core.h"
18 #include "libfpga/sgdma_dispatcher.h"
19 
20 #include "libdaq/gpio.h"
21 
22 namespace SocCamera {
23 
24 class tcU3VHandler;
25 class tcU3VDelegate;
26 
36 class tcU3VIO: public tcIOChannel {
37  friend class tcU3VHandler;
38  friend class tcU3VDelegate;
39 public:
40  tcU3VIO(tcSensorBoard *apSensorBoard, int32_t anCamLinkFPGAControlAddress,
41  uint32_t anSgdmaCtrlAddr, uint32_t anSgdmaDescAddr, uint32_t anRespRegAddr);
42  virtual ~tcU3VIO();
43 
44  virtual teNackCode capture(tsCaptureRequest asRequest);
45  virtual teNackCode setBpp(SocCamera::teBPPMode aeBppMode);
46  virtual void sendUpdate(tsNewFrameMsg *apMsg);
47 
48  void epHalt(bool abHalt);
49 
50  bool halted();
51 
52  void stall(bool abStallAndWait);
53 
54 private:
55  tcU3VFX3Core mcFx3;
56  tcSGDMADispatcher mcDispatcher;
57 
58  bool mbHaltState;
59 
60  void setStreamEnable(bool abHigh);
61  std::unique_ptr<MityDSP::tcGpio> mcGpios;
62 
63  uint32_t mnSirm;
64 
65  bool mbDebugStream;
66 };
67 
68 }
69 
70 #endif /* U3VIO_H_ */
SocCamera::tcU3VIO::stall
void stall(bool abStallAndWait)
Definition: U3VIO.cpp:241
SocCamera::tcU3VHandler
Definition: U3VHandler.h:23
SocCamera::tcU3VIO::halted
bool halted()
Definition: U3VIO.cpp:236
SocCamera::tcU3VIO::~tcU3VIO
virtual ~tcU3VIO()
Definition: U3VIO.cpp:74
GigERegisters.h
SocCamera::tcU3VDelegate
Definition: U3VDelegate.h:31
SocCamera::tcU3VIO::capture
virtual teNackCode capture(tsCaptureRequest asRequest)
Definition: U3VIO.cpp:78
SocCamera::tcU3VIO::tcU3VIO
tcU3VIO(tcSensorBoard *apSensorBoard, int32_t anCamLinkFPGAControlAddress, uint32_t anSgdmaCtrlAddr, uint32_t anSgdmaDescAddr, uint32_t anRespRegAddr)
Definition: U3VIO.cpp:40
SocCamera::teNackCode
teNackCode
Definition: CameraTypes.h:62
tcIOChannel
Camera Output IO channel management class.
Definition: IOChannel.h:34
SocCamera::teBPPMode
teBPPMode
Definition: CameraTypes.h:133
tcU3VFX3Core
Definition: tcU3VFX3Core.h:15
SocCamera::tcU3VIO
Definition: U3VIO.h:36
SocCamera
Definition: CameraTypes.h:7
tcU3VFX3Core.h
SocCamera::tcU3VIO::sendUpdate
virtual void sendUpdate(tsNewFrameMsg *apMsg)
Definition: U3VIO.cpp:160
tsNewFrameMsg
Definition: IOCallback.h:11
SocCamera::tcU3VIO::epHalt
void epHalt(bool abHalt)
Definition: U3VIO.cpp:216
SocCamera::tcSensorBoard
Definition: SensorBoard.h:40
SocCamera::tcU3VIO::setBpp
virtual teNackCode setBpp(SocCamera::teBPPMode aeBppMode)
Definition: U3VIO.cpp:154
RegisterFile.h
tsCaptureRequest
Definition: IOCallback.h:56
IOChannel.h