Skip to content

Commit 0c6dca4

Browse files
committed
Add BundleId attribute for advance fetching values
1 parent b4f69fd commit 0c6dca4

File tree

2 files changed

+86
-26
lines changed

2 files changed

+86
-26
lines changed

wolf_comm/models.py

Lines changed: 72 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -34,13 +34,18 @@ def name(self):
3434
def parameter_id(self):
3535
...
3636

37+
@property
38+
@abstractmethod
39+
def bundle_id(self):
40+
...
41+
3742
@property
3843
@abstractmethod
3944
def parent(self):
4045
...
4146

4247
def __str__(self) -> str:
43-
return "%s -> %s[%d][%d] of %s" % (self.__class__.__name__, self.name, self.parameter_id, self.value_id, self.parent)
48+
return "%s -> %s[%d][%d][%d] of %s" % (self.__class__.__name__, self.name, self.parameter_id, self.bundle_id, self.value_id, self.parent)
4449

4550

4651
class SimpleParameter(Parameter):
@@ -67,12 +72,17 @@ def parent(self):
6772
@property
6873
def parameter_id(self):
6974
return self._parameter_id
75+
76+
@property
77+
def bundle_id(self):
78+
return self._bundle_id
7079

71-
def __init__(self, value_id: int, name: str, parent: str, parameter_id: int):
80+
def __init__(self, value_id: int, name: str, parent: str, parameter_id: int, bundle_id: int):
7281
self._value_id = value_id
7382
self._name = name
7483
self._parent = parent
7584
self._parameter_id = parameter_id
85+
self._bundle_id = bundle_id
7686

7787

7888
class UnitParameter(Parameter, ABC):
@@ -105,6 +115,10 @@ def name(self, name: str):
105115
@property
106116
def value_id(self):
107117
return self._value_id
118+
119+
@property
120+
def bundle_id(self):
121+
return self._bundle_id
108122

109123
@value_id.setter
110124
def value_id(self, value_id: int):
@@ -114,12 +128,12 @@ def value_id(self, value_id: int):
114128
def parent(self):
115129
return self._parent
116130

117-
def __init__(self, value_id: int, name: str, parent: str, parameter_id: int):
131+
def __init__(self, value_id: int, name: str, parent: str, parameter_id: int, bundle_id: int):
118132
self._value_id = value_id
119133
self._name = name
120134
self._parent = parent
121135
self._parameter_id = parameter_id
122-
136+
self._bundle_id = bundle_id
123137

124138
class Pressure(UnitParameter):
125139
@property
@@ -146,16 +160,20 @@ def value_id(self):
146160
def value_id(self, value_id: int):
147161
self._value_id = value_id
148162

163+
@property
164+
def bundle_id(self):
165+
return self._bundle_id
166+
149167
@property
150168
def parent(self):
151169
return self._parent
152170

153-
def __init__(self, value_id: int, name: str, parent: str, parameter_id: int):
171+
def __init__(self, value_id: int, name: str, parent: str, parameter_id: int, bundle_id: int):
154172
self._value_id = value_id
155173
self._name = name
156174
self._parent = parent
157175
self._parameter_id = parameter_id
158-
176+
self._bundle_id = bundle_id
159177

160178
class HoursParameter(UnitParameter):
161179
@property
@@ -182,16 +200,20 @@ def value_id(self):
182200
def value_id(self, value_id: int):
183201
self._value_id = value_id
184202

203+
@property
204+
def bundle_id(self):
205+
return self._bundle_id
206+
185207
@property
186208
def parent(self):
187209
return self._parent
188210

189-
def __init__(self, value_id: int, name: str, parent: str, parameter_id: int):
211+
def __init__(self, value_id: int, name: str, parent: str, parameter_id: int, bundle_id: int):
190212
self._value_id = value_id
191213
self._name = name
192214
self._parent = parent
193215
self._parameter_id = parameter_id
194-
216+
self._bundle_id = bundle_id
195217

196218
class PercentageParameter(UnitParameter):
197219

@@ -219,15 +241,20 @@ def value_id(self):
219241
def value_id(self, value_id: int):
220242
self._value_id = value_id
221243

244+
@property
245+
def bundle_id(self):
246+
return self._bundle_id
247+
222248
@property
223249
def parent(self):
224250
return self._parent
225251

226-
def __init__(self, value_id: int, name: str, parent: str, parameter_id: int):
252+
def __init__(self, value_id: int, name: str, parent: str, parameter_id: int, bundle_id: int):
227253
self._value_id = value_id
228254
self._name = name
229255
self._parent = parent
230256
self._parameter_id = parameter_id
257+
self._bundle_id = bundle_id
231258

232259
class PowerParameter(UnitParameter):
233260

@@ -255,15 +282,20 @@ def value_id(self):
255282
def value_id(self, value_id: int):
256283
self._value_id = value_id
257284

285+
@property
286+
def bundle_id(self):
287+
return self._bundle_id
288+
258289
@property
259290
def parent(self):
260291
return self._parent
261292

262-
def __init__(self, value_id: int, name: str, parent: str, parameter_id: int):
293+
def __init__(self, value_id: int, name: str, parent: str, parameter_id: int, bundle_id: int):
263294
self._value_id = value_id
264295
self._name = name
265296
self._parent = parent
266297
self._parameter_id = parameter_id
298+
self._bundle_id = bundle_id
267299

268300
class EnergyParameter(UnitParameter):
269301

@@ -291,15 +323,20 @@ def value_id(self):
291323
def value_id(self, value_id: int):
292324
self._value_id = value_id
293325

326+
@property
327+
def bundle_id(self):
328+
return self._bundle_id
329+
294330
@property
295331
def parent(self):
296332
return self._parent
297333

298-
def __init__(self, value_id: int, name: str, parent: str, parameter_id: int):
334+
def __init__(self, value_id: int, name: str, parent: str, parameter_id: int, bundle_id: int):
299335
self._value_id = value_id
300336
self._name = name
301337
self._parent = parent
302338
self._parameter_id = parameter_id
339+
self._bundle_id = bundle_id
303340

304341
class RPMParameter(UnitParameter):
305342

@@ -327,15 +364,20 @@ def value_id(self):
327364
def value_id(self, value_id: int):
328365
self._value_id = value_id
329366

367+
@property
368+
def bundle_id(self):
369+
return self._bundle_id
370+
330371
@property
331372
def parent(self):
332373
return self._parent
333374

334-
def __init__(self, value_id: int, name: str, parent: str, parameter_id: int):
375+
def __init__(self, value_id: int, name: str, parent: str, parameter_id: int, bundle_id: int):
335376
self._value_id = value_id
336377
self._name = name
337378
self._parent = parent
338379
self._parameter_id = parameter_id
380+
self._bundle_id = bundle_id
339381

340382
class FlowParameter(UnitParameter):
341383

@@ -363,15 +405,20 @@ def value_id(self):
363405
def value_id(self, value_id: int):
364406
self._value_id = value_id
365407

408+
@property
409+
def bundle_id(self):
410+
return self._bundle_id
411+
366412
@property
367413
def parent(self):
368414
return self._parent
369415

370-
def __init__(self, value_id: int, name: str, parent: str, parameter_id: int):
416+
def __init__(self, value_id: int, name: str, parent: str, parameter_id: int, bundle_id: int):
371417
self._value_id = value_id
372418
self._name = name
373419
self._parent = parent
374420
self._parameter_id = parameter_id
421+
self._bundle_id = bundle_id
375422

376423
class FrequencyParameter(UnitParameter):
377424

@@ -399,15 +446,20 @@ def value_id(self):
399446
def value_id(self, value_id: int):
400447
self._value_id = value_id
401448

449+
@property
450+
def bundle_id(self):
451+
return self._bundle_id
452+
402453
@property
403454
def parent(self):
404455
return self._parent
405456

406-
def __init__(self, value_id: int, name: str, parent: str, parameter_id: int):
457+
def __init__(self, value_id: int, name: str, parent: str, parameter_id: int, bundle_id: int):
407458
self._value_id = value_id
408459
self._name = name
409460
self._parent = parent
410461
self._parameter_id = parameter_id
462+
self._bundle_id = bundle_id
411463

412464
class ListItem:
413465
name: str
@@ -435,6 +487,10 @@ def value_id(self):
435487
def value_id(self, value_id: int):
436488
self._value_id = value_id
437489

490+
@property
491+
def bundle_id(self):
492+
return self._bundle_id
493+
438494
@property
439495
def name(self):
440496
return self._name
@@ -447,12 +503,13 @@ def name(self, name: str):
447503
def parent(self):
448504
return self._parent
449505

450-
def __init__(self, value_id: int, name: str, parent: str, items: list[ListItem], parameter_id: int):
506+
def __init__(self, value_id: int, name: str, parent: str, items: list[ListItem], parameter_id: int, bundle_id: int):
451507
self._value_id = value_id
452508
self._name = name
453509
self._parent = parent
454510
self.items = items
455511
self._parameter_id = parameter_id
512+
self._bundle_id = bundle_id
456513

457514
def __str__(self) -> str:
458515
return super().__str__() + " items: " + ", ".join([item.__str__() for item in self.items])

wolf_comm/wolf_client.py

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -301,30 +301,33 @@ def _map_parameter(parameter: dict, parent: str) -> Parameter:
301301
name = group + parameter[NAME]
302302
parameter_id = parameter[PARAMETER_ID]
303303

304+
if BUNDLE_ID in parameter:
305+
bundle_id = parameter[BUNDLE_ID]
306+
304307
if UNIT in parameter:
305308
unit = parameter[UNIT]
306309
if unit == CELSIUS_TEMPERATURE:
307-
return Temperature(value_id, name, parent, parameter_id)
310+
return Temperature(value_id, name, parent, parameter_id, bundle_id)
308311
elif unit == BAR:
309-
return Pressure(value_id, name, parent, parameter_id)
312+
return Pressure(value_id, name, parent, parameter_id, bundle_id)
310313
elif unit == PERCENTAGE:
311-
return PercentageParameter(value_id, name, parent, parameter_id)
314+
return PercentageParameter(value_id, name, parent, parameter_id, bundle_id)
312315
elif unit == HOUR:
313-
return HoursParameter(value_id, name, parent, parameter_id)
316+
return HoursParameter(value_id, name, parent, parameter_id, bundle_id)
314317
elif unit == KILOWATT:
315-
return PowerParameter(value_id, name, parent, parameter_id)
318+
return PowerParameter(value_id, name, parent, parameter_id, bundle_id)
316319
elif unit == KILOWATTHOURS:
317-
return EnergyParameter(value_id, name, parent, parameter_id)
320+
return EnergyParameter(value_id, name, parent, parameter_id, bundle_id)
318321
elif unit == RPM:
319-
return RPMParameter(value_id, name, parent, parameter_id)
322+
return RPMParameter(value_id, name, parent, parameter_id, bundle_id)
320323
elif unit == FLOW:
321-
return FlowParameter(value_id, name, parent, parameter_id)
324+
return FlowParameter(value_id, name, parent, parameter_id, bundle_id)
322325
elif unit == FREQUENCY:
323-
return FrequencyParameter(value_id, name, parent, parameter_id)
326+
return FrequencyParameter(value_id, name, parent, parameter_id, bundle_id)
324327
elif LIST_ITEMS in parameter:
325328
items = [ListItem(list_item[VALUE], list_item[DISPLAY_TEXT]) for list_item in parameter[LIST_ITEMS]]
326-
return ListItemParameter(value_id, name, parent, items, parameter_id)
327-
return SimpleParameter(value_id, name, parent, parameter_id)
329+
return ListItemParameter(value_id, name, parent, items, parameter_id, bundle_id)
330+
return SimpleParameter(value_id, name, parent, parameter_id, bundle_id)
328331

329332
@staticmethod
330333
def _map_view(view: dict):

0 commit comments

Comments
 (0)