Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
A
adc-testing
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
image/svg+xml
Discourse
Discourse
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Commits
Open sidebar
misc
adc-testing
Commits
7197fcd5
Commit
7197fcd5
authored
Sep 03, 2011
by
Federico Asara
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Bugfixes and GPL adoption.
parent
acbdb473
Show whitespace changes
Inline
Side-by-side
Showing
25 changed files
with
269 additions
and
52 deletions
+269
-52
ADC.py
PAGE/ADC.py
+15
-4
Agilent33250A.py
PAGE/Agilent33250A.py
+9
-0
Generator.py
PAGE/Generator.py
+9
-0
Item.py
PAGE/Item.py
+9
-0
RemoteObject.py
PAGE/RemoteObject.py
+9
-0
SineWaveform.py
PAGE/SineWaveform.py
+9
-0
Sis33.py
PAGE/Sis33.py
+9
-1
TTWaveform.py
PAGE/TTWaveform.py
+9
-0
Utilities.py
PAGE/Utilities.py
+9
-0
Waveform.py
PAGE/Waveform.py
+12
-1
__init__.py
PAGE/__init__.py
+8
-2
Signal.py
SignalProcessing/Signal.py
+8
-5
Sinefit.py
SignalProcessing/Sinefit.py
+8
-5
SingleToneSignal.py
SignalProcessing/SingleToneSignal.py
+9
-0
TwoToneSignal.py
SignalProcessing/TwoToneSignal.py
+40
-18
Utilities.py
SignalProcessing/Utilities.py
+9
-0
WindowFunction.py
SignalProcessing/WindowFunction.py
+8
-5
WindowedSignal.py
SignalProcessing/WindowedSignal.py
+9
-0
__init__.py
SignalProcessing/__init__.py
+8
-2
adctest.py
adctest.py
+9
-0
MainWindow.py
qtGUI/MainWindow.py
+9
-0
ModuleSelector.py
qtGUI/ModuleSelector.py
+9
-0
SourceSelector.py
qtGUI/SourceSelector.py
+9
-0
__init__.py
qtGUI/__init__.py
+8
-2
server.py
server.py
+19
-7
No files found.
PAGE/ADC.py
View file @
7197fcd5
from
Utilities
import
*
__author__
=
"Federico Asara"
__copyright__
=
"Copyright 2007, The Cogent Project"
__credits__
=
[
"Federico Asara"
,
"Juan David Gonzalez Cobas"
]
__license__
=
"GPL2"
__version__
=
"1.0.0"
__maintainer__
=
"Federico Asara"
__email__
=
"federico.asara@gmail.com"
__status__
=
"Production"
from
Utilities
import
*
from
Item
import
*
"""This class manages a generic waveform generator."""
"""This class manages a generic ADC.
Please implement all its methods when you are subclassing it. In particular,
you must provide a way to select the sampling frequency among a list of them, a
property with the number of bits and a function that reads data from the ADC."""
class
ADC
(
Item
):
def
get
(
self
,
what
):
"""Get an attribute value. Supports Pyro4."""
...
...
@@ -13,7 +24,7 @@ class ADC(Item):
self
.
__setattr__
(
what
,
how
)
def
clockFrequency
():
doc
=
"Clock frequency used by the ADC"
doc
=
"Clock frequency used by the ADC
.
"
def
fget
(
self
):
return
0
def
fset
(
self
,
value
):
return
...
...
@@ -21,7 +32,7 @@ class ADC(Item):
@
Property
def
clockFrequencies
():
doc
=
"Clock frequencies"
doc
=
"Clock frequencies
, in a tuple.
"
def
fget
(
self
):
return
tuple
()
def
fset
(
self
,
value
):
return
...
...
PAGE/Agilent33250A.py
View file @
7197fcd5
__author__
=
"Federico Asara"
__copyright__
=
"Copyright 2007, The Cogent Project"
__credits__
=
[
"Federico Asara"
,
"Juan David Gonzalez Cobas"
]
__license__
=
"GPL2"
__version__
=
"1.0.0"
__maintainer__
=
"Federico Asara"
__email__
=
"federico.asara@gmail.com"
__status__
=
"Production"
from
Generator
import
*
from
SineWaveform
import
SineWaveform
from
TTWaveform
import
TTWaveform
...
...
PAGE/Generator.py
View file @
7197fcd5
__author__
=
"Federico Asara"
__copyright__
=
"Copyright 2007, The Cogent Project"
__credits__
=
[
"Federico Asara"
,
"Juan David Gonzalez Cobas"
]
__license__
=
"GPL2"
__version__
=
"1.0.0"
__maintainer__
=
"Federico Asara"
__email__
=
"federico.asara@gmail.com"
__status__
=
"Production"
from
Utilities
import
*
from
Item
import
*
...
...
PAGE/Item.py
View file @
7197fcd5
__author__
=
"Federico Asara"
__copyright__
=
"Copyright 2007, The Cogent Project"
__credits__
=
[
"Federico Asara"
,
"Juan David Gonzalez Cobas"
]
__license__
=
"GPL2"
__version__
=
"1.0.0"
__maintainer__
=
"Federico Asara"
__email__
=
"federico.asara@gmail.com"
__status__
=
"Production"
"""This class just represent an API item. An item is configurable and has two
methods, get and set, which actually wrap getattribute and setattr."""
class
Item
(
object
):
...
...
PAGE/RemoteObject.py
View file @
7197fcd5
__author__
=
"Federico Asara"
__copyright__
=
"Copyright 2007, The Cogent Project"
__credits__
=
[
"Federico Asara"
,
"Juan David Gonzalez Cobas"
]
__license__
=
"GPL2"
__version__
=
"1.0.0"
__maintainer__
=
"Federico Asara"
__email__
=
"federico.asara@gmail.com"
__status__
=
"Production"
import
sys
import
Pyro4
import
Item
...
...
PAGE/SineWaveform.py
View file @
7197fcd5
__author__
=
"Federico Asara"
__copyright__
=
"Copyright 2007, The Cogent Project"
__credits__
=
[
"Federico Asara"
,
"Juan David Gonzalez Cobas"
]
__license__
=
"GPL2"
__version__
=
"1.0.0"
__maintainer__
=
"Federico Asara"
__email__
=
"federico.asara@gmail.com"
__status__
=
"Production"
import
Waveform
from
Utilities
import
*
from
numpy
import
*
...
...
PAGE/Sis33.py
View file @
7197fcd5
#
__author__
=
"Federico Asara"
__copyright__
=
"Copyright 2007, The Cogent Project"
__credits__
=
[
"Federico Asara"
,
"Juan David Gonzalez Cobas"
]
__license__
=
"GPL2"
__version__
=
"1.0.0"
__maintainer__
=
"Federico Asara"
__email__
=
"federico.asara@gmail.com"
__status__
=
"Production"
from
ctypes
import
*
from
ADC
import
*
...
...
PAGE/TTWaveform.py
View file @
7197fcd5
__author__
=
"Federico Asara"
__copyright__
=
"Copyright 2007, The Cogent Project"
__credits__
=
[
"Federico Asara"
,
"Juan David Gonzalez Cobas"
]
__license__
=
"GPL2"
__version__
=
"1.0.0"
__maintainer__
=
"Federico Asara"
__email__
=
"federico.asara@gmail.com"
__status__
=
"Production"
import
Waveform
from
Utilities
import
*
from
numpy
import
*
...
...
PAGE/Utilities.py
View file @
7197fcd5
__author__
=
"Federico Asara"
__copyright__
=
"Copyright 2007, The Cogent Project"
__credits__
=
[
"Federico Asara"
,
"Juan David Gonzalez Cobas"
]
__license__
=
"GPL2"
__version__
=
"1.0.0"
__maintainer__
=
"Federico Asara"
__email__
=
"federico.asara@gmail.com"
__status__
=
"Production"
def
Property
(
func
):
return
property
(
**
func
())
...
...
PAGE/Waveform.py
View file @
7197fcd5
__author__
=
"Federico Asara"
__copyright__
=
"Copyright 2007, The Cogent Project"
__credits__
=
[
"Federico Asara"
,
"Juan David Gonzalez Cobas"
]
__license__
=
"GPL2"
__version__
=
"1.0.0"
__maintainer__
=
"Federico Asara"
__email__
=
"federico.asara@gmail.com"
__status__
=
"Production"
from
numpy
import
array
from
Item
import
*
"""This class represent a generic waveform."""
"""This class represent a generic waveform.
You must implement the generate and generatePeriod methods in order to subclass
this. Refer to their docstrings."""
class
Waveform
(
Item
):
def
get
(
self
,
what
):
"""Get an attribute value. Supports Pyro4."""
...
...
PAGE/__init__.py
View file @
7197fcd5
__author__
=
"Federico"
__date__
=
"$Aug 17, 2011 4:43:08 PM$"
__author__
=
"Federico Asara"
__copyright__
=
"Copyright 2007, The Cogent Project"
__credits__
=
[
"Federico Asara"
,
"Juan David Gonzalez Cobas"
]
__license__
=
"GPL2"
__version__
=
"1.0.0"
__maintainer__
=
"Federico Asara"
__email__
=
"federico.asara@gmail.com"
__status__
=
"Production"
# PAGE: Python ADC and GEnerators API
...
...
SignalProcessing/Signal.py
View file @
7197fcd5
# To change this template, choose Tools | Templates
# and open the template in the editor.
__author__
=
"Federico Asara"
__date__
=
"$Jul 11, 2011 2:39:38 PM$"
__author__
=
"Federico Asara"
__copyright__
=
"Copyright 2007, The Cogent Project"
__credits__
=
[
"Federico Asara"
,
"Juan David Gonzalez Cobas"
]
__license__
=
"GPL2"
__version__
=
"1.0.0"
__maintainer__
=
"Federico Asara"
__email__
=
"federico.asara@gmail.com"
__status__
=
"Production"
__doc__
=
"""This module offers the Signal class, which simply store the output
signal of an ADC, fed with a sinewave, with some other useful informations.
It is also capable to reverse incoherent sampling, in order to get more accurate
...
...
SignalProcessing/Sinefit.py
View file @
7197fcd5
# To change this template, choose Tools | Templates
# and open the template in the editor.
__author__
=
"federico"
__date__
=
"$Jul 11, 2011 2:40:18 PM$"
__author__
=
"Federico Asara"
__copyright__
=
"Copyright 2007, The Cogent Project"
__credits__
=
[
"Federico Asara"
,
"Juan David Gonzalez Cobas"
]
__license__
=
"GPL2"
__version__
=
"1.0.0"
__maintainer__
=
"Federico Asara"
__email__
=
"federico.asara@gmail.com"
__status__
=
"Production"
from
numpy
import
*
from
scipy
import
optimize
...
...
SignalProcessing/SingleToneSignal.py
View file @
7197fcd5
__author__
=
"Federico Asara"
__copyright__
=
"Copyright 2007, The Cogent Project"
__credits__
=
[
"Federico Asara"
,
"Juan David Gonzalez Cobas"
]
__license__
=
"GPL2"
__version__
=
"1.0.0"
__maintainer__
=
"Federico Asara"
__email__
=
"federico.asara@gmail.com"
__status__
=
"Production"
from
Signal
import
*
# For frequency detection and unit-testin
...
...
SignalProcessing/TwoToneSignal.py
View file @
7197fcd5
__author__
=
"Federico Asara"
__copyright__
=
"Copyright 2007, The Cogent Project"
__credits__
=
[
"Federico Asara"
,
"Juan David Gonzalez Cobas"
]
__license__
=
"GPL2"
__version__
=
"1.0.0"
__maintainer__
=
"Federico Asara"
__email__
=
"federico.asara@gmail.com"
__status__
=
"Production"
from
Signal
import
*
def
gcd
(
a
,
b
):
...
...
@@ -90,8 +99,37 @@ class TwoToneSignal(Signal):
N2
=
floor
(
0.5
+
2
*
pi
*
self
.
rate
/
self
.
w2
)
N0
=
lcm
(
N1
,
N2
)
N
=
N
-
(
N
%
N0
)
# while (N0 % 2) == 1 and N
N
=
self
.
nsamples
-
(
self
.
nsamples
%
N0
)
if
N0
%
2
:
print
N0
,
'is odd'
while
((
N
/
N1
-
N
/
N2
)
%
2
)
==
1
:
print
(
N
/
N1
-
N
/
N2
),
'is odd'
N
-=
N0
else
:
print
N0
,
'is even'
ff
=
abs
(
fft
.
fft
(
self
.
fulldata
))
lbnd
=
max
(
ff
)
*
10e-12
self
.
fft
=
ff
=
where
(
ff
<
lbnd
,
10e-12
,
ff
)
hff
=
ff
[:
len
(
ff
)
/
2
]
self
.
lfft
=
lff
=
10
*
log10
(
ff
)
self
.
m1
=
m1
=
argmax
(
hff
);
self
.
m2
=
m2
=
argmax
(
hstack
([
hff
[:
m1
-
1
],
array
([
0
,
0
,
0
]),
hff
[
m1
+
2
:]]))
self
.
tow1
=
tow1
=
2
*
pi
*
self
.
rate
*
float
(
m1
)
/
self
.
nsamples
self
.
tow2
=
tow2
=
2
*
pi
*
self
.
rate
*
float
(
m2
)
/
self
.
nsamples
(
self
.
w1
,
self
.
a1
,
self
.
b1
),
(
self
.
w2
,
self
.
a2
,
self
.
b2
),
self
.
c0
=
\
Sinefit
.
doubleSinefit4matrix
(
self
.
fulldata
,
self
.
rate
**-
1
,
tow1
,
tow2
)
self
.
amplitude1
=
hypot
(
self
.
a1
,
self
.
b1
)
self
.
amplitude2
=
hypot
(
self
.
a2
,
self
.
b2
)
self
.
phase1
=
arctan2
(
self
.
b1
,
self
.
a1
)
self
.
phase2
=
arctan2
(
self
.
b2
,
self
.
a2
)
delta
=
abs
(
self
.
w1
-
self
.
w2
)
...
...
@@ -111,20 +149,4 @@ class TwoToneSignal(Signal):
self
.
imd
=
10
*
log10
(
meaningful
/
interferences
)
# fix incoherency
# self.report()
fd
=
abs
(
self
.
w1
+
self
.
w2
)
/
4.
/
pi
print
"fd is"
,
fd
wModIndex
=
self
.
nsamples
*
fd
/
self
.
rate
print
"wModIndex is"
,
wModIndex
factor
=
(
wModIndex
-
(
wModIndex
%
2
))
/
wModIndex
limit
=
floor
(
self
.
nsamples
*
factor
)
print
"limit is"
,
limit
return
SignalProcessing/Utilities.py
View file @
7197fcd5
__author__
=
"Federico Asara"
__copyright__
=
"Copyright 2007, The Cogent Project"
__credits__
=
[
"Federico Asara"
,
"Juan David Gonzalez Cobas"
]
__license__
=
"GPL2"
__version__
=
"1.0.0"
__maintainer__
=
"Federico Asara"
__email__
=
"federico.asara@gmail.com"
__status__
=
"Production"
from
ConfigParser
import
RawConfigParser
from
numpy
import
max
,
abs
,
sum
,
sqrt
,
log10
from
time
import
time
...
...
SignalProcessing/WindowFunction.py
View file @
7197fcd5
# To change this template, choose Tools | Templates
# and open the template in the editor.
__author__
=
"federico"
__date__
=
"$Jul 11, 2011 2:42:12 PM$"
__author__
=
"Federico Asara"
__copyright__
=
"Copyright 2007, The Cogent Project"
__credits__
=
[
"Federico Asara"
,
"Juan David Gonzalez Cobas"
]
__license__
=
"GPL2"
__version__
=
"1.0.0"
__maintainer__
=
"Federico Asara"
__email__
=
"federico.asara@gmail.com"
__status__
=
"Production"
from
numpy
import
ones
,
bartlett
,
blackman
,
hamming
,
hanning
,
kaiser
...
...
SignalProcessing/WindowedSignal.py
View file @
7197fcd5
__author__
=
"Federico Asara"
__copyright__
=
"Copyright 2007, The Cogent Project"
__credits__
=
[
"Federico Asara"
,
"Juan David Gonzalez Cobas"
]
__license__
=
"GPL2"
__version__
=
"1.0.0"
__maintainer__
=
"Federico Asara"
__email__
=
"federico.asara@gmail.com"
__status__
=
"Production"
from
numpy
import
*
class
WindowedSignal
:
...
...
SignalProcessing/__init__.py
View file @
7197fcd5
__author__
=
"federico"
__date__
=
"$Jul 11, 2011 2:39:08 PM$"
__author__
=
"Federico Asara"
__copyright__
=
"Copyright 2007, The Cogent Project"
__credits__
=
[
"Federico Asara"
,
"Juan David Gonzalez Cobas"
]
__license__
=
"GPL2"
__version__
=
"1.0.0"
__maintainer__
=
"Federico Asara"
__email__
=
"federico.asara@gmail.com"
__status__
=
"Production"
adctest.py
View file @
7197fcd5
__author__
=
"Federico Asara"
__copyright__
=
"Copyright 2007, The Cogent Project"
__credits__
=
[
"Federico Asara"
,
"Juan David Gonzalez Cobas"
]
__license__
=
"GPL2"
__version__
=
"1.0.0"
__maintainer__
=
"Federico Asara"
__email__
=
"federico.asara@gmail.com"
__status__
=
"Production"
import
qtGUI
as
GUI
GUI
.
start
()
...
...
qtGUI/MainWindow.py
View file @
7197fcd5
__author__
=
"Federico Asara"
__copyright__
=
"Copyright 2007, The Cogent Project"
__credits__
=
[
"Federico Asara"
,
"Juan David Gonzalez Cobas"
]
__license__
=
"GPL2"
__version__
=
"1.0.0"
__maintainer__
=
"Federico Asara"
__email__
=
"federico.asara@gmail.com"
__status__
=
"Production"
from
PyQt4.QtCore
import
*
from
PyQt4.QtGui
import
*
from
PyQt4.Qwt5
import
*
...
...
qtGUI/ModuleSelector.py
View file @
7197fcd5
__author__
=
"Federico Asara"
__copyright__
=
"Copyright 2007, The Cogent Project"
__credits__
=
[
"Federico Asara"
,
"Juan David Gonzalez Cobas"
]
__license__
=
"GPL2"
__version__
=
"1.0.0"
__maintainer__
=
"Federico Asara"
__email__
=
"federico.asara@gmail.com"
__status__
=
"Production"
from
PyQt4.QtCore
import
*
from
PyQt4.QtGui
import
*
...
...
qtGUI/SourceSelector.py
View file @
7197fcd5
__author__
=
"Federico Asara"
__copyright__
=
"Copyright 2007, The Cogent Project"
__credits__
=
[
"Federico Asara"
,
"Juan David Gonzalez Cobas"
]
__license__
=
"GPL2"
__version__
=
"1.0.0"
__maintainer__
=
"Federico Asara"
__email__
=
"federico.asara@gmail.com"
__status__
=
"Production"
from
PyQt4.QtCore
import
*
from
PyQt4.QtGui
import
*
...
...
qtGUI/__init__.py
View file @
7197fcd5
__author__
=
"Federico Asara"
__date__
=
"$Jul 11, 2011 5:22:02 PM$"
__author__
=
"Federico Asara"
__copyright__
=
"Copyright 2007, The Cogent Project"
__credits__
=
[
"Federico Asara"
,
"Juan David Gonzalez Cobas"
]
__license__
=
"GPL2"
__version__
=
"1.0.0"
__maintainer__
=
"Federico Asara"
__email__
=
"federico.asara@gmail.com"
__status__
=
"Production"
def
start
():
import
sys
...
...
server.py
View file @
7197fcd5
__author__
=
"Federico Asara"
__copyright__
=
"Copyright 2007, The Cogent Project"
__credits__
=
[
"Federico Asara"
,
"Juan David Gonzalez Cobas"
]
__license__
=
"GPL2"
__version__
=
"1.0.0"
__maintainer__
=
"Federico Asara"
__email__
=
"federico.asara@gmail.com"
__status__
=
"Production"
import
sys
import
commands
import
PAGE
import
PAGE.Agilent33250A
,
PAGE
.
Sis33
,
PAGE
.
SineWaveform
import
Pyro4
print
'Agilent'
agilent
=
PAGE
.
Agilent33250A
.
target
()
agilent
.
device
=
sys
.
argv
[
1
]
agSerial
=
sys
.
argv
[
1
]
sis33Device
=
int
(
sys
.
argv
[
2
])
agName
,
sis33name
,
sineName
=
'agilent'
,
'sis33'
,
'sine'
print
'Agilent 33250A, via
%
s:
%
s'
%
(
agSerial
,
agName
)
agilent
=
PAGE
.
Agilent33250A
.
target
(
device
=
agSerial
)
agilent
.
connect
()
print
'Si
s33'
sis33
=
PAGE
.
Sis33
.
target
(
sys
.
argv
[
2
]
)
print
'Si
S 33xx, via
%
s:
%
s'
%
(
sis33Device
,
sis33Name
)
sis33
=
PAGE
.
Sis33
.
target
(
index
=
sis33Device
)
print
'Sine
'
print
'Sine
Waveform:'
,
sineName
sine
=
PAGE
.
SineWaveform
.
target
()
print
'Daemon'
...
...
@@ -24,7 +36,7 @@ uris = map(daemon.register, (agilent, sis33, sine))
print
'Nameserver'
ns
=
Pyro4
.
locateNS
()
map
(
ns
.
register
,
(
'agilent'
,
'sis33'
,
'sine'
),
uris
)
map
(
ns
.
register
,
(
agName
,
sis33Name
,
sineName
),
uris
)
print
'Run'
daemon
.
requestLoop
()
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment