2
0
forked from Ivasoft/DSView

Fix trigger time delay @ osc mode

This commit is contained in:
DreamSourceLab
2015-11-11 21:22:03 +08:00
parent 800f4c615e
commit cc6c663a96
7 changed files with 32 additions and 14 deletions

View File

@@ -1938,7 +1938,8 @@ static void receive_transfer(struct libusb_transfer *transfer)
mstatus.ch1_pcnt = *((const uint32_t*)cur_buf + mstatus_offset/2 + 14/2);
mstatus.vlen = *((const uint32_t*)cur_buf + mstatus_offset/2 + 16/2) & 0x7fffffff;
mstatus.stream_mode = *((const uint32_t*)cur_buf + mstatus_offset/2 + 16/2) & 0x80000000;
mstatus.sample_divider = *((const uint32_t*)cur_buf + mstatus_offset/2 + 18/2);
mstatus.sample_divider = *((const uint32_t*)cur_buf + mstatus_offset/2 + 18/2) & 0x7fffffff;
mstatus.sample_divider_tog = *((const uint32_t*)cur_buf + mstatus_offset/2 + 18/2) & 0x80000000;
mstatus.zeroing = (*((const uint16_t*)cur_buf + mstatus_offset + 128) & 0x8000) != 0;
mstatus.ch0_vpos_mid = *((const uint16_t*)cur_buf + mstatus_offset + 128) & 0x7fff;
mstatus.ch0_voff_mid = *((const uint16_t*)cur_buf + mstatus_offset + 129);
@@ -1972,8 +1973,10 @@ static void receive_transfer(struct libusb_transfer *transfer)
dso.mq = SR_MQ_VOLTAGE;
dso.unit = SR_UNIT_VOLT;
dso.mqflags = SR_MQFLAG_AC;
dso.samplerate_tog = mstatus.sample_divider_tog;
dso.data = cur_buf + trigger_offset_bytes;
} else {
packet.type = SR_DF_ABANDON;
mstatus_valid = FALSE;
}
} else {
@@ -2028,7 +2031,8 @@ static void receive_transfer(struct libusb_transfer *transfer)
}
/* send data to session bus */
sr_session_send(devc->cb_data, &packet);
if (packet.type != SR_DF_ABANDON)
sr_session_send(devc->cb_data, &packet);
}
devc->num_samples += cur_sample_count;

View File

@@ -2202,7 +2202,8 @@ static void receive_transfer(struct libusb_transfer *transfer)
mstatus.ch1_pcnt = *((const uint32_t*)cur_buf + mstatus_offset/2 + 14/2);
mstatus.vlen = *((const uint32_t*)cur_buf + mstatus_offset/2 + 16/2) & 0x7fffffff;
mstatus.stream_mode = *((const uint32_t*)cur_buf + mstatus_offset/2 + 16/2) & 0x80000000;
mstatus.sample_divider = *((const uint32_t*)cur_buf + mstatus_offset/2 + 18/2);
mstatus.sample_divider = *((const uint32_t*)cur_buf + mstatus_offset/2 + 18/2) & 0x7fffffff;
mstatus.sample_divider_tog = *((const uint32_t*)cur_buf + mstatus_offset/2 + 18/2) & 0x80000000;
mstatus.zeroing = (*((const uint16_t*)cur_buf + mstatus_offset + 128) & 0x8000) != 0;
mstatus.ch0_adc_off = *((const uint8_t*)cur_buf + mstatus_offset*2 + 131*2);
mstatus.ch0_adc_sign = *((const uint8_t*)cur_buf + mstatus_offset*2 + 131*2+1);
@@ -2229,6 +2230,7 @@ static void receive_transfer(struct libusb_transfer *transfer)
dso.mq = SR_MQ_VOLTAGE;
dso.unit = SR_UNIT_VOLT;
dso.mqflags = SR_MQFLAG_AC;
dso.samplerate_tog = mstatus.sample_divider_tog;
dso.data = cur_buf + trigger_offset_bytes;
} else {
devc->mstatus_valid = FALSE;