update: data export api

This commit is contained in:
dreamsourcelabTAI 2022-04-06 15:29:55 +08:00
parent fc5e38d189
commit 1d39c28a14
5 changed files with 12 additions and 23 deletions

View File

@ -630,11 +630,6 @@ bool StoreSession::export_start()
return false;
}
//set export all data flag
AppConfig &app = AppConfig::Instance();
int flag = app._appOptions.originalData ? 1 : 0;
sr_set_export_original_data(flag);
const struct sr_output_module **supportedModules = sr_output_list();
while (*supportedModules)
{
@ -667,6 +662,10 @@ void StoreSession::export_proc(data::Snapshot *snapshot)
{
assert(snapshot);
//set export all data flag
AppConfig &app = AppConfig::Instance();
int origin_flag = app._appOptions.originalData ? 1 : 0;
data::LogicSnapshot *logic_snapshot = NULL;
data::AnalogSnapshot *analog_snapshot = NULL;
data::DsoSnapshot *dso_snapshot = NULL;
@ -744,6 +743,7 @@ void StoreSession::export_proc(data::Snapshot *snapshot)
p.type = SR_DF_META;
p.status = SR_PKT_OK;
p.payload = &meta;
p.bExportOriginalData = 0;
_outModule->receive(&output, &p, &data_out);
if(data_out){
out << QString::fromUtf8((char*) data_out->str);
@ -810,6 +810,7 @@ void StoreSession::export_proc(data::Snapshot *snapshot)
p.type = SR_DF_LOGIC;
p.status = SR_PKT_OK;
p.payload = &lp;
p.bExportOriginalData = origin_flag;
_outModule->receive(&output, &p, &data_out);
if(data_out){
@ -840,6 +841,7 @@ void StoreSession::export_proc(data::Snapshot *snapshot)
p.type = SR_DF_DSO;
p.status = SR_PKT_OK;
p.payload = &dp;
p.bExportOriginalData = 0;
_outModule->receive(&output, &p, &data_out);
if(data_out){
@ -866,6 +868,7 @@ void StoreSession::export_proc(data::Snapshot *snapshot)
p.type = SR_DF_ANALOG;
p.status = SR_PKT_OK;
p.payload = &ap;
p.bExportOriginalData = 0;
_outModule->receive(&output, &p, &data_out);
if(data_out){
out << (char*) data_out->str;

View File

@ -345,6 +345,7 @@ struct sr_datafeed_packet {
uint16_t type;
uint16_t status;
const void *payload;
int bExportOriginalData;
};
struct sr_datafeed_header {

View File

@ -235,12 +235,10 @@ static int receive(const struct sr_output *o, const struct sr_datafeed_packet *p
*out = g_string_sized_new(512);
}
int bflag = sr_get_export_original_flag();
for (i = 0; i <= logic->length - logic->unitsize; i += logic->unitsize) {
ctx->index++;
if (bflag == 0){
if (packet->bExportOriginalData == 0){
if (ctx->index > 1 && (*(uint64_t *)(logic->data + i) & ctx->mask) == ctx->pre_data)
continue;
}

View File

@ -94,8 +94,7 @@ SR_API void sr_config_free(struct sr_config *src);
typedef void (*sr_datafeed_callback_t)(const struct sr_dev_inst *sdi,
const struct sr_datafeed_packet *packet, void *cb_data);
SR_API void sr_set_export_original_data(int flag);
SR_API int sr_get_export_original_flag();
SR_API void sr_set_firmware_resource_dir(const char *dir);

View File

@ -36,8 +36,6 @@
char DS_RES_PATH[500] = {0};
int bExportOriginalData = 0; //able export all data
/**
* @file
*
@ -829,16 +827,6 @@ SR_API int sr_session_source_remove_channel(GIOChannel *channel)
return _sr_session_source_remove((gintptr)channel);
}
SR_API void sr_set_export_original_data(int flag)
{
bExportOriginalData = flag;
}
SR_API int sr_get_export_original_flag()
{
return bExportOriginalData;
}
void sr_set_firmware_resource_dir(const char *dir)
{
if (dir){