firmware  v0.1.2
Chromation Spectrometer Dev-Kit
test_VisCmd.h
1 #ifndef _TEST_VISCMD_H
2 #define _TEST_VISCMD_H
3 
4 #ifdef LIS
5 // LisReadout
6 void LisReadout_waits_for_Lis_Sync_to_go_HIGH_then_go_LOW(void);
7 void LisReadout_reads_one_pixel_on_each_rising_edge_of_Lis_Clk(void);
8 void LisReadout_LOOP_wait_for_the_rising_edge_of_Lis_Clk(void);
9 void LisReadout_LOOP_start_the_ADC_conversion(void);
10 void LisReadout_LOOP_wait_for_45_cycles_of_10MHz_clock(void);
11 void LisReadout_LOOP_start_ADC_readout(void);
12 void LisReadout_LOOP_wait_for_most_significant_byte_ADC_readout(void);
13 void LisReadout_LOOP_save_MSB_to_frame_buffer(void);
14 void LisReadout_LOOP_wait_for_least_significant_byte_ADC_readout(void);
15 void LisReadout_LOOP_save_LSB_to_frame_buffer(void);
16 
17 // SetSensorConfig
18 void SetSensorConfig_replies_OK_to_confirm_it_recognized_this_command(void);
19 void SetSensorConfig_receives_three_bytes_of_config_from_Bridge(void);
20 void SetSensorConfig_does_not_update_config_globals_if_config_is_invalid(void);
21 void SetSensorConfig_replies_ERROR_if_binning_is_invalid(void);
22 void SetSensorConfig_replies_ERROR_if_gain_is_invalid(void);
23 void SetSensorConfig_replies_ERROR_if_active_rows_is_invalid(void);
24 void SetSensorConfig_does_not_program_LIS_770i_if_config_is_invalid(void);
25 void SetSensorConfig_writes_valid_config_to_LIS_770i_programmable_setup_register(void);
26 void SetSensorConfig_replies_OK_if_all_config_values_are_valid(void);
27 void SetSensorConfig_the_OK_is_sent_after_LIS_is_programmed_with_new_config(void);
28 
29 // GetSensorConfig()
30 void GetSensorConfig_sends_OK(void);
31 void GetSensorConfig_sends_binning(void);
32 void GetSensorConfig_sends_gain(void);
33 void GetSensorConfig_sends_row_bitmap(void);
34 #endif // ifdef LIS
35 
36 #ifdef S13131
37 // S13131Readout
38 void S13131Readout_must_be_called_immediately_after_S13131Expose(void);
39 void S13131Readout_stores_pixel_values_in_a_global_array_named_frame(void);
40 void S13131Readout_reads_one_pixel_on_each_falling_edge_of_CLK(void);
41 void S13131Readout_LOOP_wait_for_a_CLK_falling_edge(void);
42 void S13131Readout_LOOP_start_the_ADC_conversion(void);
43 void S13131Readout_LOOP_wait_for_45_cycles_of_10MHz_clock(void);
44 void S13131Readout_LOOP_start_ADC_readout(void);
45 void S13131Readout_LOOP_wait_for_most_significant_byte_ADC_readout(void);
46 void S13131Readout_LOOP_save_MSB_to_frame_buffer(void);
47 void S13131Readout_LOOP_wait_for_least_significant_byte_ADC_readout(void);
48 void S13131Readout_LOOP_save_LSB_to_frame_buffer(void);
49 #endif // S13131
50 
51 /* ------------------------------------ */
52 /* | Tests non-specific to the sensor | */
53 /* ------------------------------------ */
54 
55 // GetSensorLED()
56 void GetSensorLED_waits_for_byte_led_num(void);
57 void GetSensorLED_reads_byte_led_num(void);
58 void GetSensorLED_sends_OK_and_LED_SETTING_if_led_num_is_valid(void);
59 void GetSensorLED_sends_ERROR_and_pads_second_byte_if_led_num_is_invalid(void);
60 
61 // SetSensorLED()
62 void SetSensorLED_waits_for_byte_led_num(void);
63 void SetSensorLED_reads_byte_led_num(void);
64 void SetSensorLED_waits_for_byte_led_setting(void);
65 void SetSensorLED_reads_byte_led_setting(void);
66 void SetSensorLED_sends_ERROR_if_led_num_is_invalid(void);
67 void SetSensorLED_sends_ERROR_if_led_setting_is_invalid(void);
68 void SetSensorLED_applies_LED_setting_if_valid(void);
69 void SetSensorLED_sends_OK_if_num_and_setting_are_valid(void);
70 
71 // LedNumIsValid()
72 void LedNumIsValid_returns_TRUE_if_led_num_is_0(void);
73 void LedNumIsValid_returns_TRUE_if_led_num_is_1(void);
74 void LedNumIsValid_returns_FALSE_if_led_num_is_not_0_or_1(void);
75 
76 // LedSettingIsValid()
77 void LedSettingIsValid_returns_TRUE_if_led_setting_is_OFF(void);
78 void LedSettingIsValid_returns_TRUE_if_led_setting_is_GREEN(void);
79 void LedSettingIsValid_returns_TRUE_if_led_setting_is_RED(void);
80 void LedSettingIsValid_returns_FALSE_if_led_setting_is_not_0_1_or_2(void);
81 
82 // GetExposure()
83 void GetExposure_sends_OK(void);
84 void GetExposure_sends_MSB_of_exposure_ticks(void);
85 void GetExposure_sends_LSB_of_exposure_ticks(void);
86 
87 // SetExposure()
88 void SetExposure_waits_for_byte_exposure_MSB(void);
89 void SetExposure_reads_byte_exposure_MSB(void);
90 void SetExposure_waits_for_byte_exposure_LSB(void);
91 void SetExposure_reads_byte_exposure_LSB(void);
92 void SetExposure_updates_global_exposure_ticks(void);
93 void SetExposure_sends_OK(void);
94 
95 // CaptureFrame()
96 void CaptureFrame_sends_OK(void);
97 void CaptureFrame_checks_binning_to_determine_number_of_pixels_in_frame(void);
98 void CaptureFrame_sends_num_pixels_MSB(void);
99 void CaptureFrame_sends_num_pixels_LSB(void);
100 void CaptureFrame_exposes_the_pixels(void);
101 void CaptureFrame_does_readout_of_num_pixels_into_the_frame_buffer(void);
102 void CaptureFrame_sends_the_pixel_readings_stored_in_the_frame_buffer(void);
103 
104 // GetPeak(start_pixel, stop_pixel) -> peak_counts
105 void GetPeak_finds_the_peak_between_start_pixel_and_stop_pixel_inclusive(void);
106 void GetPeak_ignores_peaks_at_pixels_before_start_pixel_and_after_stop_pixel(void);
107 
108 // GetSensorHash()
109 void GetSensorHash_sends_first_three_bytes_of_SHA1_hash_of_sensor(void);
110 void GetSensorHash_hash_sends_OK(void);
111 
112 #endif // _TEST_VISCMD_H