|
4 | 4 | from dataclasses import KW_ONLY, dataclass |
5 | 5 | from typing import TypeVar |
6 | 6 |
|
| 7 | +import numpy as np |
| 8 | + |
7 | 9 | from fastcs.attribute_io import AttributeIO |
8 | 10 | from fastcs.attribute_io_ref import AttributeIORef |
9 | 11 | from fastcs.attributes import AttrR, AttrRW, AttrW |
10 | 12 | from fastcs.connections import IPConnection, IPConnectionSettings |
11 | 13 | from fastcs.controller import Controller |
12 | | -from fastcs.datatypes import Enum, Float, Int |
| 14 | +from fastcs.datatypes import Enum, Float, Int, Waveform |
13 | 15 | from fastcs.wrappers import command, scan |
14 | 16 |
|
15 | 17 | NumberT = TypeVar("NumberT", int, float) |
@@ -68,6 +70,7 @@ async def update( |
68 | 70 | class TemperatureController(Controller): |
69 | 71 | ramp_rate = AttrRW(Float(), io_ref=TemperatureControllerAttributeIORef(name="R")) |
70 | 72 | power = AttrR(Float(), io_ref=TemperatureControllerAttributeIORef(name="P")) |
| 73 | + voltages = AttrR(Waveform(np.int32, shape=(4,))) |
71 | 74 |
|
72 | 75 | def __init__(self, settings: TemperatureControllerSettings) -> None: |
73 | 76 | self.connection = IPConnection() |
@@ -103,6 +106,9 @@ async def update_voltages(self): |
103 | 106 | voltages = json.loads( |
104 | 107 | (await self.connection.send_query(f"{query}\r\n")).strip("\r\n") |
105 | 108 | ) |
| 109 | + |
| 110 | + await self.voltages.update(voltages) |
| 111 | + |
106 | 112 | for index, controller in enumerate(self._ramp_controllers): |
107 | 113 | self.log_event( |
108 | 114 | "Update voltages", |
|
0 commit comments