gxci/hal/control/
analog.rs

1//! Placeholder
2use 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}