mirror of
https://github.com/DreamSourceLab/DSView.git
synced 2025-01-13 13:32:53 +08:00
fix: When a new device is connected, the current acquisition task is forced to end
This commit is contained in:
parent
8f41334f05
commit
4050bd7b6f
@ -554,6 +554,11 @@ namespace pv
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (_session->is_working()){
|
||||||
|
dsv_info("Save data: stop the current device.");
|
||||||
|
_session->stop_capture();
|
||||||
|
}
|
||||||
|
|
||||||
_session->set_saving(true);
|
_session->set_saving(true);
|
||||||
|
|
||||||
StoreProgress *dlg = new StoreProgress(_session, this);
|
StoreProgress *dlg = new StoreProgress(_session, this);
|
||||||
@ -564,6 +569,11 @@ namespace pv
|
|||||||
{
|
{
|
||||||
using pv::dialogs::StoreProgress;
|
using pv::dialogs::StoreProgress;
|
||||||
|
|
||||||
|
if (_session->is_working()){
|
||||||
|
dsv_info("Export data: stop the current device.");
|
||||||
|
_session->stop_capture();
|
||||||
|
}
|
||||||
|
|
||||||
StoreProgress *dlg = new StoreProgress(_session, this);
|
StoreProgress *dlg = new StoreProgress(_session, this);
|
||||||
dlg->export_run();
|
dlg->export_run();
|
||||||
}
|
}
|
||||||
@ -1112,7 +1122,7 @@ namespace pv
|
|||||||
case Qt::Key_S:
|
case Qt::Key_S:
|
||||||
_sampling_bar->run_or_stop();
|
_sampling_bar->run_or_stop();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case Qt::Key_I:
|
case Qt::Key_I:
|
||||||
_sampling_bar->run_or_stop_instant();
|
_sampling_bar->run_or_stop_instant();
|
||||||
break;
|
break;
|
||||||
@ -1683,6 +1693,7 @@ namespace pv
|
|||||||
if (_session->get_device()->is_demo() == false)
|
if (_session->get_device()->is_demo() == false)
|
||||||
{
|
{
|
||||||
QString msgText = L_S(STR_PAGE_MSG, S_ID(IDS_MSG_TO_SWITCH_DEVICE), "To switch the new device?");
|
QString msgText = L_S(STR_PAGE_MSG, S_ID(IDS_MSG_TO_SWITCH_DEVICE), "To switch the new device?");
|
||||||
|
|
||||||
if (MsgBox::Confirm(msgText) == false){
|
if (MsgBox::Confirm(msgText) == false){
|
||||||
_sampling_bar->update_device_list(); // Update the list only.
|
_sampling_bar->update_device_list(); // Update the list only.
|
||||||
return;
|
return;
|
||||||
|
@ -169,7 +169,11 @@ namespace pv
|
|||||||
bool SigSession::set_default_device()
|
bool SigSession::set_default_device()
|
||||||
{
|
{
|
||||||
assert(!_is_saving);
|
assert(!_is_saving);
|
||||||
assert(!_is_working);
|
|
||||||
|
if (_is_working){
|
||||||
|
dsv_info("The current device is working, now to stop it.");
|
||||||
|
stop_capture();
|
||||||
|
}
|
||||||
|
|
||||||
struct ds_device_base_info *array = NULL;
|
struct ds_device_base_info *array = NULL;
|
||||||
int count = 0;
|
int count = 0;
|
||||||
@ -1772,7 +1776,7 @@ namespace pv
|
|||||||
if (_capture_data->get_analog()->last_ended() == false)
|
if (_capture_data->get_analog()->last_ended() == false)
|
||||||
dsv_err("%s", "The collected data is error!");
|
dsv_err("%s", "The collected data is error!");
|
||||||
|
|
||||||
// trigger next collect
|
// trig next collect
|
||||||
if (!_is_instant && is_repeat_mode() && _is_working && event == DS_EV_COLLECT_TASK_END)
|
if (!_is_instant && is_repeat_mode() && _is_working && event == DS_EV_COLLECT_TASK_END)
|
||||||
{
|
{
|
||||||
_callback->trigger_message(DSV_MSG_TRIG_NEXT_COLLECT);
|
_callback->trigger_message(DSV_MSG_TRIG_NEXT_COLLECT);
|
||||||
@ -1787,16 +1791,16 @@ namespace pv
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case DS_EV_NEW_DEVICE_ATTACH:
|
case DS_EV_NEW_DEVICE_ATTACH:
|
||||||
|
_callback->trigger_message(DSV_MSG_NEW_USB_DEVICE);
|
||||||
|
break;
|
||||||
|
|
||||||
case DS_EV_CURRENT_DEVICE_DETACH:
|
case DS_EV_CURRENT_DEVICE_DETACH:
|
||||||
{
|
{
|
||||||
if (_is_working)
|
if (_is_working)
|
||||||
stop_capture();
|
stop_capture();
|
||||||
|
|
||||||
if (DS_EV_NEW_DEVICE_ATTACH == event)
|
_callback->trigger_message(DSV_MSG_CURRENT_DEVICE_DETACHED);
|
||||||
_callback->trigger_message(DSV_MSG_NEW_USB_DEVICE);
|
}
|
||||||
else
|
|
||||||
_callback->trigger_message(DSV_MSG_CURRENT_DEVICE_DETACHED);
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DS_EV_INACTIVE_DEVICE_DETACH:
|
case DS_EV_INACTIVE_DEVICE_DETACH:
|
||||||
|
@ -1285,11 +1285,11 @@ SR_API void ds_log_level(int level);
|
|||||||
|
|
||||||
#define DS_EV_COLLECT_TASK_END_BY_ERROR 106
|
#define DS_EV_COLLECT_TASK_END_BY_ERROR 106
|
||||||
|
|
||||||
enum bbbb
|
enum DS_DEVICE_EVENT_TYPE
|
||||||
{
|
{
|
||||||
DS_EV_NEW_DEVICE_ATTACH = 1,
|
DS_EV_NEW_DEVICE_ATTACH = 1,
|
||||||
DS_EV_CURRENT_DEVICE_DETACH = 2,
|
DS_EV_CURRENT_DEVICE_DETACH = 2,
|
||||||
DS_EV_INACTIVE_DEVICE_DETACH = 3,
|
DS_EV_INACTIVE_DEVICE_DETACH = 3,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user