summaryrefslogtreecommitdiff
path: root/src/camera/veyeimx287m_types.h
blob: 8cb74bafb34a7a7b79b23b6f579416e3be1c4517 (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
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
#pragma once

#include <QObject>

namespace veye {
namespace imx287m {

enum class Register : uint16_t {
    ImageAcqu = 0x0400,
    ImageFeature = 0x0800,
    ImageSigProc = 0x0c00,
    IOCtrl = 0x1000,
    FPGACmd = 0x1400,
    FPGABlock = 0x1800,

    Manufacturer_Name = 0x0000,
    Model_Name = 0x0004,
    Sensor_Name = 0x0008,
    Product_Info = 0x000C,
    Device_Version = 0x0010,
    System_reset = 0x0014,
    Param_save_to_flash = 0x0018,
    System_reboot = 0x001C,
    Time_stamp = 0x0020,
    Error_code = 0x0024,
    Format_Cap = 0x0028,
    TriggerMode_Cap = 0x0030,
    LaneNum_Cap = 0x0034,
    Temp_K = 0x0058,

    Image_Acquisition = 0x400,
    Trigger_Mode = 0x404,
    Trigger_Source = 0x408,
    Trigger_Num = 0x40C,
    Trigger_Inerval = 0x410,
    Trigger_Software = 0x414,
    Trigger_Count = 0x418,
    I2C_Addr = 0x41C,
    I2C_Port_Sel = 0x420,

    User_overlay_enable = 0x428,
    User_overlay_zone0 = 0x42C,
    User_overlay_zone1 = 0x430,
    User_overlay_zone2 = 0x434,
    User_overlay_zone3 = 0x438,
    User_define_zone0 = 0x43C,
    User_define_zone1 = 0x440,
    User_define_zone2 = 0x444,
    User_define_zone3 = 0x448,
    Nondiscontinuous_mode = 0x44C,
    Sensor_Reg_Addr = 0x0450,
    Sensor_Reg_Val = 0x454,
    Slave_mode = 0x460,
    Sensor_Frame_Count = 0x464,
    Out_Frame_Count = 0x468,
    Trigger_Cycle_Min = 0x46C,
    Trigger_Cycle_Max = 0x470,

    Test_Image_Selector = 0x800,
    Pixel_Format = 0x804,
    Sensor_Width = 0x808,
    Sensor_Height = 0x80C,
    MaxFrame_Rate = 0x810,
    Framerate = 0x814,
    ROI_Width = 0x818,
    ROI_Height = 0x81C,
    ROI_Offset_X = 0x820,
    ROI_Offset_Y = 0x824,
    Image_Direction = 0x828,
    Data_shift = 0x82C,
    Black_Level = 0x830,
    BLC_Mode = 0x834,
    ReadOut_Mode = 0x838,
    Lane_Num = 0x83C,
    MIPI_DataRate = 0x840,
    MIN_ROI_Width = 0x844,
    MIN_ROI_Height = 0x848,
    FrameRate_Ex = 0x850,
    OSD_Mode = 0x854,

    ISP_module_ctrl = 0xC00,
    Exposure_Mode = 0xC04,
    Target_Brightness = 0xC08,
    Exposure_Time_Source = 0xC0C,
    ME_Time = 0xC10,
    AE_MAX_Time = 0xC14,
    Exp_Time = 0xC18,
    Gain_Mode = 0xC1C,
    Manual_Gain = 0xC20,
    AG_Max_Gain = 0xC24,
    Cur_Gain = 0xC28,
    AAROIOffsetX = 0xC2C,
    AAROIOffsetY = 0xC30,
    AAROIWidth = 0xC34,
    AAROIHeight = 0xC38,
    WB_Mode = 0xC3C,
    MWB_Rgain = 0xC40,
    MWB_Bgain = 0xC44,
    AWBROIOffsetX = 0xC48,
    AWBROIOffsetY = 0xC4C,
    AWBROIWidth = 0xC50,
    AWBROIHeight = 0xC54,
    AWB_Rgain = 0xC58,
    AWB_Bgain = 0xC5C,
    Gamma = 0xC60,
    DPC_Start = 0xC64,
    DPC_Status = 0xC68,
    DPC_Count = 0xC6C,
    AAROI_enable = 0xC80,
    Max_Exp_time = 0xC8C,
    Min_Exp_time = 0xC90,

    Trigger_Delay = 0x1000,
    Trigger_Activation = 0x1004,
    Trigger_Filter_Enable = 0x1008,
    Trigger_Filter_Width = 0x100C,
    Trigger_Exp_Delay = 0x1010,
    GPIOS_Status = 0x1014,

    GPIO1_OutSelect = 0x1020,
    GPIO1_Useroutput = 0x1024,
    GPIO1_Reverse = 0x1028,

    GPIO2_OutSelect = 0x1030,
    GPIO2_Useroutput = 0x1034,
    GPIO2_Reverse = 0x1038
};

enum class ExposureMode : uint32_t {
    Manual = 0,
    AutoExposureOnce = 1,
    AutoExposureContinious = 2
};

enum class GainMode : uint32_t {
    Manual = 0,
    AutoGainOnce = 1,
    AutoGainContinious = 2
};

class Params : public QObject
{
    // Q_OBJECT
};

} // namespace imx287m
} // namespace veye