forked from Ivasoft/DSView
DEMO
This commit is contained in:
@@ -116,8 +116,7 @@ namespace pv
|
||||
_is_auto_switch_device = false;
|
||||
_is_save_confirm_msg = false;
|
||||
|
||||
_demo_load_decoder = TRUE;
|
||||
_demo_auto_start = FALSE;
|
||||
_pattern_mode = "RANDOM";
|
||||
|
||||
setup_ui();
|
||||
|
||||
@@ -1677,11 +1676,6 @@ namespace pv
|
||||
break;
|
||||
|
||||
case DSV_MSG_START_COLLECT_WORK:
|
||||
/*demo下逻辑分析仪采集一次后,设置自动采集*/
|
||||
if (_device_agent->is_demo() && _device_agent->get_work_mode() == LOGIC)
|
||||
{
|
||||
_demo_auto_start = TRUE;
|
||||
}
|
||||
update_toolbar_view_status();
|
||||
_view->on_state_changed(false);
|
||||
_protocol_widget->update_view_status();
|
||||
@@ -1721,8 +1715,6 @@ namespace pv
|
||||
|
||||
if (_device_agent->is_hardware())
|
||||
{
|
||||
/*切换到硬件设备,取消demo的自动采集*/
|
||||
_demo_auto_start = FALSE;
|
||||
_session->on_load_config_end();
|
||||
}
|
||||
|
||||
@@ -1732,8 +1724,6 @@ namespace pv
|
||||
|
||||
if (_device_agent->is_file())
|
||||
{
|
||||
/*切换到硬件设备,取消demo的自动采集(目前使用gboolean类型需要includeligsigork)*/
|
||||
_demo_auto_start = FALSE;
|
||||
check_session_file_version();
|
||||
|
||||
bool bDoneDecoder = false;
|
||||
@@ -1750,19 +1740,25 @@ namespace pv
|
||||
|
||||
if (_device_agent->is_demo())
|
||||
{
|
||||
/*demo下逻辑分析仪如果信号模式不为RANDOM,导入解码器*/
|
||||
if(_device_agent->get_work_mode() == LOGIC)
|
||||
{
|
||||
GVariant *gvar = _device_agent->get_config(NULL,NULL,SR_CONF_LOAD_DECODER);
|
||||
GVariant *gvar = _device_agent->get_config(NULL,NULL,SR_CONF_PATTERN_MODE);
|
||||
if(gvar != NULL)
|
||||
{
|
||||
gboolean load_decoder = g_variant_get_boolean(gvar);
|
||||
if(load_decoder)
|
||||
_pattern_mode = g_variant_get_string(gvar,NULL);
|
||||
g_variant_unref(gvar);
|
||||
}
|
||||
|
||||
_protocol_widget->del_all_protocol();
|
||||
if(_device_agent->get_work_mode() == LOGIC)
|
||||
{
|
||||
_view->auto_set_max_scale();
|
||||
|
||||
if(_pattern_mode != "RANDOM")
|
||||
{
|
||||
//加载解码器
|
||||
StoreSession ss(_session);
|
||||
QJsonArray deArray = get_decoder_json_from_file(_device_agent->path());
|
||||
ss.load_decoders(_protocol_widget, deArray);
|
||||
ss.load_decoders(_protocol_widget, deArray);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1797,20 +1793,21 @@ namespace pv
|
||||
|
||||
if(_device_agent->is_demo())
|
||||
{
|
||||
/*demo下逻辑分析仪如果信号模式不为RANDOM,导入解码器*/
|
||||
GVariant *gvar = _device_agent->get_config(NULL,NULL,SR_CONF_PATTERN_MODE);
|
||||
if(gvar != NULL)
|
||||
{
|
||||
_pattern_mode = g_variant_get_string(gvar,NULL);
|
||||
g_variant_unref(gvar);
|
||||
}
|
||||
_protocol_widget->del_all_protocol();
|
||||
|
||||
if(_device_agent->get_work_mode() == LOGIC)
|
||||
{
|
||||
GVariant *gvar = _device_agent->get_config(NULL,NULL,SR_CONF_LOAD_DECODER);
|
||||
if(gvar != NULL)
|
||||
if(_pattern_mode != "RANDOM")
|
||||
{
|
||||
gboolean load_decoder = g_variant_get_boolean(gvar);
|
||||
if(load_decoder)
|
||||
{
|
||||
StoreSession ss(_session);
|
||||
QJsonArray deArray = get_decoder_json_from_file(_device_agent->path());
|
||||
ss.load_decoders(_protocol_widget, deArray);
|
||||
}
|
||||
StoreSession ss(_session);
|
||||
QJsonArray deArray = get_decoder_json_from_file(_device_agent->path());
|
||||
ss.load_decoders(_protocol_widget, deArray);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1895,48 +1892,46 @@ namespace pv
|
||||
break;
|
||||
|
||||
case DSV_MSG_END_DEVICE_OPTIONS:
|
||||
if(_device_agent->is_demo())
|
||||
if(_device_agent->is_demo() &&_device_agent->get_work_mode() == LOGIC)
|
||||
{
|
||||
/*信号模式发生修改,更新界面*/
|
||||
GVariant *gvar = _device_agent->get_config(NULL,NULL,SR_CONF_DEMO_CHANGE);
|
||||
GVariant *gvar = _device_agent->get_config(NULL,NULL,SR_CONF_PATTERN_MODE);
|
||||
if(gvar != NULL)
|
||||
{
|
||||
gboolean pattern_change = g_variant_get_boolean(gvar);
|
||||
if(pattern_change)
|
||||
std::string pattern_mode = g_variant_get_string(gvar,NULL);
|
||||
g_variant_unref(gvar);
|
||||
if(pattern_mode != _pattern_mode)
|
||||
{
|
||||
reset_all_view();
|
||||
load_device_config();
|
||||
_pattern_mode = pattern_mode;
|
||||
_device_agent->set_config(NULL,NULL,SR_CONF_DEMO_INIT,g_variant_new_boolean(TRUE));
|
||||
_device_agent->update();
|
||||
|
||||
_session->init_signals();
|
||||
update_toolbar_view_status();
|
||||
_device_agent->set_config(NULL,NULL,SR_CONF_DEMO_CHANGE,g_variant_new_boolean(FALSE));
|
||||
}
|
||||
}
|
||||
_sampling_bar->update_sample_rate_list();
|
||||
|
||||
/*demo下逻辑分析仪如果信号模式不为RANDOM,导入解码器*/
|
||||
_protocol_widget->del_all_protocol();
|
||||
if(_device_agent->get_work_mode() == LOGIC)
|
||||
{
|
||||
_view->auto_set_max_scale();
|
||||
|
||||
GVariant *gvar = _device_agent->get_config(NULL,NULL,SR_CONF_LOAD_DECODER);
|
||||
if(gvar != NULL)
|
||||
{
|
||||
gboolean load_decoder = g_variant_get_boolean(gvar);
|
||||
if(load_decoder)
|
||||
_protocol_widget->del_all_protocol();
|
||||
|
||||
if(_pattern_mode != "RANDOM")
|
||||
{
|
||||
StoreSession ss(_session);
|
||||
QJsonArray deArray = get_decoder_json_from_file(_device_agent->path());
|
||||
ss.load_decoders(_protocol_widget, deArray);
|
||||
ss.load_decoders(_protocol_widget, deArray);
|
||||
_session->start_capture(false);
|
||||
}
|
||||
}
|
||||
|
||||
/*demo下逻辑分析仪执行一次采集后,切换信号模式自动采集*/
|
||||
if(_demo_auto_start)
|
||||
{
|
||||
_session->start_capture(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case DSV_MSG_BEGIN_DEVICE_OPTIONS:
|
||||
if(_device_agent->is_demo())
|
||||
{
|
||||
GVariant *gvar = _device_agent->get_config(NULL,NULL,SR_CONF_PATTERN_MODE);
|
||||
if(gvar != NULL)
|
||||
{
|
||||
_pattern_mode = g_variant_get_string(gvar,NULL);
|
||||
g_variant_unref(gvar);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -33,9 +33,6 @@
|
||||
#include <QJsonDocument>
|
||||
#include <chrono>
|
||||
|
||||
//没有gboolean类型?
|
||||
#include "libsigrok.h"
|
||||
|
||||
class QAction;
|
||||
class QMenuBar;
|
||||
class QMenu;
|
||||
@@ -217,8 +214,7 @@ private:
|
||||
bool _is_auto_switch_device;
|
||||
high_resolution_clock::time_point _last_key_press_time;
|
||||
bool _is_save_confirm_msg;
|
||||
gboolean _demo_load_decoder;
|
||||
gboolean _demo_auto_start;
|
||||
std::string _pattern_mode;
|
||||
|
||||
int _key_value;
|
||||
bool _key_vaild;
|
||||
|
||||
@@ -758,7 +758,10 @@ namespace pv
|
||||
std::vector<view::Signal *> sigs;
|
||||
unsigned int logic_probe_count = 0;
|
||||
unsigned int dso_probe_count = 0;
|
||||
unsigned int analog_probe_count = 0;
|
||||
unsigned int analog_probe_count = 0;
|
||||
|
||||
set_cur_snap_samplerate(_device_agent.get_sample_rate());
|
||||
set_cur_samplelimits(_device_agent.get_sample_limit());
|
||||
|
||||
// Detect what data types we will receive
|
||||
if (_device_agent.have_instance())
|
||||
@@ -841,6 +844,9 @@ namespace pv
|
||||
int dso_chan_num = 0;
|
||||
int all_chann_num = 0;
|
||||
|
||||
set_cur_snap_samplerate(_device_agent.get_sample_rate());
|
||||
set_cur_samplelimits(_device_agent.get_sample_limit());
|
||||
|
||||
// Make the logic probe list
|
||||
for (GSList *l = _device_agent.get_channels(); l; l = l->next)
|
||||
{
|
||||
@@ -1950,31 +1956,6 @@ namespace pv
|
||||
switch (msg)
|
||||
{
|
||||
case DSV_MSG_DEVICE_OPTIONS_UPDATED:
|
||||
if(_device_agent.is_demo())
|
||||
{
|
||||
GVariant *gvar = _device_agent.get_config(NULL,NULL,SR_CONF_DEMO_CHANGE);
|
||||
if(gvar != NULL)
|
||||
{
|
||||
gboolean pattern_change = g_variant_get_boolean(gvar);
|
||||
if(pattern_change)
|
||||
{
|
||||
/*底层重置工作参数*/
|
||||
_device_agent.set_config(NULL,NULL,SR_CONF_DEMO_INIT,g_variant_new_boolean(TRUE));
|
||||
|
||||
_device_agent.update();
|
||||
|
||||
clear_all_decoder();
|
||||
|
||||
_capture_data->clear();
|
||||
_view_data->clear();
|
||||
_capture_data = _view_data;
|
||||
|
||||
init_signals();
|
||||
set_cur_snap_samplerate(_device_agent.get_sample_rate());
|
||||
set_cur_samplelimits(_device_agent.get_sample_limit());
|
||||
}
|
||||
}
|
||||
}
|
||||
reload();
|
||||
break;
|
||||
|
||||
@@ -2094,7 +2075,6 @@ namespace pv
|
||||
// Nonthing.
|
||||
}
|
||||
|
||||
//**
|
||||
bool SigSession::switch_work_mode(int mode)
|
||||
{
|
||||
assert(!_is_working);
|
||||
@@ -2103,7 +2083,6 @@ namespace pv
|
||||
if (cur_mode != mode)
|
||||
{
|
||||
GVariant *val = g_variant_new_int16(mode);
|
||||
/*底层重置工作参数*/
|
||||
_device_agent.set_config(NULL, NULL, SR_CONF_DEVICE_MODE, val);
|
||||
|
||||
if (cur_mode == LOGIC){
|
||||
|
||||
@@ -410,6 +410,7 @@ public:
|
||||
}
|
||||
|
||||
void on_load_config_end();
|
||||
void init_signals();
|
||||
|
||||
private:
|
||||
void set_cur_samplelimits(uint64_t samplelimits);
|
||||
@@ -446,7 +447,7 @@ private:
|
||||
void capture_init();
|
||||
void nodata_timeout();
|
||||
void feed_timeout();
|
||||
void init_signals();
|
||||
|
||||
void clear_decode_result();
|
||||
void attach_data_to_signal(SessionData *data);
|
||||
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
|
||||
/* Message logging helpers with subsystem-specific prefix string. */
|
||||
|
||||
#undef LOG_PREFIX
|
||||
#undef LOG_PREFIX
|
||||
#define LOG_PREFIX "demo: "
|
||||
|
||||
/* The size of chunks to send through the session bus. */
|
||||
@@ -114,7 +114,7 @@ static int init_pattern_mode_list()
|
||||
|
||||
static int get_pattern_mode_index_by_string(uint8_t device_mode , const char* str)
|
||||
{
|
||||
int index = PATTERN_INVALID,
|
||||
int index = PATTERN_INVALID,
|
||||
i = PATTERN_RANDOM;
|
||||
if (device_mode == LOGIC)
|
||||
{
|
||||
@@ -269,13 +269,13 @@ static int scan_dsl_file(struct sr_dev_inst *sdi)
|
||||
get_mode = TRUE;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (get_mode)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
if(mode == LOGIC)
|
||||
@@ -319,7 +319,6 @@ static int scan_dsl_file(struct sr_dev_inst *sdi)
|
||||
}
|
||||
g_dir_close(dir);
|
||||
|
||||
//至少有一个协议文件,则设置第一个文件为默认
|
||||
if (logic_index > 1)
|
||||
{
|
||||
cur_sample_generator = pre_sample_generator = PATTERN_DEFAULT;
|
||||
@@ -336,7 +335,6 @@ static int scan_dsl_file(struct sr_dev_inst *sdi)
|
||||
}
|
||||
}
|
||||
|
||||
//通过信号模式索引获取文件名
|
||||
static char* get_dsl_path_by_pattern_mode(uint8_t device_mode , uint8_t pattern_mode)
|
||||
{
|
||||
unzFile archive = NULL;
|
||||
@@ -372,10 +370,9 @@ static char* get_dsl_path_by_pattern_mode(uint8_t device_mode , uint8_t pattern_
|
||||
}
|
||||
strcat(str,".dsl");
|
||||
}
|
||||
|
||||
|
||||
if(pattern_mode != PATTERN_RANDOM)
|
||||
{
|
||||
//检查文件是否有效
|
||||
archive = unzOpen64(str);
|
||||
if (NULL != archive)
|
||||
{
|
||||
@@ -431,7 +428,6 @@ static void adjust_samplerate(struct sr_dev_inst *sdi)
|
||||
|
||||
}
|
||||
|
||||
//初始化random数据
|
||||
static int init_random_data(struct session_vdev * vdev)
|
||||
{
|
||||
uint8_t random_val;
|
||||
@@ -439,7 +435,7 @@ static int init_random_data(struct session_vdev * vdev)
|
||||
{
|
||||
g_free(vdev->logic_buf);
|
||||
}
|
||||
if(!(vdev->logic_buf = g_try_malloc0(SR_MB(10))))
|
||||
if(!(vdev->logic_buf = g_try_malloc0(SR_MB(10))))
|
||||
{
|
||||
return SR_ERR;
|
||||
}
|
||||
@@ -467,13 +463,13 @@ static int hw_init(struct sr_context *sr_ctx)
|
||||
|
||||
static GSList *hw_scan(GSList *options)
|
||||
{
|
||||
struct sr_dev_inst *sdi;
|
||||
struct sr_dev_inst *sdi;
|
||||
struct session_vdev *vdev;
|
||||
GSList *devices;
|
||||
GSList *devices;
|
||||
char str[500];
|
||||
|
||||
(void)options;
|
||||
devices = NULL;
|
||||
(void)options;
|
||||
devices = NULL;
|
||||
|
||||
sr_info("%s", "Scan demo device.");
|
||||
|
||||
@@ -484,22 +480,22 @@ static GSList *hw_scan(GSList *options)
|
||||
return SR_ERR_MALLOC;
|
||||
}
|
||||
|
||||
sdi = sr_dev_inst_new(LOGIC, SR_ST_INACTIVE,
|
||||
sdi = sr_dev_inst_new(LOGIC, SR_ST_INACTIVE,
|
||||
supported_Demo[0].vendor,
|
||||
supported_Demo[0].model,
|
||||
supported_Demo[0].model,
|
||||
supported_Demo[0].model_version);
|
||||
if (!sdi) {
|
||||
if (!sdi) {
|
||||
g_free(vdev);
|
||||
sr_err("Device instance creation failed.");
|
||||
return NULL;
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
sdi->priv = vdev;
|
||||
sdi->driver = di;
|
||||
sdi->driver = di;
|
||||
sdi->dev_type = DEV_TYPE_DEMO;
|
||||
|
||||
devices = g_slist_append(devices, sdi);
|
||||
|
||||
return devices;
|
||||
return devices;
|
||||
}
|
||||
|
||||
static const GSList *hw_dev_mode_list(const struct sr_dev_inst *sdi)
|
||||
@@ -527,7 +523,6 @@ static int hw_dev_open(struct sr_dev_inst *sdi)
|
||||
return SR_OK;
|
||||
}
|
||||
|
||||
//扫描目录文件
|
||||
scan_dsl_file(sdi);
|
||||
struct session_vdev* vdev = sdi->priv;
|
||||
|
||||
@@ -546,7 +541,6 @@ static int hw_dev_open(struct sr_dev_inst *sdi)
|
||||
vdev->unit_bits = 8;
|
||||
}
|
||||
|
||||
//固定值
|
||||
vdev->ref_min = 1;
|
||||
vdev->ref_max = 255;
|
||||
|
||||
@@ -564,7 +558,6 @@ static int hw_dev_open(struct sr_dev_inst *sdi)
|
||||
packet_interval = g_timer_new();
|
||||
run_time = g_timer_new();
|
||||
|
||||
//这个可以再看下怎么改
|
||||
init_random_data(vdev);
|
||||
|
||||
ret = load_virtual_device_session(sdi);
|
||||
@@ -604,12 +597,10 @@ static int hw_dev_close(struct sr_dev_inst *sdi)
|
||||
}
|
||||
|
||||
g_safe_free(vdev->packet_buffer);
|
||||
//数据
|
||||
g_safe_free(vdev->logic_buf);
|
||||
g_safe_free(vdev->analog_buf);
|
||||
g_safe_free(sdi->path);
|
||||
|
||||
//不释放也可以?
|
||||
// g_timer_destroy(packet_interval);
|
||||
// g_timer_destroy(run_time);
|
||||
|
||||
@@ -624,7 +615,7 @@ static int dev_destroy(struct sr_dev_inst *sdi)
|
||||
{
|
||||
assert(sdi);
|
||||
hw_dev_close(sdi);
|
||||
sdi->path = NULL;
|
||||
sdi->path = NULL;
|
||||
sr_dev_inst_free(sdi);
|
||||
}
|
||||
|
||||
@@ -810,17 +801,14 @@ static int config_set(int id, GVariant *data, struct sr_dev_inst *sdi,
|
||||
break;
|
||||
case SR_CONF_DEVICE_MODE:
|
||||
sdi->mode = g_variant_get_int16(data);
|
||||
//恢复默认信号模式
|
||||
switch (sdi->mode)
|
||||
{
|
||||
case LOGIC:
|
||||
//默认为第一个协议模式(后面添加枚举)
|
||||
if("" != get_dsl_path_by_pattern_mode(sdi->mode,PATTERN_DEFAULT))
|
||||
{
|
||||
cur_sample_generator = pre_sample_generator = PATTERN_DEFAULT;
|
||||
sdi->path = g_strdup(get_dsl_path_by_pattern_mode(sdi->mode,PATTERN_DEFAULT));
|
||||
}
|
||||
//没有第一个协议
|
||||
else
|
||||
{
|
||||
cur_sample_generator = pre_sample_generator = PATTERN_RANDOM;
|
||||
@@ -828,11 +816,9 @@ static int config_set(int id, GVariant *data, struct sr_dev_inst *sdi,
|
||||
}
|
||||
break;
|
||||
case DSO:
|
||||
//默认为RANDOM
|
||||
cur_sample_generator = pre_sample_generator = PATTERN_RANDOM;
|
||||
sdi->path = g_strdup("");
|
||||
case ANALOG:
|
||||
//默认为RANDOM
|
||||
cur_sample_generator = pre_sample_generator = PATTERN_RANDOM;
|
||||
sdi->path = g_strdup("");
|
||||
default:
|
||||
@@ -843,7 +829,6 @@ static int config_set(int id, GVariant *data, struct sr_dev_inst *sdi,
|
||||
case SR_CONF_PATTERN_MODE:
|
||||
stropt = g_variant_get_string(data, NULL);
|
||||
pre_sample_generator= cur_sample_generator;
|
||||
//字符串有效
|
||||
if(get_pattern_mode_index_by_string(sdi->mode , stropt) != PATTERN_INVALID)
|
||||
{
|
||||
switch (sdi->mode)
|
||||
@@ -860,29 +845,28 @@ static int config_set(int id, GVariant *data, struct sr_dev_inst *sdi,
|
||||
default:
|
||||
break;
|
||||
}
|
||||
//文件无效
|
||||
if ("" == (sdi->path = get_dsl_path_by_pattern_mode(sdi->mode,cur_sample_generator)) &&
|
||||
cur_sample_generator != PATTERN_RANDOM)
|
||||
{
|
||||
cur_sample_generator = pre_sample_generator;
|
||||
}
|
||||
}
|
||||
//字符串无效,返回
|
||||
else
|
||||
{
|
||||
cur_sample_generator = pre_sample_generator;
|
||||
}
|
||||
|
||||
//模式发生切换,需要重新载入
|
||||
if(cur_sample_generator != pre_sample_generator)
|
||||
{
|
||||
is_change = TRUE;
|
||||
// is_change = TRUE;
|
||||
pre_sample_generator = cur_sample_generator;
|
||||
// load_virtual_device_session(sdi);
|
||||
}
|
||||
|
||||
|
||||
sr_dbg("%s: setting pattern to %d",
|
||||
__func__, cur_sample_generator);
|
||||
break;
|
||||
|
||||
|
||||
case SR_CONF_MAX_HEIGHT:
|
||||
stropt = g_variant_get_string(data, NULL);
|
||||
for (i = 0; i < ARRAY_SIZE(maxHeights); i++)
|
||||
@@ -901,7 +885,6 @@ static int config_set(int id, GVariant *data, struct sr_dev_inst *sdi,
|
||||
break;
|
||||
case SR_CONF_PROBE_VDIV:
|
||||
ch->vdiv = g_variant_get_uint64(data);
|
||||
//重新读取
|
||||
if(sdi->mode == DSO)
|
||||
{
|
||||
if(vdev->packet_buffer)
|
||||
@@ -977,14 +960,13 @@ static int config_set(int id, GVariant *data, struct sr_dev_inst *sdi,
|
||||
break;
|
||||
case SR_CONF_CAPTURE_NUM_PROBES:
|
||||
vdev->num_probes = g_variant_get_uint64(data);
|
||||
break;
|
||||
break;
|
||||
case SR_CONF_INSTANT:
|
||||
instant = g_variant_get_boolean(data);
|
||||
break;
|
||||
case SR_CONF_DEMO_CHANGE:
|
||||
is_change = g_variant_get_boolean(data);
|
||||
break;
|
||||
//初始化DEMO
|
||||
case SR_CONF_DEMO_INIT:
|
||||
pre_sample_generator = cur_sample_generator;
|
||||
load_virtual_device_session(sdi);
|
||||
@@ -1079,9 +1061,9 @@ static int config_list(int key, GVariant **data, const struct sr_dev_inst *sdi,
|
||||
}
|
||||
|
||||
static int hw_dev_acquisition_start(struct sr_dev_inst *sdi,
|
||||
void *cb_data)
|
||||
void *cb_data)
|
||||
{
|
||||
|
||||
|
||||
(void)cb_data;
|
||||
|
||||
struct session_vdev *vdev;
|
||||
@@ -1101,7 +1083,6 @@ static int hw_dev_acquisition_start(struct sr_dev_inst *sdi,
|
||||
vdev->cur_block = 0;
|
||||
vdev->cur_channel = 0;
|
||||
|
||||
//在启动前检查文件是否有效
|
||||
if(cur_sample_generator != PATTERN_RANDOM)
|
||||
{
|
||||
if (vdev->archive != NULL)
|
||||
@@ -1205,7 +1186,7 @@ static int hw_dev_acquisition_start(struct sr_dev_inst *sdi,
|
||||
}
|
||||
packet_time = 1/(double)22;
|
||||
}
|
||||
|
||||
|
||||
|
||||
vdev->analog_buf_len = 0;
|
||||
vdev->analog_read_pos = 0;
|
||||
@@ -1324,7 +1305,7 @@ static int receive_data_logic(int fd, int revents, const struct sr_dev_inst *sdi
|
||||
{
|
||||
bToEnd = 1;
|
||||
}
|
||||
|
||||
|
||||
if(!bToEnd)
|
||||
{
|
||||
packet.type = SR_DF_LOGIC;
|
||||
@@ -1333,7 +1314,7 @@ static int receive_data_logic(int fd, int revents, const struct sr_dev_inst *sdi
|
||||
logic.index = 0;
|
||||
logic.order = 0;
|
||||
logic.length = chan_num * packet_len;
|
||||
//防止越界
|
||||
|
||||
post_data_len += logic.length / enabled_probe_num;
|
||||
if(post_data_len >= vdev->total_samples/8)
|
||||
{
|
||||
@@ -1341,7 +1322,6 @@ static int receive_data_logic(int fd, int revents, const struct sr_dev_inst *sdi
|
||||
last_packet_len = (vdev->total_samples/8) - last_packet_len;
|
||||
logic.length = last_packet_len * enabled_probe_num;
|
||||
}
|
||||
//注意传输缓冲
|
||||
uint64_t random = vdev->logic_buf_len - logic.length;
|
||||
random = abs(rand()) %random;
|
||||
logic.data = vdev->logic_buf + random;
|
||||
@@ -1449,10 +1429,28 @@ static int receive_data_logic_decoder(int fd, int revents, const struct sr_dev_i
|
||||
pack_buffer->block_buf_len = 0;
|
||||
pack_buffer->block_data_len = 0;
|
||||
pack_buffer->block_chan_read_pos = 0;
|
||||
|
||||
max_probe_num = chan_num;
|
||||
}
|
||||
pack_buffer = vdev->packet_buffer;
|
||||
|
||||
//传输块长度需要更新
|
||||
if(chan_num != max_probe_num)
|
||||
{
|
||||
for(ch_index = 0 ;ch_index < chan_num; ch_index++)
|
||||
{
|
||||
if(pack_buffer->block_bufs[ch_index] != NULL)
|
||||
{
|
||||
g_free(pack_buffer->block_bufs[ch_index]);
|
||||
}
|
||||
pack_buffer->block_bufs[ch_index] = NULL;
|
||||
pack_buffer->block_read_positions[ch_index] = 0;
|
||||
}
|
||||
pack_buffer->block_buf_len = 0;
|
||||
pack_buffer->block_data_len = 0;
|
||||
pack_buffer->block_chan_read_pos = 0;
|
||||
max_probe_num = chan_num;
|
||||
}
|
||||
|
||||
if(pack_buffer->post_buf_len != chan_num * packet_len)
|
||||
{
|
||||
pack_buffer->post_buf_len = chan_num * packet_len;
|
||||
@@ -1474,7 +1472,7 @@ static int receive_data_logic_decoder(int fd, int revents, const struct sr_dev_i
|
||||
// Make packet.
|
||||
read_chan_index = 0;
|
||||
dir_index = 0;
|
||||
|
||||
|
||||
while (pack_buffer->post_len < pack_buffer->post_buf_len)
|
||||
{
|
||||
if (pack_buffer->block_chan_read_pos >= pack_buffer->block_data_len)
|
||||
@@ -1568,7 +1566,7 @@ static int receive_data_logic_decoder(int fd, int revents, const struct sr_dev_i
|
||||
vdev->cur_block++;
|
||||
pack_buffer->block_chan_read_pos = 0;
|
||||
}
|
||||
|
||||
|
||||
p_wr = (uint8_t*)pack_buffer->post_buf + pack_buffer->post_len;
|
||||
p_rd = (uint8_t*)pack_buffer->block_bufs[read_chan_index] + pack_buffer->block_read_positions[read_chan_index];
|
||||
*p_wr = *p_rd;
|
||||
@@ -1613,7 +1611,7 @@ static int receive_data_logic_decoder(int fd, int revents, const struct sr_dev_i
|
||||
logic.length = last_packet_len * enabled_probe_num;
|
||||
}
|
||||
logic.data = pack_buffer->post_buf;
|
||||
|
||||
|
||||
gdouble packet_elapsed = g_timer_elapsed(packet_interval, NULL);
|
||||
gdouble waittime = packet_time - packet_elapsed;
|
||||
if(waittime > 0){
|
||||
@@ -1705,7 +1703,6 @@ static int receive_data_dso(int fd, int revents, const struct sr_dev_inst *sdi)
|
||||
return SR_ERR_MALLOC;
|
||||
}
|
||||
|
||||
//初始化读取块
|
||||
for (ch_index = 0; ch_index <= chan_num; ch_index++){
|
||||
vdev->packet_buffer->block_bufs[ch_index] = NULL;
|
||||
vdev->packet_buffer->block_read_positions[ch_index] = 0;
|
||||
@@ -1713,7 +1710,6 @@ static int receive_data_dso(int fd, int revents, const struct sr_dev_inst *sdi)
|
||||
|
||||
vdev->packet_buffer->post_buf_len = chan_num * 10000;
|
||||
|
||||
//不需要+1
|
||||
vdev->packet_buffer->post_buf = g_try_malloc0(vdev->packet_buffer->post_buf_len);
|
||||
if (vdev->packet_buffer->post_buf == NULL){
|
||||
sr_err("%s: vdev->packet_buffer->post_buf malloc failed", __func__);
|
||||
@@ -1727,8 +1723,6 @@ static int receive_data_dso(int fd, int revents, const struct sr_dev_inst *sdi)
|
||||
pack_buffer->block_chan_read_pos = 0;
|
||||
}
|
||||
pack_buffer = vdev->packet_buffer;
|
||||
|
||||
//重新分配缓冲
|
||||
if(pack_buffer->post_buf_len != chan_num * 10000)
|
||||
{
|
||||
vdev->packet_buffer->post_buf_len = chan_num * 10000;
|
||||
@@ -1746,29 +1740,44 @@ static int receive_data_dso(int fd, int revents, const struct sr_dev_inst *sdi)
|
||||
pack_buffer->post_len = 0;
|
||||
}
|
||||
|
||||
if(chan_num != max_probe_num)
|
||||
{
|
||||
for(ch_index = 0 ;ch_index < chan_num; ch_index++)
|
||||
{
|
||||
if(pack_buffer->block_bufs[ch_index] != NULL)
|
||||
{
|
||||
g_free(pack_buffer->block_bufs[ch_index]);
|
||||
}
|
||||
pack_buffer->block_bufs[ch_index] = NULL;
|
||||
pack_buffer->block_read_positions[ch_index] = 0;
|
||||
}
|
||||
pack_buffer->block_buf_len = 0;
|
||||
pack_buffer->block_data_len = 0;
|
||||
pack_buffer->block_chan_read_pos = 0;
|
||||
max_probe_num = chan_num;
|
||||
}
|
||||
|
||||
// Make packet.
|
||||
read_chan_index = 0;
|
||||
dir_index = 0;
|
||||
|
||||
if(vdiv_change)
|
||||
{
|
||||
//随机
|
||||
if(cur_sample_generator == PATTERN_RANDOM)
|
||||
{
|
||||
//波形不太理想
|
||||
for(int i = 0 ; i < pack_buffer->post_buf_len ;i++)
|
||||
{
|
||||
*(uint8_t*)(pack_buffer->post_buf + i) = rand()%40 +110;
|
||||
}
|
||||
pack_buffer->post_len = pack_buffer->post_buf_len;
|
||||
}
|
||||
//文件
|
||||
else
|
||||
{
|
||||
pack_buffer->post_len = 0;
|
||||
while (pack_buffer->post_len < pack_buffer->post_buf_len)
|
||||
{
|
||||
{
|
||||
if (pack_buffer->block_chan_read_pos >= pack_buffer->block_data_len)
|
||||
{
|
||||
{
|
||||
if (vdev->cur_block >= vdev->num_blocks){
|
||||
bToEnd = 1;
|
||||
break;
|
||||
@@ -1776,15 +1785,15 @@ static int receive_data_dso(int fd, int revents, const struct sr_dev_inst *sdi)
|
||||
|
||||
for (ch_index = 0; ch_index < chan_num; ch_index++)
|
||||
{
|
||||
bCheckFile = 0;
|
||||
bCheckFile = 0;
|
||||
|
||||
while (1)
|
||||
{
|
||||
if (sdi->mode == LOGIC)
|
||||
if (sdi->mode == LOGIC)
|
||||
snprintf(file_name, sizeof(file_name)-1, "L-%d/%d", dir_index++, vdev->cur_block);
|
||||
else if (sdi->mode == DSO)
|
||||
snprintf(file_name, sizeof(file_name)-1, "O-%d/0", dir_index++);
|
||||
|
||||
|
||||
if (unzLocateFile(vdev->archive, file_name, 0) == UNZ_OK){
|
||||
bCheckFile = 1;
|
||||
break;
|
||||
@@ -1803,18 +1812,18 @@ static int receive_data_dso(int fd, int revents, const struct sr_dev_inst *sdi)
|
||||
|
||||
if (unzGetCurrentFileInfo64(vdev->archive, &fileInfo, szFilePath,
|
||||
sizeof(szFilePath), NULL, 0, NULL, 0) != UNZ_OK)
|
||||
{
|
||||
{
|
||||
sr_err("%s: unzGetCurrentFileInfo64 error.", __func__);
|
||||
send_error_packet(sdi, vdev, &packet);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (ch_index == 0){
|
||||
if (ch_index == 0){
|
||||
pack_buffer->block_data_len = fileInfo.uncompressed_size;
|
||||
|
||||
|
||||
if (pack_buffer->block_data_len > pack_buffer->block_buf_len)
|
||||
{
|
||||
for (malloc_chan_index = 0; malloc_chan_index < chan_num; malloc_chan_index++){
|
||||
for (malloc_chan_index = 0; malloc_chan_index < chan_num; malloc_chan_index++){
|
||||
// Release the old buffer.
|
||||
if (pack_buffer->block_bufs[malloc_chan_index] != NULL){
|
||||
g_free(pack_buffer->block_bufs[malloc_chan_index]);
|
||||
@@ -1827,7 +1836,7 @@ static int receive_data_dso(int fd, int revents, const struct sr_dev_inst *sdi)
|
||||
send_error_packet(sdi, vdev, &packet);
|
||||
return FALSE;
|
||||
}
|
||||
pack_buffer->block_buf_len = pack_buffer->block_data_len;
|
||||
pack_buffer->block_buf_len = pack_buffer->block_data_len;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1840,7 +1849,7 @@ static int receive_data_dso(int fd, int revents, const struct sr_dev_inst *sdi)
|
||||
}
|
||||
}
|
||||
|
||||
// Read the data to buffer.
|
||||
// Read the data to buffer.
|
||||
if (unzOpenCurrentFile(vdev->archive) != UNZ_OK)
|
||||
{
|
||||
sr_err("cant't open zip inner file:\"%s\"", file_name);
|
||||
@@ -1859,13 +1868,13 @@ static int receive_data_dso(int fd, int revents, const struct sr_dev_inst *sdi)
|
||||
pack_buffer->block_read_positions[ch_index] = 0; // Reset the read position.
|
||||
}
|
||||
vdev->cur_block++;
|
||||
pack_buffer->block_chan_read_pos = 0;
|
||||
pack_buffer->block_chan_read_pos = 0;
|
||||
}
|
||||
|
||||
p_wr = (uint8_t*)pack_buffer->post_buf + pack_buffer->post_len;
|
||||
p_rd = (uint8_t*)pack_buffer->block_bufs[read_chan_index] + pack_buffer->block_read_positions[read_chan_index];
|
||||
*p_wr = *p_rd;
|
||||
|
||||
|
||||
pack_buffer->post_len++;
|
||||
pack_buffer->block_read_positions[read_chan_index]++;
|
||||
|
||||
@@ -1890,8 +1899,7 @@ static int receive_data_dso(int fd, int revents, const struct sr_dev_inst *sdi)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//处理vdiv
|
||||
|
||||
for(int i = 0 ; i < pack_buffer->post_buf_len; i++)
|
||||
{
|
||||
tem = 0;
|
||||
@@ -1916,7 +1924,7 @@ static int receive_data_dso(int fd, int revents, const struct sr_dev_inst *sdi)
|
||||
val = 128 - temp_val;
|
||||
tem = val * 1000 / vdiv;
|
||||
tem = 128 - tem;
|
||||
|
||||
|
||||
if(tem == 0)
|
||||
temp_val = 1;
|
||||
else
|
||||
@@ -1928,7 +1936,6 @@ static int receive_data_dso(int fd, int revents, const struct sr_dev_inst *sdi)
|
||||
vdiv_change = FALSE;
|
||||
}
|
||||
|
||||
//计算时间
|
||||
gdouble total_time = vdev->timebase /(gdouble)SR_SEC(1)*(gdouble)10;
|
||||
gdouble total_time_elapsed = g_timer_elapsed(run_time, NULL);
|
||||
if (total_time_elapsed < total_time && !instant)
|
||||
@@ -1941,7 +1948,6 @@ static int receive_data_dso(int fd, int revents, const struct sr_dev_inst *sdi)
|
||||
}
|
||||
else
|
||||
{
|
||||
//数据循环
|
||||
uint8_t top0;
|
||||
uint8_t top1;
|
||||
if(cur_sample_generator == PATTERN_RANDOM)
|
||||
@@ -1979,7 +1985,7 @@ static int receive_data_dso(int fd, int revents, const struct sr_dev_inst *sdi)
|
||||
dso.mqflags = SR_MQFLAG_AC;
|
||||
dso.num_samples = pack_buffer->post_len / chan_num;
|
||||
dso.data = pack_buffer->post_buf;
|
||||
|
||||
|
||||
gdouble packet_elapsed = g_timer_elapsed(packet_interval, NULL);
|
||||
gdouble waittime = packet_time - packet_elapsed;
|
||||
if(waittime > 0){
|
||||
@@ -2001,17 +2007,12 @@ static int receive_data_dso(int fd, int revents, const struct sr_dev_inst *sdi)
|
||||
packet.type = SR_DF_END;
|
||||
ds_data_forward(sdi, &packet);
|
||||
sr_session_source_remove(-1);
|
||||
// if(cur_sample_generator != PATTERN_RANDOM)
|
||||
// {
|
||||
// close_archive(vdev);
|
||||
// }
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
//修改称原有版本(读取文件)
|
||||
static int receive_data_analog(int fd, int revents, const struct sr_dev_inst *sdi)
|
||||
{
|
||||
struct session_vdev *vdev = sdi->priv;
|
||||
@@ -2044,7 +2045,6 @@ static int receive_data_analog(int fd, int revents, const struct sr_dev_inst *sd
|
||||
sr_err("%s:cant' malloc",__func__);
|
||||
return SR_ERR_MALLOC;
|
||||
}
|
||||
//随机数据
|
||||
if(cur_sample_generator == PATTERN_RANDOM)
|
||||
{
|
||||
for(int i = 0 ; i < 206 ;i++)
|
||||
@@ -2052,7 +2052,6 @@ static int receive_data_analog(int fd, int revents, const struct sr_dev_inst *sd
|
||||
*(uint8_t*)(analog_data + i) = rand()%40 +110;
|
||||
}
|
||||
}
|
||||
//文件
|
||||
else
|
||||
{
|
||||
snprintf(file_name, sizeof(file_name)-1, "%s-%d/%d", "A",
|
||||
@@ -2077,10 +2076,9 @@ static int receive_data_analog(int fd, int revents, const struct sr_dev_inst *sd
|
||||
sr_err("read zip inner file error:\"%s\"", file_name);
|
||||
send_error_packet(sdi, vdev, &packet);
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//计算放大后数据
|
||||
gdouble rate = 103 / (gdouble)2048 ;
|
||||
uint64_t total_buf_len = rate * vdev->total_samples;
|
||||
|
||||
@@ -2103,7 +2101,6 @@ static int receive_data_analog(int fd, int revents, const struct sr_dev_inst *sd
|
||||
vdev->analog_buf_len = total_buf_len;
|
||||
uint64_t per_block_after_expend = total_buf_len /206;
|
||||
|
||||
//根据vdiv对电压进行放大
|
||||
probe = g_slist_nth(sdi->channels, 0)->data;
|
||||
uint64_t p0_vdiv = probe->vdiv;
|
||||
probe = g_slist_nth(sdi->channels, 1)->data;
|
||||
@@ -2142,7 +2139,6 @@ static int receive_data_analog(int fd, int revents, const struct sr_dev_inst *sd
|
||||
temp_value = tem;
|
||||
}
|
||||
|
||||
//对数据进行拓展
|
||||
for(int j = 0 ; j <per_block_after_expend ;j++)
|
||||
{
|
||||
if(i % 2 == 0)
|
||||
@@ -2160,7 +2156,6 @@ static int receive_data_analog(int fd, int revents, const struct sr_dev_inst *sd
|
||||
is_first = FALSE;
|
||||
}
|
||||
|
||||
//注意区分发送数据额缓冲数据
|
||||
void* buf;
|
||||
if(vdev->analog_read_pos + packet_len >= vdev->analog_buf_len - 1 )
|
||||
{
|
||||
@@ -2263,13 +2258,11 @@ static int load_virtual_device_session(struct sr_dev_inst *sdi)
|
||||
int version = 1;
|
||||
|
||||
assert(sdi);
|
||||
//如果不是random要检查文件
|
||||
if (cur_sample_generator != PATTERN_RANDOM)
|
||||
{
|
||||
assert(sdi->path);
|
||||
}
|
||||
|
||||
//逻辑分析仪初始化(RANDOM)
|
||||
if (sdi->mode == LOGIC && cur_sample_generator == PATTERN_RANDOM)
|
||||
{
|
||||
sdi->driver->config_set(SR_CONF_SAMPLERATE,
|
||||
@@ -2297,7 +2290,6 @@ static int load_virtual_device_session(struct sr_dev_inst *sdi)
|
||||
}
|
||||
adjust_samplerate(sdi);
|
||||
}
|
||||
//示波器初始化
|
||||
else if(sdi->mode == DSO)
|
||||
{
|
||||
sdi->driver->config_set(SR_CONF_SAMPLERATE,
|
||||
@@ -2330,7 +2322,6 @@ static int load_virtual_device_session(struct sr_dev_inst *sdi)
|
||||
}
|
||||
adjust_samplerate(sdi);
|
||||
}
|
||||
//数据记录仪初始化
|
||||
else if(sdi->mode == ANALOG)
|
||||
{
|
||||
sdi->driver->config_set(SR_CONF_SAMPLERATE,
|
||||
@@ -2353,7 +2344,6 @@ static int load_virtual_device_session(struct sr_dev_inst *sdi)
|
||||
return SR_ERR;
|
||||
}
|
||||
|
||||
//做一个用于通道初始化的函数
|
||||
probe->enabled = TRUE;
|
||||
probe->bits = 8;
|
||||
probe->vdiv = 1000;
|
||||
@@ -2371,7 +2361,6 @@ static int load_virtual_device_session(struct sr_dev_inst *sdi)
|
||||
}
|
||||
adjust_samplerate(sdi);
|
||||
}
|
||||
//协议文件初始化
|
||||
else
|
||||
{
|
||||
archive = unzOpen64(sdi->path);
|
||||
@@ -2515,21 +2504,21 @@ static int load_virtual_device_session(struct sr_dev_inst *sdi)
|
||||
|
||||
SR_PRIV struct sr_dev_driver demo_driver_info = {
|
||||
.name = "virtual-demo",
|
||||
.longname = "Demo driver and pattern generator",
|
||||
.api_version = 1,
|
||||
.longname = "Demo driver and pattern generator",
|
||||
.api_version = 1,
|
||||
.driver_type = DRIVER_TYPE_DEMO,
|
||||
.init = hw_init,
|
||||
.init = hw_init,
|
||||
.cleanup = NULL,
|
||||
.scan = hw_scan,
|
||||
.scan = hw_scan,
|
||||
.dev_mode_list = hw_dev_mode_list,
|
||||
.config_get = config_get,
|
||||
.config_set = config_set,
|
||||
.config_list = config_list,
|
||||
.dev_open = hw_dev_open,
|
||||
.dev_close = hw_dev_close,
|
||||
.config_get = config_get,
|
||||
.config_set = config_set,
|
||||
.config_list = config_list,
|
||||
.dev_open = hw_dev_open,
|
||||
.dev_close = hw_dev_close,
|
||||
.dev_destroy = dev_destroy,
|
||||
.dev_status_get = hw_dev_status_get,
|
||||
.dev_acquisition_start = hw_dev_acquisition_start,
|
||||
.dev_acquisition_stop = hw_dev_acquisition_stop,
|
||||
.priv = NULL,
|
||||
.dev_acquisition_start = hw_dev_acquisition_start,
|
||||
.dev_acquisition_stop = hw_dev_acquisition_stop,
|
||||
.priv = NULL,
|
||||
};
|
||||
|
||||
@@ -24,12 +24,7 @@
|
||||
#include <glib.h>
|
||||
#include "../../libsigrok-internal.h"
|
||||
#include <minizip/unzip.h>
|
||||
//原版导入方式**(channel_modes冲突)
|
||||
#include"../DSL/dsl.h"
|
||||
|
||||
/*修改*/
|
||||
|
||||
//信号模式
|
||||
enum DEMO_PATTERN {
|
||||
PATTERN_INVALID = -1,
|
||||
PATTERN_RANDOM = 0,
|
||||
@@ -43,35 +38,38 @@ static int pattern_logic_count = 1;
|
||||
static int pattern_dso_count= 1;
|
||||
static int pattern_analog_count= 1;
|
||||
|
||||
//协议采样率、总样本数列表
|
||||
static uint64_t samplerates_file[1];
|
||||
static uint64_t samplecounts_file[1];
|
||||
//定时器
|
||||
static GTimer *packet_interval = NULL;
|
||||
static GTimer *run_time = NULL;
|
||||
//首次开启
|
||||
static gboolean is_first = TRUE;
|
||||
static gboolean is_change = FALSE;
|
||||
//总共启用通道数(LOGIC会使用)
|
||||
static int enabled_probe_num;
|
||||
//包长度、包时间、总传输包长度
|
||||
static uint64_t packet_len;
|
||||
static gdouble packet_time;
|
||||
static uint64_t post_data_len;
|
||||
//文件路径
|
||||
extern char DS_RES_PATH[500];
|
||||
//示波器垂直分辨率变化
|
||||
static gboolean vdiv_change;
|
||||
//立即
|
||||
static gboolean instant = FALSE;
|
||||
//路径
|
||||
static int max_probe_num = 0;
|
||||
extern char DS_RES_PATH[500];
|
||||
//信号模式(起始一样)
|
||||
uint8_t cur_sample_generator;
|
||||
uint8_t pre_sample_generator;
|
||||
|
||||
struct session_packet_buffer;
|
||||
|
||||
static const uint64_t vdivs10to2000[] = {
|
||||
SR_mV(10),
|
||||
SR_mV(20),
|
||||
SR_mV(50),
|
||||
SR_mV(100),
|
||||
SR_mV(200),
|
||||
SR_mV(500),
|
||||
SR_V(1),
|
||||
SR_V(2),
|
||||
0,
|
||||
};
|
||||
|
||||
struct session_vdev
|
||||
{
|
||||
int version;
|
||||
@@ -80,14 +78,13 @@ struct session_vdev
|
||||
|
||||
uint16_t samplerates_min_index;
|
||||
uint16_t samplerates_max_index;
|
||||
//逻辑分析仪随机数据
|
||||
|
||||
void *logic_buf;
|
||||
uint64_t logic_buf_len;
|
||||
//数据记录仪周期数据
|
||||
|
||||
void *analog_buf;
|
||||
uint64_t analog_buf_len;
|
||||
uint64_t analog_read_pos;
|
||||
//示波器周期数据
|
||||
|
||||
int cur_channel;
|
||||
int cur_block;
|
||||
@@ -110,8 +107,6 @@ struct session_vdev
|
||||
struct session_packet_buffer *packet_buffer;
|
||||
};
|
||||
|
||||
|
||||
|
||||
#define SESSION_MAX_CHANNEL_COUNT 512
|
||||
|
||||
struct session_packet_buffer
|
||||
@@ -127,9 +122,6 @@ struct session_packet_buffer
|
||||
uint64_t block_read_positions[SESSION_MAX_CHANNEL_COUNT];
|
||||
};
|
||||
|
||||
|
||||
/*修改*/
|
||||
|
||||
struct DEMO_caps {
|
||||
uint64_t mode_caps;
|
||||
uint64_t feature_caps;
|
||||
|
||||
@@ -647,7 +647,6 @@ SR_API int ds_get_actived_device_info(struct ds_device_full_info *fill_info)
|
||||
strncpy(p->driver_name, dev->driver->name, sizeof(p->driver_name) - 1);
|
||||
}
|
||||
|
||||
//demo paht
|
||||
if ((dev->dev_type == DEV_TYPE_FILELOG || dev->dev_type == DEV_TYPE_DEMO) && dev->path != NULL){
|
||||
strncpy(p->path, dev->path, sizeof(p->path) - 1);
|
||||
}
|
||||
|
||||
@@ -1033,7 +1033,6 @@ enum sr_config_option_id
|
||||
/** The device supports setting the number of data blocks. */
|
||||
SR_CONF_NUM_BLOCKS = 30104,
|
||||
|
||||
/** demo **/
|
||||
SR_CONF_LOAD_DECODER = 30105,
|
||||
|
||||
SR_CONF_DEMO_INIT = 30106,
|
||||
|
||||
Reference in New Issue
Block a user