ID |
Date |
Author |
Subject |
177
|
Wed Aug 29 16:42:42 2012 |
Zach Miller | DRS-4.0.0 DOScreen.cpp |
Stefan Ritt wrote: |
Zach Miller wrote: |
Hi,
I found an old thread regarding a fix for DOScreen.cpp for DRS-3.1.0, that fixes an "ambiguous overload problem." Currently when I attempt to build the drs-4.0.0, I get this similar error:
src/DOScreen.cpp:332:39: error: call of overloaded ‘Append(int)’ is ambiguous
This section of code is different than what the previous thread was correcting, and though I attempted to apply the logic of the old thread, I haven't fixed this yet.
The following is the code for that section:
-----
329 for (int i=0 ; i<5 ; i++)
330 if (tc & (1<<(i+8))) {
331 if (i < 4)
332 wxst1.Append(wxT('1'+i));
333 else
334 wxst1.Append(wxT('E'));
335 wxst1.Append(wxT('&'));
336 }
337 if (wxst1.Length() > 0)
338 wxst1 = wxst1.Left(wxst1.Length()-1);
339 wxst1.Append(wxT(')'));
------
I've attempted a few fixes, but unfortunately, my understanding of the code is not great, and I haven't managed to fix this yet. Any help would be appreciated.
Thanks,
Zach Miller
|
Just put (char) in front of wxT(...), like
if (tc > 0) {
wxString wxst1, wxst2;
wxst1.Append((char)wxT('('));
for (int i=0 ; i<5 ; i++)
if (tc & (1<<i)) {
if (i < 4)
wxst1.Append((char) (wxT('1'+i)));
else
wxst1.Append((char) wxT('E'));
wxst1.Append((char) wxT('|'));
}
for (int i=0 ; i<5 ; i++)
if (tc & (1<<(i+8))) {
if (i < 4)
wxst1.Append((char) (wxT('1'+i)));
else
wxst1.Append((char) wxT('E'));
wxst1.Append((char) wxT('&'));
}
if (wxst1.Length() > 0)
wxst1 = wxst1.Left(wxst1.Length()-1);
wxst1.Append((char) wxT(')'));
|
Hi Stefan,
Thanks for the response. I have tried that and it fixes all the lines except the ones that have:
wxst1.Append((char) (wxT('1'+i)));
Those lines still don't compile for me. I've also tried: wxst1.Append((char) (wxT('1'+(char)i))); and wxst1.Append((char) (wxT((char)'1'+i))); as well as a few other combinations of (char) and Append.
I get the same error of: "Call of overloaded "Append(int)" is ambiguous."
Any other help would be greatly appreciated. Thanks!
-Zach |
178
|
Wed Aug 29 16:45:36 2012 |
Stefan Ritt | DRS-4.0.0 DOScreen.cpp |
Zach Miller wrote: |
Stefan Ritt wrote: |
Zach Miller wrote: |
Hi,
I found an old thread regarding a fix for DOScreen.cpp for DRS-3.1.0, that fixes an "ambiguous overload problem." Currently when I attempt to build the drs-4.0.0, I get this similar error:
src/DOScreen.cpp:332:39: error: call of overloaded ‘Append(int)’ is ambiguous
This section of code is different than what the previous thread was correcting, and though I attempted to apply the logic of the old thread, I haven't fixed this yet.
The following is the code for that section:
-----
329 for (int i=0 ; i<5 ; i++)
330 if (tc & (1<<(i+8))) {
331 if (i < 4)
332 wxst1.Append(wxT('1'+i));
333 else
334 wxst1.Append(wxT('E'));
335 wxst1.Append(wxT('&'));
336 }
337 if (wxst1.Length() > 0)
338 wxst1 = wxst1.Left(wxst1.Length()-1);
339 wxst1.Append(wxT(')'));
------
I've attempted a few fixes, but unfortunately, my understanding of the code is not great, and I haven't managed to fix this yet. Any help would be appreciated.
Thanks,
Zach Miller
|
Just put (char) in front of wxT(...), like
if (tc > 0) {
wxString wxst1, wxst2;
wxst1.Append((char)wxT('('));
for (int i=0 ; i<5 ; i++)
if (tc & (1<<i)) {
if (i < 4)
wxst1.Append((char) (wxT('1'+i)));
else
wxst1.Append((char) wxT('E'));
wxst1.Append((char) wxT('|'));
}
for (int i=0 ; i<5 ; i++)
if (tc & (1<<(i+8))) {
if (i < 4)
wxst1.Append((char) (wxT('1'+i)));
else
wxst1.Append((char) wxT('E'));
wxst1.Append((char) wxT('&'));
}
if (wxst1.Length() > 0)
wxst1 = wxst1.Left(wxst1.Length()-1);
wxst1.Append((char) wxT(')'));
|
Hi Stefan,
Thanks for the response. I have tried that and it fixes all the lines except the ones that have:
wxst1.Append((char) (wxT('1'+i)));
Those lines still don't compile for me. I've also tried: wxst1.Append((char) (wxT('1'+(char)i))); and wxst1.Append((char) (wxT((char)'1'+i))); as well as a few other combinations of (char) and Append.
I get the same error of: "Call of overloaded "Append(int)" is ambiguous."
Any other help would be greatly appreciated. Thanks!
-Zach
|
wxst1.Append((char) (wxT((char)('1'+i)))); maybe ??? |
179
|
Wed Aug 29 16:57:49 2012 |
Zach Miller | DRS-4.0.0 DOScreen.cpp |
Stefan Ritt wrote: |
Zach Miller wrote: |
Stefan Ritt wrote: |
Zach Miller wrote: |
Hi,
I found an old thread regarding a fix for DOScreen.cpp for DRS-3.1.0, that fixes an "ambiguous overload problem." Currently when I attempt to build the drs-4.0.0, I get this similar error:
src/DOScreen.cpp:332:39: error: call of overloaded ‘Append(int)’ is ambiguous
This section of code is different than what the previous thread was correcting, and though I attempted to apply the logic of the old thread, I haven't fixed this yet.
The following is the code for that section:
-----
329 for (int i=0 ; i<5 ; i++)
330 if (tc & (1<<(i+8))) {
331 if (i < 4)
332 wxst1.Append(wxT('1'+i));
333 else
334 wxst1.Append(wxT('E'));
335 wxst1.Append(wxT('&'));
336 }
337 if (wxst1.Length() > 0)
338 wxst1 = wxst1.Left(wxst1.Length()-1);
339 wxst1.Append(wxT(')'));
------
I've attempted a few fixes, but unfortunately, my understanding of the code is not great, and I haven't managed to fix this yet. Any help would be appreciated.
Thanks,
Zach Miller
|
Just put (char) in front of wxT(...), like
if (tc > 0) {
wxString wxst1, wxst2;
wxst1.Append((char)wxT('('));
for (int i=0 ; i<5 ; i++)
if (tc & (1<<i)) {
if (i < 4)
wxst1.Append((char) (wxT('1'+i)));
else
wxst1.Append((char) wxT('E'));
wxst1.Append((char) wxT('|'));
}
for (int i=0 ; i<5 ; i++)
if (tc & (1<<(i+8))) {
if (i < 4)
wxst1.Append((char) (wxT('1'+i)));
else
wxst1.Append((char) wxT('E'));
wxst1.Append((char) wxT('&'));
}
if (wxst1.Length() > 0)
wxst1 = wxst1.Left(wxst1.Length()-1);
wxst1.Append((char) wxT(')'));
|
Hi Stefan,
Thanks for the response. I have tried that and it fixes all the lines except the ones that have:
wxst1.Append((char) (wxT('1'+i)));
Those lines still don't compile for me. I've also tried: wxst1.Append((char) (wxT('1'+(char)i))); and wxst1.Append((char) (wxT((char)'1'+i))); as well as a few other combinations of (char) and Append.
I get the same error of: "Call of overloaded "Append(int)" is ambiguous."
Any other help would be greatly appreciated. Thanks!
-Zach
|
wxst1.Append((char) (wxT((char)('1'+i)))); maybe ???
|
Aha!
wxst1.Append((char) (wxT('1'+i)));
That one actually works as you initially thought, but you my editor was being picky of (char)wxt... instead of (char) (wxt....). For some reason, it has to have the extra set of parentheses around wxt(). Thank You! |
205
|
Thu Dec 13 12:03:29 2012 |
Evgeni | DRS-4 trigger | How to configure DRS oscilloscope for the oscillations with an amplitude greater than the value of the exposed
in the trigger (internal). |
206
|
Thu Dec 13 12:14:35 2012 |
Stefan Ritt | DRS-4 trigger |
Evgeni wrote: |
How to configure DRS oscilloscope for the oscillations with an amplitude greater than the value of the exposed
in the trigger (internal).
|
Sorry, I don't understand that question. The DRS4 Evaluation board input signal range is 1V. If you have larger signals, you have to attenuante them externally.
/Stefan |
207
|
Thu Dec 13 19:49:47 2012 |
Evgeni | DRS-4 trigger |
Stefan Ritt wrote: |
Evgeni wrote: |
How to configure DRS oscilloscope for the oscillations with an amplitude greater than the value of the exposed
in the trigger (internal).
|
Sorry, I don't understand that question. The DRS4 Evaluation board input signal range is 1V. If you have larger signals, you have to attenuante them externally.
/Stefan
|
Can I adjust the internal trigger DRS oscilloscope for signal extraction 0.5 volts (for example) from any of the four channels. In our case, there is a lot of noise with low amplitude, which must be removed during the registration. We need to record the individual pulses of higher amplitude than the noise. So we want to use the internal trigger DRS oscilloscope to cut this noise by setting up its threshold amplitude noise.
|
208
|
Fri Dec 14 08:42:53 2012 |
Stefan Ritt | DRS-4 trigger |
Evgeni wrote: |
Stefan Ritt wrote: |
Evgeni wrote: |
How to configure DRS oscilloscope for the oscillations with an amplitude greater than the value of the exposed
in the trigger (internal).
|
Sorry, I don't understand that question. The DRS4 Evaluation board input signal range is 1V. If you have larger signals, you have to attenuante them externally.
/Stefan
|
Can I adjust the internal trigger DRS oscilloscope for signal extraction 0.5 volts (for example) from any of the four channels. In our case, there is a lot of noise with low amplitude, which must be removed during the registration. We need to record the individual pulses of higher amplitude than the noise. So we want to use the internal trigger DRS oscilloscope to cut this noise by setting up its threshold amplitude noise.
|
Sure, you can set the trigger level with the vertical slider (see attached figure). The trigger level works form -0.5V to +0.5V. Just like with a normal oscilloscope. I thought this would be obvious... |
Attachment 1: DRSOsc.png
|
|
209
|
Fri Dec 14 10:07:14 2012 |
Evgeni | DRS-4 trigger |
Evgeni wrote: |
How to configure DRS oscilloscope for the oscillations with an amplitude greater than the value of the exposed
in the trigger (internal).
|
|
210
|
Fri Dec 14 10:07:54 2012 |
Evgeni | DRS-4 trigger |
Stefan Ritt wrote: |
Evgeni wrote: |
Stefan Ritt wrote: |
Evgeni wrote: |
How to configure DRS oscilloscope for the oscillations with an amplitude greater than the value of the exposed
in the trigger (internal).
|
Sorry, I don't understand that question. The DRS4 Evaluation board input signal range is 1V. If you have larger signals, you have to attenuante them externally.
/Stefan
|
Can I adjust the internal trigger DRS oscilloscope for signal extraction 0.5 volts (for example) from any of the four channels. In our case, there is a lot of noise with low amplitude, which must be removed during the registration. We need to record the individual pulses of higher amplitude than the noise. So we want to use the internal trigger DRS oscilloscope to cut this noise by setting up its threshold amplitude noise.
|
Sure, you can set the trigger level with the vertical slider (see attached figure). The trigger level works form -0.5V to +0.5V. Just like with a normal oscilloscope. I thought this would be obvious...
|
That's it? Thank you for your comprehensive answer. |
809
|
Thu Feb 25 17:56:39 2021 |
Matthias Plum | DRS spike removal for multiple waveforms | Hi,
Is there a way that someone can help me and my student to enable RemoveSymmetricSpikes function in the drs_exam.cpp? We are not 100% sure how to call the function if you want to read out four waveforms.
Cheers,
Matthias |
810
|
Fri Feb 26 08:52:50 2021 |
Stefan Ritt | DRS spike removal for multiple waveforms | Just look at the definition of the function below, all parameters are explained there. In meantime we have a firmware fix to avoid the spikes inside the chip, but I have not yet found time to update the evaluation board.
Stefan
void DRSBoard::RemoveSymmetricSpikes(short **wf, int nwf,
short diffThreshold, int spikeWidth,
short maxPeakToPeak, short spikeVoltage,
int nTimeRegionThreshold)
{
// Remove a specific kind of spike on DRS4.
// This spike has some features,
// - Common on all the channels on a chip
// - Constant heigh and width
// - Two spikes per channel
// - Symmetric to cell #0.
//
// This is not general purpose spike-removing function.
//
// wf : Waveform data. cell#0 must be at bin0,
// and number of bins must be kNumberOfBins.
// nwf : Number of channels which "wf" holds.
// diffThreshold : Amplitude threshold to find peak
// spikeWidth : Width of spike
// maxPeakToPeak : When peak-to-peak is larger than this, the channel
// is not used to find spikes.
// spikeVoltage : Amplitude of spikes. When it is 0, it is calculated in this function
// from voltage difference from neighboring bins.
// nTimeRegionThreshold : Requirement of number of time regions having spike at common position.
// Total number of time regions is 2*"nwf". |
581
|
Fri Jan 13 12:58:22 2017 |
Gregor Kramberger | DRS software doesn't work under Windows XP SP3 | Hi all
I have a problem with running the DRSOSC under windows XP SP3. We have some hardware which is not supported under newer versions of windows and we would like to use DRS boards along it, therefore we would higly appreciated any help in that direction. We have installed the software (V 5.03) to two different XP machines and got the same problem. The driver installs without any problem, but when the drsosc is run the system says " drsosc.exe is not a valid Win32 application". We have developed our own API for our software which also doesn't recognize the board. It says on the www page that it has been tested for windows XP, but I would appreciate if you can verify it? With best regards and thanks... |
582
|
Fri Jan 13 13:16:09 2017 |
Stefan Ritt | DRS software doesn't work under Windows XP SP3 | The error probably comes from the fact that the drsosc.exe application is a 64-bit application and cannot be executed under XP any more. Unfortunately XP is forbidden at our institute for security reasons, so I have no machine around where I could compile the executable fro XP. Another problem is the libusb library used by drsosc.exe. Not sure if there is a XP version available any more. Have a look yourself at http://www.libusb.org/wiki/windows_backend
I only see two possibilities for you: 1) Try to compile the program under Windows XP yourself, either with MS Visual Studio or with MinGW (http://www.mingw.org/). 2) Set up a virtual machine on your PC (for example with Virtualbox), and install either a newer version of Windows or a Linux distribution. The Linux excutable can then be compiled directly from sources as written in the documentation.
Stefan
Gregor Kramberger wrote: |
Hi all
I have a problem with running the DRSOSC under windows XP SP3. We have some hardware which is not supported under newer versions of windows and we would like to use DRS boards along it, therefore we would higly appreciated any help in that direction. We have installed the software (V 5.03) to two different XP machines and got the same problem. The driver installs without any problem, but when the drsosc is run the system says " drsosc.exe is not a valid Win32 application". We have developed our own API for our software which also doesn't recognize the board. It says on the www page that it has been tested for windows XP, but I would appreciate if you can verify it? With best regards and thanks...
|
|
583
|
Fri Jan 13 13:50:10 2017 |
Stefan Ritt | DRS software doesn't work under Windows XP SP3 | Can you try that executable under XP: https://www.dropbox.com/s/j1n09afhbmh0zzu/drsosc.exe?dl=0
Gregor Kramberger wrote: |
Hi all
I have a problem with running the DRSOSC under windows XP SP3. We have some hardware which is not supported under newer versions of windows and we would like to use DRS boards along it, therefore we would higly appreciated any help in that direction. We have installed the software (V 5.03) to two different XP machines and got the same problem. The driver installs without any problem, but when the drsosc is run the system says " drsosc.exe is not a valid Win32 application". We have developed our own API for our software which also doesn't recognize the board. It says on the www page that it has been tested for windows XP, but I would appreciate if you can verify it? With best regards and thanks...
|
|
353
|
Thu Jun 12 12:40:03 2014 |
Roman Gredig | DRS eval bord v5 Timing | Dear Stefan
I have two questions concerning the best time resolution with the DRS V5 eval board.
a) Calibration:
I am using 4 boards daisy chained. To achieve optimal time resolution I did first a voltage calibration and right afterwards a time calibration. For all
boards after the master I am not sure how to do it.
After setting the flag "Configure multi-board daisy-chain" in the config menu, all the slave boards set the flag "use external reference clock". By
hitting the voltage calibration button, the slave boards unset this flag. Is it true, that I have to re-set this before doing the time-calibration right
afterwards?
b) getting the right times in binary format:
To get the time out of the time width (i.e. the t_ch[i]) you sum up in your documentation from j=0 to j=i (see attachment). In your example code
read_binary.cpp (line 113) you sum from j=0 to j=i-1. Since you get the the bin with in the binary file, I guess that the example code is correct one?
Thank you very much,
Cheers,
Roman |
Attachment 1: eqn1.png
|
|
354
|
Thu Jun 12 12:46:00 2014 |
Stefan Ritt | DRS eval bord v5 Timing | > a) Calibration:
> I am using 4 boards daisy chained. To achieve optimal time resolution I did first a voltage calibration and right afterwards a time calibration. For all
> boards after the master I am not sure how to do it.
> After setting the flag "Configure multi-board daisy-chain" in the config menu, all the slave boards set the flag "use external reference clock". By
> hitting the voltage calibration button, the slave boards unset this flag. Is it true, that I have to re-set this before doing the time-calibration right
> afterwards?
Please do NOT do any calibration in multi-board mode. This will not work. Calibrate the boards separately, then activate the multi-board mode. Please note that the timing between the boards is not better
than ~50 ps. This is a limitation of the FPGA clock generators. If you need better timing, you have to feed an external clock into one channel of each board (leaving only 3 channels for DAQ). The upcoming
WaveDREAM board will have 16 channels per board, so building bigger DAQ systems will be much easier (and more precise).
> b) getting the right times in binary format:
> To get the time out of the time width (i.e. the t_ch[i]) you sum up in your documentation from j=0 to j=i (see attachment). In your example code
> read_binary.cpp (line 113) you sum from j=0 to j=i-1. Since you get the the bin with in the binary file, I guess that the example code is correct one?
Yes, I will correct the documentation.
Cheers,
Stefan |
183
|
Fri Oct 12 14:06:04 2012 |
Moritz von Witzleben | DRS abbreviation | Hello,
what is the abbreviation of DRS?
Thanks and kind Regards,
Moritz |
184
|
Fri Oct 12 14:09:37 2012 |
Stefan Ritt | DRS abbreviation |
Moritz von Witzleben wrote: |
Hello,
what is the abbreviation of DRS?
Thanks and kind Regards,
Moritz
|
Domino Ring Sampler. |
485
|
Mon Mar 21 10:38:27 2016 |
Daniel Dribin | DRS Oscilloscope freezing after a long run | Dear Stefan Ritt,
I am using a DRS4 v5 to do timing measurements of Positron lifetime. I use the DRS Oscilloscope with triggering on 2 channels when I have a coincidence. Attached is a picture with all the setting that I use. When I use the DRS4 for a long measurements of 5 million events for a couple of hours, the DRS Oscilloscope stops showing any signal .After the first restart of the program I get a strange signal which is at the bottom of the scope range of voltage picture below(in the picture I changed the vertical positions of the channels for better viewing). Only after a couple of DRS Oscilloscope restarts and USB reconnections do I get the results again.
I currently am using another DRS4 v5 and the same situation occurs again although with lower frequency.
What can I do to solve this problem?
thank you very much,
Daniel
|
Attachment 1: drs_settings.png
|
|
Attachment 2: empty_drs.png
|
|
Attachment 3: drs_ofset.png
|
|
500
|
Mon Apr 4 11:31:34 2016 |
Stefan Ritt | DRS Oscilloscope freezing after a long run | Dear Daniel,
sorry my late reply, I'm pretty busy these days. The behavior you report has not been seen before, but I guess no one tried to take such long runs of data yet. Can you confirm that the problem also occurs without writing data to disk, or is it disk-related? I guess you use it under Windows 7, right?
Stefan
Daniel Dribin wrote: |
Dear Stefan Ritt,
I am using a DRS4 v5 to do timing measurements of Positron lifetime. I use the DRS Oscilloscope with triggering on 2 channels when I have a coincidence. Attached is a picture with all the setting that I use. When I use the DRS4 for a long measurements of 5 million events for a couple of hours, the DRS Oscilloscope stops showing any signal .After the first restart of the program I get a strange signal which is at the bottom of the scope range of voltage picture below(in the picture I changed the vertical positions of the channels for better viewing). Only after a couple of DRS Oscilloscope restarts and USB reconnections do I get the results again.
I currently am using another DRS4 v5 and the same situation occurs again although with lower frequency.
What can I do to solve this problem?
thank you very much,
Daniel
|
|
|