Browse Source

modification related to VariableType.__str__

Maxime Alves LIRMM@home 4 years ago
parent
commit
bc60ac937a
3 changed files with 16 additions and 7 deletions
  1. 3
    3
      pyheatpump/cli.py
  2. 4
    4
      pyheatpump/models/variable.py
  3. 9
    0
      pyheatpump/models/variable_type.py

+ 3
- 3
pyheatpump/cli.py View File

60
     res = modbus.read_holding_registers(analog.start_address, analog.end_address)
60
     res = modbus.read_holding_registers(analog.start_address, analog.end_address)
61
 
61
 
62
     for r in range(len(res)):
62
     for r in range(len(res)):
63
-        val = VariableValue(str(analog), r + analog.start_address, res[r])
63
+        val = VariableValue(analog, r + analog.start_address, res[r])
64
         val.insert()
64
         val.insert()
65
 
65
 
66
 
66
 
69
     res = modbus.read_holding_registers(integer.start_address, integer.end_address)
69
     res = modbus.read_holding_registers(integer.start_address, integer.end_address)
70
 
70
 
71
     for r in res:
71
     for r in res:
72
-        val = VariableValue(str(integer), r + integer.start_address, res[r])
72
+        val = VariableValue(integer, r + integer.start_address, res[r])
73
         val.insert()
73
         val.insert()
74
 
74
 
75
     # Digital - bool
75
     # Digital - bool
77
     res = modbus.read_coils(digital.start_address, digital.end_address)
77
     res = modbus.read_coils(digital.start_address, digital.end_address)
78
 
78
 
79
     for r in res:
79
     for r in res:
80
-        val = VariableValue(str(integer), r + integer.start_address, res[r])
80
+        val = VariableValue(integer), r + integer.start_address, res[r])
81
         val.insert()
81
         val.insert()

+ 4
- 4
pyheatpump/models/variable.py View File

10
     address: int = None
10
     address: int = None
11
     unit: str = None
11
     unit: str = None
12
     last_update: date = None
12
     last_update: date = None
13
-    type: str = None
13
+    type: VariableType = None
14
 
14
 
15
     def __init__(self, **kwargs):
15
     def __init__(self, **kwargs):
16
         super().__init__(**kwargs)
16
         super().__init__(**kwargs)
19
     @staticmethod
19
     @staticmethod
20
     def getall():
20
     def getall():
21
         return dict([
21
         return dict([
22
-            (row.slabel, Variable.getall_of_type(row))
22
+            (str(row), Variable.getall_of_type(row))
23
             for _, row in VariableType.getall().items()
23
             for _, row in VariableType.getall().items()
24
         ])
24
         ])
25
 
25
 
34
             WHERE type = '{}'
34
             WHERE type = '{}'
35
                 AND address >= {}
35
                 AND address >= {}
36
                 AND address <= {}
36
                 AND address <= {}
37
-            """.format(type.slabel, type.start_address, type.end_address))
37
+            """.format(type, type.start_address, type.end_address))
38
         ])
38
         ])
39
 
39
 
40
 
40
 
53
                 var.type = '{}'
53
                 var.type = '{}'
54
                 AND var.address >= {}
54
                 AND var.address >= {}
55
                 AND var.address <= {}
55
                 AND var.address <= {}
56
-            """.format(type.slabel, type.start_address, type.end_address))
56
+            """.format(type, type.start_address, type.end_address))
57
         ])
57
         ])
58
 
58
 
59
 
59
 

+ 9
- 0
pyheatpump/models/variable_type.py View File

20
         return self.slabel or self.label[0]
20
         return self.slabel or self.label[0]
21
 
21
 
22
 
22
 
23
+    def cast(self):
24
+        if self.type == 'float':
25
+            return float
26
+        if self.type == 'int':
27
+            return int
28
+        if self.type == 'bool':
29
+            return bool
30
+
31
+
23
     def select():
32
     def select():
24
         try:
33
         try:
25
             elt = next(super().select('slabel', 'var_type'))
34
             elt = next(super().select('slabel', 'var_type'))

Loading…
Cancel
Save