| 2029 | } |
| 2030 | |
| 2031 | void SigSession::on_device_lib_event(int event) |
| 2032 | { |
| 2033 | if (_callback == NULL) |
| 2034 | { |
| 2035 | dsv_detail("The callback is null, so the device event was ignored."); |
| 2036 | return; |
| 2037 | } |
| 2038 | |
| 2039 | switch (event) |
| 2040 | { |
| 2041 | case DS_EV_DEVICE_RUNNING: |
| 2042 | _device_status = ST_RUNNING; |
| 2043 | set_receive_data_len(0); |
| 2044 | break; |
| 2045 | |
| 2046 | case DS_EV_DEVICE_STOPPED: |
| 2047 | _device_status = ST_STOPPED; |
| 2048 | // Confirm that SR_DF_END was received |
| 2049 | if ( !_capture_data->get_logic()->last_ended() |
| 2050 | || !_capture_data->get_dso()->last_ended() |
| 2051 | || !_capture_data->get_analog()->last_ended()) |
| 2052 | { |
| 2053 | dsv_err("Error!The data is not completed."); |
| 2054 | assert(false); |
| 2055 | } |
| 2056 | break; |
| 2057 | |
| 2058 | case DS_EV_COLLECT_TASK_START: |
| 2059 | _callback->trigger_message(DSV_MSG_COLLECT_START); |
| 2060 | break; |
| 2061 | |
| 2062 | case DS_EV_COLLECT_TASK_END: |
| 2063 | case DS_EV_COLLECT_TASK_END_BY_ERROR: |
| 2064 | case DS_EV_COLLECT_TASK_END_BY_DETACHED: |
| 2065 | { |
| 2066 | _callback->trigger_message(DSV_MSG_COLLECT_END); |
| 2067 | |
| 2068 | if (_capture_data->get_logic()->last_ended() == false) |
| 2069 | dsv_err("The collected data is error!"); |
| 2070 | |
| 2071 | if (_capture_data->get_dso()->last_ended() == false) |
| 2072 | dsv_err("The collected data is error!"); |
| 2073 | |
| 2074 | if (_capture_data->get_analog()->last_ended() == false) |
| 2075 | dsv_err("The collected data is error!"); |
| 2076 | |
| 2077 | // trig next collect |
| 2078 | if (is_repeat_mode() && _is_working && event == DS_EV_COLLECT_TASK_END) |
| 2079 | { |
| 2080 | _callback->trigger_message(DSV_MSG_TRIG_NEXT_COLLECT); |
| 2081 | } |
| 2082 | else |
| 2083 | { |
| 2084 | _is_working = false; |
| 2085 | _is_instant = false; |
| 2086 | _callback->trigger_message(DSV_MSG_END_COLLECT_WORK); |
| 2087 | } |
| 2088 | } |
no test coverage detected