|
@@ -43,12 +43,13 @@ class Variable(RowClass):
|
43
|
43
|
|
44
|
44
|
def exists(self):
|
45
|
45
|
try:
|
46
|
|
- self.type_slabel = self.type.slabel
|
47
|
|
-
|
48
|
46
|
return bool(next(DB.sql(
|
49
|
47
|
"""SELECT 1 FROM variable
|
50
|
|
- WHERE type=:type_slabel AND address=:address
|
51
|
|
- """, self.__dict__)))
|
|
48
|
+ WHERE type=:type AND address=:address
|
|
49
|
+ """, {
|
|
50
|
+ 'type': self.type.slabel,
|
|
51
|
+ 'address': self.address
|
|
52
|
+ })))
|
52
|
53
|
except StopIteration:
|
53
|
54
|
return False
|
54
|
55
|
|
|
@@ -66,7 +67,7 @@ class Variable(RowClass):
|
66
|
67
|
row['address']: Variable(**dict(row))
|
67
|
68
|
for row in DB.sql(
|
68
|
69
|
"""SELECT * FROM variable
|
69
|
|
- WHERE var_type = :slabel
|
|
70
|
+ WHERE type = :slabel
|
70
|
71
|
AND address >= :start_address
|
71
|
72
|
AND address <= :end_address""", {
|
72
|
73
|
|
|
@@ -84,8 +85,13 @@ class Variable(RowClass):
|
84
|
85
|
|
85
|
86
|
@staticmethod
|
86
|
87
|
def getall_values_of_type_since(var_type: VariableType, since: int) -> dict:
|
|
88
|
+ """
|
87
|
89
|
floatcast = lambda x: round(float(x) / 10, 2)
|
88
|
90
|
cast_fct = floatcast if type.slabel == 'A' else lambda x: x
|
|
91
|
+ """
|
|
92
|
+ if not var_type.cast:
|
|
93
|
+ raise Exception('var_type has no cast property')
|
|
94
|
+
|
89
|
95
|
params = {
|
90
|
96
|
'slabel': var_type.slabel,
|
91
|
97
|
'start_address': var_type.start_address,
|
|
@@ -94,7 +100,7 @@ class Variable(RowClass):
|
94
|
100
|
}
|
95
|
101
|
|
96
|
102
|
return {
|
97
|
|
- row['address']: cast_fct(row['value'])
|
|
103
|
+ row['address']: var_type.cast(row['value'])
|
98
|
104
|
|
99
|
105
|
for row in DB.sql(
|
100
|
106
|
"""SELECT var.address as address, val.value as value
|