gxci/hal/control/
analog.rs1use crate::hal::config::*;
3use crate::raw::gx_enum::GX_FEATURE_ID;
4use crate::error::Result;
5
6#[cfg(feature = "solo")]
7pub fn gxi_get_gain_selector() -> Result<i64> {
8 let gain_selector:i64 = gxi_get_feature_value(GX_FEATURE_ID::GX_ENUM_GAIN_SELECTOR)?;
9 println!("Now, gain selector is {}",gain_selector);
10 Ok(gain_selector)
11}
12
13#[cfg(feature = "solo")]
14pub fn gxi_set_gain_selector(gain_selector:i64) -> Result<()> {
15 gxi_set_feature_value(GX_FEATURE_ID::GX_ENUM_GAIN_SELECTOR,&gain_selector)?;
16 println!("Now, gain selector is {}",gain_selector);
17 Ok(())
18}
19
20#[cfg(feature = "solo")]
21pub fn gxi_set_gain_selector_analog_all() -> Result<()> {
22 gxi_set_feature_value(GX_FEATURE_ID::GX_ENUM_GAIN_SELECTOR,&0i64)?;
23 println!("Now, gain selector is analog all");
24 Ok(())
25}
26
27
28#[cfg(feature = "solo")]
29pub fn gxi_get_gain() -> Result<f64> {
30 let gain:f64 = gxi_get_feature_value(GX_FEATURE_ID::GX_FLOAT_GAIN)?;
31 println!("Now, gain is {}",gain);
32 Ok(gain)
33}
34
35#[cfg(feature = "solo")]
36pub fn gxi_set_gain(gain:f64) -> Result<()> {
37 gxi_set_feature_value(GX_FEATURE_ID::GX_FLOAT_GAIN, &gain)?;
38 println!("Successfully set gain to {}",gain);
39 Ok(())
40}
41
42#[cfg(feature = "solo")]
43pub fn gxi_get_gain_auto() -> Result<i64> {
44 let gain_auto:i64 = gxi_get_feature_value(GX_FEATURE_ID::GX_ENUM_GAIN_AUTO)?;
45 println!("Now, gain auto is {}",gain_auto);
46 Ok(gain_auto)
47}
48
49#[cfg(feature = "solo")]
50pub fn gxi_set_gain_auto(gain_auto:i64) -> Result<()> {
51 gxi_set_feature_value(GX_FEATURE_ID::GX_ENUM_GAIN_AUTO,&gain_auto)?;
52 println!("Now, gain auto is {}",gain_auto);
53 Ok(())
54}
55
56#[cfg(feature = "solo")]
57pub fn gxi_set_gain_auto_off() -> Result<()> {
58 gxi_set_feature_value(GX_FEATURE_ID::GX_ENUM_GAIN_AUTO,&0i64)?;
59 println!("Now, gain auto is off");
60 Ok(())
61}
62
63#[cfg(feature = "solo")]
64pub fn gxi_set_gain_auto_continuous() -> Result<()> {
65 gxi_set_feature_value(GX_FEATURE_ID::GX_ENUM_GAIN_AUTO,&1i64)?;
66 println!("Now, gain auto is continuous");
67 Ok(())
68}
69
70#[cfg(feature = "solo")]
71pub fn gxi_set_gain_auto_once() -> Result<()> {
72 gxi_set_feature_value(GX_FEATURE_ID::GX_ENUM_GAIN_AUTO,&2i64)?;
73 println!("Now, gain auto is once");
74 Ok(())
75}
76
77#[cfg(feature = "solo")]
78pub fn gxi_get_auto_gain_min() -> Result<f64> {
79 let min:f64 = gxi_get_feature_value(GX_FEATURE_ID::GX_FLOAT_AUTO_GAIN_MIN)?;
80 println!("Now, auto gain min is {}",min);
81 Ok(min)
82}
83
84#[cfg(feature = "solo")]
85pub fn gxi_set_auto_gain_min(min:f64) -> Result<()> {
86 gxi_set_feature_value(GX_FEATURE_ID::GX_FLOAT_AUTO_GAIN_MIN, &min)?;
87 println!("Successfully set auto gain min to {}",min);
88 Ok(())
89}
90
91#[cfg(feature = "solo")]
92pub fn gxi_get_auto_gain_max() -> Result<f64> {
93 let max:f64 = gxi_get_feature_value(GX_FEATURE_ID::GX_FLOAT_AUTO_GAIN_MAX)?;
94 println!("Now, auto gain max is {}",max);
95 Ok(max)
96}
97
98#[cfg(feature = "solo")]
99pub fn gxi_set_auto_gain_max(max:f64) -> Result<()> {
100 gxi_set_feature_value(GX_FEATURE_ID::GX_FLOAT_AUTO_GAIN_MAX, &max)?;
101 println!("Successfully set auto gain max to {}",max);
102 Ok(())
103}
104
105#[cfg(feature = "solo")]
106pub fn gxi_get_balance_ratio_selector() -> Result<i64> {
107 let balance_ratio_selector:i64 = gxi_get_feature_value(GX_FEATURE_ID::GX_ENUM_BALANCE_RATIO_SELECTOR)?;
108 println!("Now, balance ratio selector is {}",balance_ratio_selector);
109 Ok(balance_ratio_selector)
110}
111
112#[cfg(feature = "solo")]
113pub fn gxi_set_balance_ratio_selector(balance_ratio_selector:i64) -> Result<()> {
114 gxi_set_feature_value(GX_FEATURE_ID::GX_ENUM_BALANCE_RATIO_SELECTOR,&balance_ratio_selector)?;
115 println!("Now, balance ratio selector is {}",balance_ratio_selector);
116 Ok(())
117}
118
119#[cfg(feature = "solo")]
120pub fn gxi_set_balance_ratio_selector_red() -> Result<()> {
121 gxi_set_feature_value(GX_FEATURE_ID::GX_ENUM_BALANCE_RATIO_SELECTOR,&0i64)?;
122 println!("Now, balance ratio selector is red");
123 Ok(())
124}
125
126#[cfg(feature = "solo")]
127pub fn gxi_set_balance_ratio_selector_green() -> Result<()> {
128 gxi_set_feature_value(GX_FEATURE_ID::GX_ENUM_BALANCE_RATIO_SELECTOR,&1i64)?;
129 println!("Now, balance ratio selector is green");
130 Ok(())
131}
132
133#[cfg(feature = "solo")]
134pub fn gxi_set_balance_ratio_selector_blue() -> Result<()> {
135 gxi_set_feature_value(GX_FEATURE_ID::GX_ENUM_BALANCE_RATIO_SELECTOR,&2i64)?;
136 println!("Now, balance ratio selector is blue");
137 Ok(())
138}
139
140#[cfg(feature = "solo")]
141pub fn gxi_get_balance_ratio() -> Result<f64> {
142 let balance_ratio:f64 = gxi_get_feature_value(GX_FEATURE_ID::GX_FLOAT_BALANCE_RATIO)?;
143 println!("Now, balance ratio is {}",balance_ratio);
144 Ok(balance_ratio)
145}
146
147#[cfg(feature = "solo")]
148pub fn gxi_get_balance_white_auto() -> Result<i64> {
149 let balance_white_auto:i64 = gxi_get_feature_value(GX_FEATURE_ID::GX_ENUM_BALANCE_WHITE_AUTO)?;
150 println!("Now, balance white auto is {}",balance_white_auto);
151 Ok(balance_white_auto)
152}
153
154#[cfg(feature = "solo")]
155pub fn gxi_set_balance_white_auto(balance_white_auto:i64) -> Result<()> {
156 gxi_set_feature_value(GX_FEATURE_ID::GX_ENUM_BALANCE_WHITE_AUTO,&balance_white_auto)?;
157 println!("Now, balance white auto is {}",balance_white_auto);
158 Ok(())
159}
160
161#[cfg(feature = "solo")]
162pub fn gxi_set_balance_white_auto_off() -> Result<()> {
163 gxi_set_feature_value(GX_FEATURE_ID::GX_ENUM_BALANCE_WHITE_AUTO,&0i64)?;
164 println!("Now, balance white auto is off");
165 Ok(())
166}
167
168#[cfg(feature = "solo")]
169pub fn gxi_set_balance_white_auto_continuous() -> Result<()> {
170 gxi_set_feature_value(GX_FEATURE_ID::GX_ENUM_BALANCE_WHITE_AUTO,&1i64)?;
171 println!("Now, balance white auto is continuous");
172 Ok(())
173}
174
175#[cfg(feature = "solo")]
176pub fn gxi_set_balance_white_auto_once() -> Result<()> {
177 gxi_set_feature_value(GX_FEATURE_ID::GX_ENUM_BALANCE_WHITE_AUTO,&2i64)?;
178 println!("Now, balance white auto is once");
179 Ok(())
180}
181
182#[cfg(feature = "solo")]
183pub fn gxi_get_awb_lamp_house() -> Result<i64> {
184 let awb_lamp_house:i64 = gxi_get_feature_value(GX_FEATURE_ID::GX_ENUM_AWB_LAMP_HOUSE)?;
185 println!("Now, awbroi lamp house is {}",awb_lamp_house);
186 Ok(awb_lamp_house)
187}
188
189#[cfg(feature = "solo")]
190pub fn gxi_set_awb_lamp_house(awb_lamp_house:i64) -> Result<()> {
191 gxi_set_feature_value(GX_FEATURE_ID::GX_ENUM_AWB_LAMP_HOUSE,&awb_lamp_house)?;
192 println!("Now, awbroi lamp house is {}",awb_lamp_house);
193 Ok(())
194}
195
196#[cfg(feature = "solo")]
197pub fn gxi_set_awb_lamp_house_adaptive() -> Result<()> {
198 gxi_set_feature_value(GX_FEATURE_ID::GX_ENUM_AWB_LAMP_HOUSE,&0i64)?;
199 println!("Now, awbroi lamp house is adaptive");
200 Ok(())
201}
202
203#[cfg(feature = "solo")]
204pub fn gxi_get_awbroi_width() -> Result<i64> {
205 let awbroi_width:i64 = gxi_get_feature_value(GX_FEATURE_ID::GX_INT_AWBROI_WIDTH)?;
206 println!("Now, awbroi width is {}",awbroi_width);
207 Ok(awbroi_width)
208}
209
210#[cfg(feature = "solo")]
211pub fn gxi_set_awbroi_width(awbroi_width:i64) -> Result<()> {
212 gxi_set_feature_value(GX_FEATURE_ID::GX_INT_AWBROI_WIDTH,&awbroi_width)?;
213 println!("Now, awbroi width is {}",awbroi_width);
214 Ok(())
215}
216
217#[cfg(feature = "solo")]
218pub fn gxi_get_awbroi_height() -> Result<i64> {
219 let awbroi_height:i64 = gxi_get_feature_value(GX_FEATURE_ID::GX_INT_AWBROI_HEIGHT)?;
220 println!("Now, awbroi height is {}",awbroi_height);
221 Ok(awbroi_height)
222}
223
224#[cfg(feature = "solo")]
225pub fn gxi_set_awbroi_height(awbroi_height:i64) -> Result<()> {
226 gxi_set_feature_value(GX_FEATURE_ID::GX_INT_AWBROI_HEIGHT,&awbroi_height)?;
227 println!("Now, awbroi height is {}",awbroi_height);
228 Ok(())
229}
230
231#[cfg(feature = "solo")]
232pub fn gxi_get_awbroi_offset_x() -> Result<i64> {
233 let awbroi_offset_x:i64 = gxi_get_feature_value(GX_FEATURE_ID::GX_INT_AWBROI_OFFSETX)?;
234 println!("Now, awbroi offset x is {}",awbroi_offset_x);
235 Ok(awbroi_offset_x)
236}
237
238#[cfg(feature = "solo")]
239pub fn gxi_set_awbroi_offset_x(awbroi_offset_x:i64) -> Result<()> {
240 gxi_set_feature_value(GX_FEATURE_ID::GX_INT_AWBROI_OFFSETX,&awbroi_offset_x)?;
241 println!("Now, awbroi offset x is {}",awbroi_offset_x);
242 Ok(())
243}
244
245#[cfg(feature = "solo")]
246pub fn gxi_get_awbroi_offset_y() -> Result<i64> {
247 let awbroi_offset_y:i64 = gxi_get_feature_value(GX_FEATURE_ID::GX_INT_AWBROI_OFFSETY)?;
248 println!("Now, awbroi offset y is {}",awbroi_offset_y);
249 Ok(awbroi_offset_y)
250}
251
252#[cfg(feature = "solo")]
253pub fn gxi_set_awbroi_offset_y(awbroi_offset_y:i64) -> Result<()> {
254 gxi_set_feature_value(GX_FEATURE_ID::GX_INT_AWBROI_OFFSETY,&awbroi_offset_y)?;
255 println!("Now, awbroi offset y is {}",awbroi_offset_y);
256 Ok(())
257}