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
pub const DEVICESCHEDULERMODE_PSEUDO_SOLO: u8 = 0x00;
pub const DEVICESCHEDULERMODE_STREAMING: u8 = 0x01;
pub const DEVICESCHEDULERMODE_HISTOGRAM: u8 = 0x02;

pub const DEVICEREADOUTMODE_SINGLE_SD: u8 = 0x00 << 2;
pub const DEVICEREADOUTMODE_DUAL_SD: u8 = 0x01 << 2;
pub const DEVICEREADOUTMODE_SPLIT_READOUT: u8 = 0x02 << 2;
pub const DEVICEREADOUTMODE_SPLIT_MANUAL: u8 = 0x03 << 2;

// pub const DEVICEMEASUREMENTMODE_STOP: u8 = 0x00;
// pub const DEVICEMEASUREMENTMODE_SINGLESHOT: u8 = 0x10;
// pub const DEVICEMEASUREMENTMODE_BACKTOBACK: u8 = 0x20;
// pub const DEVICEMEASUREMENTMODE_TIMED: u8 = 0x40;
// pub const DEVICEMEASUREMENTMODE_ABORT: u8 = 0x80;

pub const DEVICEMEASUREMENTMODE_MODE_MASK: u8 = 0xF0;
pub const DEVICEMEASUREMENTMODE_STOP_MASK: u8 = 0x0F;

pub const GROUPEDPARAMETERHOLD_ID_MASK: u8 = 0x02;

pub const EWOK_I2C_DEV_ADDR_DEFAULT: u8 = 0x29;

pub const OSC_FREQUENCY: u16 = 0x00;
pub const OSC_TRIM_DEFAULT: u8 = 0x00;
pub const OSC_FREQ_SET_DEFAULT: u8 = 0x00;

pub const RANGE_HISTOGRAM_REF: u8 = 0x08;
pub const RANGE_HISTOGRAM_RET: u8 = 0x10;
pub const RANGE_HISTOGRAM_BOTH: u8 = 0x18;
pub const RANGE_HISTOGRAM_INIT: u8 = 0x20;
pub const RANGE_VHV_INIT: u8 = 0x40;

pub const RESULT_RANGE_STATUS: u8 = 0x1F;

pub const SYSTEM__SEED_CONFIG__MANUAL: u8 = 0x00;
pub const SYSTEM__SEED_CONFIG__STANDARD: u8 = 0x01;
pub const SYSTEM__SEED_CONFIG__EVEN_UPDATE_ONLY: u8 = 0x02;

pub const INTERRUPT_CONFIG_LEVEL_LOW: u8 = 0x00;
pub const INTERRUPT_CONFIG_LEVEL_HIGH: u8 = 0x01;
pub const INTERRUPT_CONFIG_OUT_OF_WINDOW: u8 = 0x02;
pub const INTERRUPT_CONFIG_IN_WINDOW: u8 = 0x03;
pub const INTERRUPT_CONFIG_NEW_SAMPLE_READY: u8 = 0x20;

pub const CLEAR_RANGE_INT: u8 = 0x01;
pub const CLEAR_ERROR_INT: u8 = 0x02;

pub const SEQUENCE_VHV_EN: u8 = 0x01;
pub const SEQUENCE_PHASECAL_EN: u8 = 0x02;
pub const SEQUENCE_REFERENCE_PHASE_EN: u8 = 0x04;
pub const SEQUENCE_DSS1_EN: u8 = 0x08;
pub const SEQUENCE_DSS2_EN: u8 = 0x10;
pub const SEQUENCE_MM1_EN: u8 = 0x20;
pub const SEQUENCE_MM2_EN: u8 = 0x40;
pub const SEQUENCE_RANGE_EN: u8 = 0x80;

pub const DSS_CONTROL__ROI_SUBTRACT: u8 = 0x20;
pub const DSS_CONTROL__ROI_INTERSECT: u8 = 0x10;

pub const DSS_CONTROL__MODE_DISABLED: u8 = 0x00;
pub const DSS_CONTROL__MODE_TARGET_RATE: u8 = 0x01;
pub const DSS_CONTROL__MODE_EFFSPADS: u8 = 0x02;
pub const DSS_CONTROL__MODE_BLOCKSELECT: u8 = 0x03;

pub const RANGING_CORE__SPAD_READOUT__STANDARD: u8 = 0x45;
pub const RANGING_CORE__SPAD_READOUT__RETURN_ARRAY_ONLY: u8 = 0x05;
pub const RANGING_CORE__SPAD_READOUT__REFERENCE_ARRAY_ONLY: u8 = 0x55;
pub const RANGING_CORE__SPAD_READOUT__RETURN_SPLIT_ARRAY: u8 = 0x25;
pub const RANGING_CORE__SPAD_READOUT__CALIB_PULSES: u8 = 0xF5;

pub const LASER_SAFETY__KEY_VALUE: u8 = 0x6C;

pub const RANGE_STATUS__RANGE_STATUS_MASK: u8 = 0x1F;
pub const RANGE_STATUS__MAX_THRESHOLD_HIT_MASK: u8 = 0x20;
pub const RANGE_STATUS__MIN_THRESHOLD_HIT_MASK: u8 = 0x40;
pub const RANGE_STATUS__GPH_ID_RANGE_STATUS_MASK: u8 = 0x80;

pub const INTERRUPT_STATUS__INT_STATUS_MASK: u8 = 0x07;
pub const INTERRUPT_STATUS__INT_ERROR_STATUS_MASK: u8 = 0x18;
pub const INTERRUPT_STATUS__GPH_ID_INT_STATUS_MASK: u8 = 0x20;