Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
TASTE
asn1-value-editor
Commits
f99bcec5
Commit
f99bcec5
authored
Mar 18, 2016
by
Thanassis Tsiodras
Browse files
Testing TMs infinite recursion
parent
5d942756
Changes
1
Hide whitespace changes
Inline
Side-by-side
asn1_value_editor/UserWidgets.py
View file @
f99bcec5
...
...
@@ -21,6 +21,7 @@ __url__ = "http://taste.tuxfamily.org"
import
sys
import
os
import
importlib
from
PySide.QtCore
import
(
QObject
,
Signal
,
Slot
,
Qt
,
QRectF
,
QPointF
,
QPoint
)
from
PySide.QtGui
import
QDockWidget
...
...
@@ -78,20 +79,20 @@ def connect_to_db():
raise
Exception
(
"The sql_db/db.info is either missing or invalid!"
)
os
.
chdir
(
"sql_db"
)
for
key
,
val
in
vars
(
__import__
(
dbname
+
"_model"
)).
iteritems
():
if
key
not
in
globals
():
globals
()[
key
]
=
val
global
db_module
db_module
=
importlib
.
import_module
(
dbname
+
"_model"
)
os
.
chdir
(
".."
)
from
sqlalchemy
import
create_engine
engine
=
create_engine
(
sqlalchemy_url
,
echo
=
False
)
g
lobals
()[
'Base'
]
.
metadata
.
create_all
(
engine
)
g
etattr
(
db_module
,
'Base'
)
.
metadata
.
create_all
(
engine
)
from
sqlalchemy.orm
import
sessionmaker
SessionFactory
=
sessionmaker
(
bind
=
engine
)
session
=
SessionFactory
()
return
session
,
dbname
class
SQLTelecommands
(
TC
):
#class SQLTelecommands(TC):
class
SQLTelecommands
(
object
):
'''Load telecommands from the database'''
name
=
'Get TCs from DB'
session
=
None
...
...
@@ -99,13 +100,14 @@ class SQLTelecommands(TC):
def
__init__
(
self
,
asn1_typename
,
parent
=
None
):
''' Initialise the widget '''
super
(
SQLTelecommands
,
self
).
__init__
(
asn1_typename
,
parent
)
#super(SQLTelecommands, self).__init__(asn1_typename, parent)
super
(
SQLTelecommands
,
self
).
__init__
()
if
SQLTelecommands
.
session
is
None
:
SQLTelecommands
.
session
,
SQLTelecommands
.
dbname
=
\
connect_to_db
()
self
.
_asn1_typename
=
asn1_typename
typename_sql
=
asn1_typename
+
"_SQL"
self
.
_asn1_klass
=
g
lobals
().
get
(
typename_sql
,
None
)
self
.
_asn1_klass
=
g
etattr
(
db_module
,
typename_sql
,
None
)
if
self
.
_asn1_klass
is
None
:
print
"No class"
,
typename_sql
,
"found in"
,
SQLTelecommands
.
dbname
...
...
@@ -133,7 +135,7 @@ class SQLTelecommands(TC):
if
row
is
not
None
:
return
row
.
asn1
else
:
r
eturn
None
r
aise
IndexError
(
"Index %d out of range"
%
idx
)
def
onUpdateButtonClick
(
self
,
lineNb
):
''' When user clicks on Update, the content of the selected TC will
...
...
@@ -148,7 +150,8 @@ class SQLTelecommands(TC):
self
.
send
.
emit
(
as_asn1
)
# use signal to send data to the GUI
class
SQLTelemetries
(
TM
):
#class SQLTelemetries(TM):
class
SQLTelemetries
(
object
):
'''Save telemetries in the database'''
name
=
'Store TMs in DB'
session
=
None
...
...
@@ -156,7 +159,8 @@ class SQLTelemetries(TM):
def
__init__
(
self
,
parent
=
None
):
''' Initialise the widget '''
super
(
SQLTelemetries
,
self
).
__init__
(
parent
)
#super(SQLTelemetries, self).__init__(parent)
super
(
SQLTelemetries
,
self
).
__init__
()
# to do here = display a window with two buttons:
# "start storing in DB", "stop storing in DB"
self
.
mode
=
'recording'
...
...
@@ -169,12 +173,11 @@ class SQLTelemetries(TM):
''' Receive ASN.1 value '''
if
self
.
mode
==
'recording'
:
klass
=
value
.
__class__
.
__name__
+
"_SQL"
asn1_klass
=
g
lobals
().
get
(
klass
,
None
)
asn1_klass
=
g
etattr
(
db_module
,
klass
,
None
)
if
asn1_klass
is
None
:
raise
Exception
(
"No class "
+
klass
+
" found in "
+
SQLTelemetries
.
dbname
)
db_row
=
object
.
__new__
(
globals
()[
asn1_klass
])
db_row
.
__init__
(
value
)
db_row
=
getattr
(
db_module
,
asn1_klass
)(
value
)
iid
=
db_row
.
save
(
SQLTelemetries
.
session
)
SQLTelemetries
.
session
.
commit
()
return
iid
...
...
Write
Preview
Supports
Markdown
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