Skip to content

Commit 7d9dcb1

Browse files
authored
Redesign attribute callbacks (#237)
1 parent 019ae15 commit 7d9dcb1

31 files changed

+281
-278
lines changed

docs/conf.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,8 @@
8888
("py:class", "p4p.nt.ndarray.NTNDArray"),
8989
("py:class", "p4p.nt.NTTable"),
9090
# Problems in FastCS itself
91+
("py:class", "T"),
92+
("py:class", "AttrIOUpdateCallback"),
9193
("py:class", "fastcs.transport.epics.pva.pvi_tree._PviSignalInfo"),
9294
("py:class", "fastcs.logging._logging.LogLevel"),
9395
("py:class", "fastcs.logging._graylog.GraylogEndpoint"),
@@ -102,6 +104,7 @@
102104
]
103105
nitpick_ignore_regex = [
104106
("py:class", "fastcs.*.T"),
107+
("py:obj", "fastcs.*.T"),
105108
(r"py:.*", r"fastcs\.demo.*"),
106109
(r"py:.*", r"tickit.*"),
107110
]

docs/snippets/dynamic.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ async def update(self, attr: AttrR[NumberT, TemperatureControllerAttributeIORef]
7979
response = await self._connection.send_query(f"{query}\r\n")
8080
value = response.strip("\r\n")
8181

82-
await attr.set(attr.dtype(value))
82+
await attr.update(attr.dtype(value))
8383

8484
async def send(
8585
self, attr: AttrW[NumberT, TemperatureControllerAttributeIORef], value: NumberT

docs/snippets/static07.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ async def update(self, attr: AttrR[NumberT, IDAttributeIORef]):
3030
response = await self._connection.send_query("ID?\r\n")
3131
value = response.strip("\r\n")
3232

33-
await attr.set(attr.dtype(value))
33+
await attr.update(attr.dtype(value))
3434

3535

3636
class TemperatureController(Controller):

docs/snippets/static08.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ async def update(self, attr: AttrR[NumberT, TemperatureControllerAttributeIORef]
3535
response = await self._connection.send_query(f"{query}\r\n")
3636
value = response.strip("\r\n")
3737

38-
await attr.set(attr.dtype(value))
38+
await attr.update(attr.dtype(value))
3939

4040

4141
class TemperatureController(Controller):

docs/snippets/static09.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ async def update(self, attr: AttrR[NumberT, TemperatureControllerAttributeIORef]
3535
response = await self._connection.send_query(f"{query}\r\n")
3636
value = response.strip("\r\n")
3737

38-
await attr.set(attr.dtype(value))
38+
await attr.update(attr.dtype(value))
3939

4040
async def send(
4141
self, attr: AttrW[NumberT, TemperatureControllerAttributeIORef], value: NumberT

docs/snippets/static10.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ async def update(self, attr: AttrR[NumberT, TemperatureControllerAttributeIORef]
3636
response = await self._connection.send_query(f"{query}\r\n")
3737
value = response.strip("\r\n")
3838

39-
await attr.set(attr.dtype(value))
39+
await attr.update(attr.dtype(value))
4040

4141
async def send(
4242
self, attr: AttrW[NumberT, TemperatureControllerAttributeIORef], value: NumberT

docs/snippets/static11.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ async def update(self, attr: AttrR[NumberT, TemperatureControllerAttributeIORef]
3737
response = await self._connection.send_query(f"{query}\r\n")
3838
value = response.strip("\r\n")
3939

40-
await attr.set(attr.dtype(value))
40+
await attr.update(attr.dtype(value))
4141

4242
async def send(
4343
self, attr: AttrW[NumberT, TemperatureControllerAttributeIORef], value: NumberT

docs/snippets/static12.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ async def update(self, attr: AttrR[NumberT, TemperatureControllerAttributeIORef]
3939
response = await self._connection.send_query(f"{query}\r\n")
4040
value = response.strip("\r\n")
4141

42-
await attr.set(attr.dtype(value))
42+
await attr.update(attr.dtype(value))
4343

4444
async def send(
4545
self, attr: AttrW[NumberT, TemperatureControllerAttributeIORef], value: NumberT
@@ -94,7 +94,7 @@ async def update_voltages(self):
9494
(await self._connection.send_query("V?\r\n")).strip("\r\n")
9595
)
9696
for index, controller in enumerate(self._ramp_controllers):
97-
await controller.voltage.set(float(voltages[index]))
97+
await controller.voltage.update(float(voltages[index]))
9898

9999

100100
gui_options = EpicsGUIOptions(

docs/snippets/static13.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ async def update(self, attr: AttrR[NumberT, TemperatureControllerAttributeIORef]
4040
response = await self._connection.send_query(f"{query}\r\n")
4141
value = response.strip("\r\n")
4242

43-
await attr.set(attr.dtype(value))
43+
await attr.update(attr.dtype(value))
4444

4545
async def send(
4646
self, attr: AttrW[NumberT, TemperatureControllerAttributeIORef], value: NumberT
@@ -95,12 +95,12 @@ async def update_voltages(self):
9595
(await self._connection.send_query("V?\r\n")).strip("\r\n")
9696
)
9797
for index, controller in enumerate(self._ramp_controllers):
98-
await controller.voltage.set(float(voltages[index]))
98+
await controller.voltage.update(float(voltages[index]))
9999

100100
@command()
101101
async def disable_all(self) -> None:
102102
for rc in self._ramp_controllers:
103-
await rc.enabled.process(OnOffEnum.Off)
103+
await rc.enabled.put(OnOffEnum.Off, sync_setpoint=True)
104104
# TODO: The requests all get concatenated and the sim doesn't handle it
105105
await asyncio.sleep(0.1)
106106

src/fastcs/attribute_io.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
from typing import Any, Generic, cast, get_args
22

33
from fastcs.attribute_io_ref import AttributeIORef, AttributeIORefT
4-
from fastcs.attributes import AttrR, AttrRW
4+
from fastcs.attributes import AttrR, AttrW
55
from fastcs.datatypes import T
66
from fastcs.tracer import Tracer
77

@@ -32,7 +32,7 @@ def __init__(self):
3232
async def update(self, attr: AttrR[T, AttributeIORefT]) -> None:
3333
raise NotImplementedError()
3434

35-
async def send(self, attr: AttrRW[T, AttributeIORefT], value: T) -> None:
35+
async def send(self, attr: AttrW[T, AttributeIORefT], value: T) -> None:
3636
raise NotImplementedError()
3737

3838

0 commit comments

Comments
 (0)