Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
P
PandABox-tst
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
Wiki
Wiki
image/svg+xml
Discourse
Discourse
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
Projects
PandABox-tst
Commits
d8a8c178
Commit
d8a8c178
authored
Jun 06, 2017
by
Christopher Turner
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Refactor encoder tests
parent
4f035b52
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
60 additions
and
87 deletions
+60
-87
Encoder.py
tests/Encoder.py
+12
-33
EncoderLoopBack.py
tests/EncoderLoopBack.py
+39
-0
EncoderUnplugged.py
tests/EncoderUnplugged.py
+5
-50
LoopBack.py
tests/LoopBack.py
+3
-3
Unplugged.py
tests/Unplugged.py
+1
-1
No files found.
tests/Encoder.py
View file @
d8a8c178
...
...
@@ -3,13 +3,16 @@ import PandATest
from
collections
import
OrderedDict
class
DaughterCardException
(
Exception
):
pass
class
Encoder
(
PandATest
.
PandATest
):
def
__init__
(
self
,
*
args
,
**
kwargs
):
super
(
Encoder
,
self
)
.
__init__
(
*
args
,
**
kwargs
)
def
test_code
(
self
):
def
setup_quad
(
self
):
#(cmd, (expected result, +- bound of result))
setup_quad_commands
=
OrderedDict
([
(
'INENC{}.BYPASS=On'
.
format
(
self
.
blocknum
),
(
'OK'
,
0
)),
...
...
@@ -17,53 +20,29 @@ class Encoder(PandATest.PandATest):
(
'INENC{}.PROTOCOL=Quadrature'
.
format
(
self
.
blocknum
),
(
'OK'
,
0
)),
(
'OUTENC{}.PROTOCOL=Quadrature'
.
format
(
self
.
blocknum
),
(
'OK'
,
0
))
])
setup_ssi_commands
=
OrderedDict
([
(
'INENC{}.PROTOCOL=SSI'
.
format
(
self
.
blocknum
),
(
'OK'
,
0
)),
(
'OUTENC{}.PROTOCOL=SSI'
.
format
(
self
.
blocknum
),
(
'OK'
,
0
))
])
#SET FOR QUADRATURE
for
cmd
,
expected
in
setup_quad_commands
.
items
():
response
=
self
.
send_cmd
(
cmd
)
self
.
test_result
.
append
(
self
.
check_response
(
response
,
expected
[
0
],
cmd
,
expected
[
1
]))
self
.
outputs
=
[
'A'
,
'B'
,
'Z'
]
self
.
inputs
=
self
.
outputs
self
.
ch_connect
=
{
self
.
outputs
[
0
]:
self
.
inputs
[
0
],
self
.
outputs
[
1
]:
self
.
inputs
[
1
],
self
.
outputs
[
2
]:
self
.
inputs
[
2
],
}
default_val
=
0
self
.
toggle_val
(
'OUTENC'
,
''
,
'INENC'
,
''
,
default_val
)
def
setup_ssi
(
self
):
setup_ssi_commands
=
OrderedDict
([
(
'INENC{}.PROTOCOL=SSI'
.
format
(
self
.
blocknum
),
(
'OK'
,
0
)),
(
'OUTENC{}.PROTOCOL=SSI'
.
format
(
self
.
blocknum
),
(
'OK'
,
0
))
])
#SET FOR SSI
for
cmd
,
expected
in
setup_ssi_commands
.
items
():
response
=
self
.
send_cmd
(
cmd
)
self
.
test_result
.
append
(
self
.
check_response
(
response
,
expected
[
0
],
cmd
,
expected
[
1
]))
# #TOGGLE SSI FIELDS
self
.
outputs
=
[
'CLK'
]
self
.
inputs
=
self
.
outputs
self
.
ch_connect
=
{
self
.
outputs
[
0
]:
self
.
inputs
[
0
]
}
self
.
toggle_val
(
'INENC'
,
''
,
'OUTENC'
,
''
,
default_val
)
self
.
outputs
=
[
'DATA'
]
self
.
inputs
=
self
.
outputs
self
.
ch_connect
=
{
self
.
outputs
[
0
]:
self
.
inputs
[
0
]
}
self
.
toggle_val
(
'OUTENC'
,
''
,
'INENC'
,
''
,
default_val
)
def
check_daughter_board
(
self
):
#CHECK FOR CONTROL ENCODERS
response
=
self
.
send_cmd
(
'INENC{}.DCARD_ID?'
.
format
(
self
.
blocknum
))
if
'Encoder Control'
not
in
response
:
print
"Encoder {} daughter board mismatch: {}"
.
format
(
self
.
blocknum
,
response
)
print
"Encoder {} daughter board mismatch: {}"
.
format
(
self
.
blocknum
,
response
)
return
1
else
:
return
0
...
...
tests/EncoderLoopBack.py
0 → 100644
View file @
d8a8c178
#!/bin/env dls-python
import
Encoder
class
EncoderLB
(
Encoder
.
Encoder
):
def
__init__
(
self
,
*
args
,
**
kwargs
):
super
(
EncoderLB
,
self
)
.
__init__
(
*
args
,
**
kwargs
)
def
test_code
(
self
):
self
.
setup_quad
()
self
.
outputs
=
[
'A'
,
'B'
,
'Z'
]
self
.
inputs
=
self
.
outputs
self
.
ch_connect
=
{
self
.
outputs
[
0
]:
self
.
inputs
[
0
],
self
.
outputs
[
1
]:
self
.
inputs
[
1
],
self
.
outputs
[
2
]:
self
.
inputs
[
2
],
}
default_val
=
0
self
.
toggle_val
(
'OUTENC'
,
''
,
'INENC'
,
''
,
default_val
)
self
.
setup_ssi
()
# #TOGGLE SSI FIELDS
self
.
outputs
=
[
'CLK'
]
self
.
inputs
=
self
.
outputs
self
.
ch_connect
=
{
self
.
outputs
[
0
]:
self
.
inputs
[
0
]
}
self
.
toggle_val
(
'INENC'
,
''
,
'OUTENC'
,
''
,
default_val
)
self
.
outputs
=
[
'DATA'
]
self
.
inputs
=
self
.
outputs
self
.
ch_connect
=
{
self
.
outputs
[
0
]:
self
.
inputs
[
0
]
}
self
.
toggle_val
(
'OUTENC'
,
''
,
'INENC'
,
''
,
default_val
)
tests/EncoderUnplugged.py
View file @
d8a8c178
#!/bin/env dls-python
import
PandATest
from
collections
import
OrderedDict
import
Encoder
class
DaughterCardException
(
Exception
):
pass
class
Encoder
(
PandATest
.
PandATest
):
class
EncoderUP
(
Encoder
.
Encoder
):
def
__init__
(
self
,
*
args
,
**
kwargs
):
super
(
Encoder
,
self
)
.
__init__
(
*
args
,
**
kwargs
)
super
(
Encoder
UP
,
self
)
.
__init__
(
*
args
,
**
kwargs
)
self
.
test_type
=
'Unplugged'
def
test_code
(
self
):
#(cmd, (expected result, +- bound of result))
setup_quad_commands
=
OrderedDict
([
(
'INENC{}.BYPASS=On'
.
format
(
self
.
blocknum
),
(
'OK'
,
0
)),
(
'OUTENC{}.BYPASS=On'
.
format
(
self
.
blocknum
),
(
'OK'
,
0
)),
(
'INENC{}.PROTOCOL=Quadrature'
.
format
(
self
.
blocknum
),
(
'OK'
,
0
)),
(
'OUTENC{}.PROTOCOL=Quadrature'
.
format
(
self
.
blocknum
),
(
'OK'
,
0
))
])
setup_ssi_commands
=
OrderedDict
([
(
'INENC{}.PROTOCOL=SSI'
.
format
(
self
.
blocknum
),
(
'OK'
,
0
)),
(
'OUTENC{}.PROTOCOL=SSI'
.
format
(
self
.
blocknum
),
(
'OK'
,
0
))
])
#SET FOR QUADRATURE
for
cmd
,
expected
in
setup_quad_commands
.
items
():
response
=
self
.
send_cmd
(
cmd
)
self
.
test_result
.
append
(
self
.
check_response
(
response
,
expected
[
0
],
cmd
,
expected
[
1
]))
self
.
setup_quad
()
self
.
outputs
=
[
'A'
,
'B'
,
'Z'
]
self
.
inputs
=
self
.
outputs
self
.
ch_connect
=
{
...
...
@@ -42,12 +20,7 @@ class Encoder(PandATest.PandATest):
}
default_val
=
1
self
.
toggle_val
(
'OUTENC'
,
''
,
'INENC'
,
''
,
default_val
)
#SET FOR SSI
for
cmd
,
expected
in
setup_ssi_commands
.
items
():
response
=
self
.
send_cmd
(
cmd
)
self
.
test_result
.
append
(
self
.
check_response
(
response
,
expected
[
0
],
cmd
,
expected
[
1
]))
self
.
setup_ssi
()
# #TOGGLE SSI FIELDS
self
.
outputs
=
[
'CLK'
]
...
...
@@ -64,21 +37,3 @@ class Encoder(PandATest.PandATest):
}
self
.
toggle_val
(
'OUTENC'
,
''
,
'INENC'
,
''
,
default_val
)
def
check_daughter_board
(
self
):
#CHECK FOR CONTROL ENCODERS
response
=
self
.
send_cmd
(
'INENC{}.DCARD_ID?'
.
format
(
self
.
blocknum
))
if
'Encoder Control'
not
in
response
:
print
"Encoder {} daughter board mismatch: {}"
.
format
(
self
.
blocknum
,
response
)
return
1
else
:
return
0
def
toggle_val
(
self
,
out_param
,
out_field
,
in_param
,
in_field
,
default
):
for
outp
in
self
.
outputs
:
for
val
in
[
1
,
0
]:
out_cmd
=
'{}{}.{}={}'
.
format
(
out_param
,
self
.
blocknum
,
outp
,
self
.
toggle_cmd
[
val
])
self
.
set_output
(
out_cmd
)
in_cmd
=
'{}{}.{}?'
.
format
(
in_param
,
self
.
blocknum
,
'{}'
)
self
.
toggle_check
(
in_cmd
,
outp
,
self
.
ch_connect
[
outp
],
default
,
val
)
tests/LoopBack.py
View file @
d8a8c178
...
...
@@ -2,7 +2,7 @@
import
PandATest
import
Lvds
import
Ttl
import
Encoder
import
Encoder
LoopBack
import
os
"""
...
...
@@ -46,7 +46,7 @@ class LoopBack(PandATest.PandATest):
#ENCODER LOOP BACK
self
.
encx
=
[]
for
enc_num
in
range
(
1
,
5
):
self
.
encx
.
append
(
Encoder
.
Encoder
(
*
args
,
**
kwargs
))
self
.
encx
.
append
(
Encoder
LoopBack
.
EncoderLB
(
*
args
,
**
kwargs
))
self
.
encx
[
enc_num
-
1
]
.
blocknum
=
enc_num
def
check_setup
(
self
):
...
...
@@ -56,7 +56,7 @@ class LoopBack(PandATest.PandATest):
if
self
.
encx
[
enc_num
]
.
check_daughter_board
():
enc_ok
=
False
if
not
enc_ok
:
raise
Encoder
.
DaughterCardException
(
raise
Encoder
LoopBack
.
DaughterCardException
(
"Power down PandA and connect control daughter board"
)
else
:
print
"Daughter Cards OK.."
...
...
tests/Unplugged.py
View file @
d8a8c178
...
...
@@ -47,7 +47,7 @@ class Unplugged(PandATest.PandATest):
#ENCODER UNPLUGGED
self
.
encx
=
[]
for
enc_num
in
range
(
1
,
5
):
self
.
encx
.
append
(
Encoder
.
Encoder
(
*
args
,
**
kwargs
))
self
.
encx
.
append
(
Encoder
.
Encoder
UP
(
*
args
,
**
kwargs
))
self
.
encx
[
enc_num
-
1
]
.
blocknum
=
enc_num
self
.
encx
[
enc_num
-
1
]
.
unplugged
=
True
...
...
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