/* SPDX-License-Identifier: BSD-2-Clause */ /* * Copyright (C) 2021, Raspberry Pi (Trading) Limited * * cam_helper_imx290.cpp - camera helper for imx290 sensor */ #include #include "cam_helper.hpp" using namespace RPiController; class CamHelperImx290 : public CamHelper { public: CamHelperImx290(); uint32_t GainCode(double gain) const override; double Gain(uint32_t gain_code) const override; void GetDelays(int &exposure_delay, int &gain_delay, int &vblank_delay) const override; unsigned int HideFramesModeSwitch() const override; private: /* * Smallest difference between the frame length and integration time, * in units of lines. */ static constexpr int frameIntegrationDiff = 2; }; CamHelperImx290::CamHelperImx290() : CamHelper({}, frameIntegrationDiff) { } uint32_t CamHelperImx290::GainCode(double gain) const { int code = 66.6667 * log10(gain); return std::max(0, std::min(code, 0xf0)); } double CamHelperImx290::Gain(uint32_t gain_code) const { return pow(10, 0.015 * gain_code); } void CamHelperImx290::GetDelays(int &exposure_delay, int &gain_delay, int &vblank_delay) const { exposure_delay = 2; gain_delay = 2; vblank_delay = 2; } unsigned int CamHelperImx290::HideFramesModeSwitch() const { /* After a mode switch, we seem to get 1 bad frame. */ return 1; } static CamHelper *Create() { return new CamHelperImx290(); } static RegisterCamHelper reg("imx290", &Create); 6dc549bff6837900427ca11e'>treecommitdiff
path: root/test/event.cpp
blob: 19dceae123dd72c406946fa5a070bff9ef975292 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132