-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathmeta_writer.py
More file actions
41 lines (35 loc) · 1.51 KB
/
meta_writer.py
File metadata and controls
41 lines (35 loc) · 1.51 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
from fastcs.attributes import AttrR, AttrRW
from fastcs.datatypes import Bool, Int, String
from fastcs.methods import command
from fastcs_odin.controllers.odin_subcontroller import OdinSubController
from fastcs_odin.util import ParameterTreeAttributeIORef, create_attribute
class MetaWriterAdapterController(OdinSubController):
"""Controller for the meta writer adapter in an odin control server"""
async def initialise(self):
for parameter in self.parameters:
# Remove 0 index and status/config
match parameter.uri:
case ["0", "status" | "config", *_]:
parameter.set_path(parameter.path[2:])
self.add_attribute(
parameter.name,
create_attribute(parameter=parameter, api_prefix=self._api_prefix),
)
acquisition_id: AttrRW = AttrRW(
String(), io_ref=ParameterTreeAttributeIORef("api/0.1/mw/config/acquisition_id")
)
directory: AttrRW = AttrRW(
String(), io_ref=ParameterTreeAttributeIORef("api/0.1/mw/config/directory")
)
file_prefix: AttrRW = AttrRW(
String(), io_ref=ParameterTreeAttributeIORef("api/0.1/mw/config/file_prefix")
)
writing: AttrR = AttrR(
Bool(), io_ref=ParameterTreeAttributeIORef("api/0.1/mw/status/writing")
)
written: AttrR = AttrR(
Int(), io_ref=ParameterTreeAttributeIORef("api/0.1/mw/status/written")
)
@command()
async def stop(self):
await self.connection.put("api/0.1/mw/config/stop", True)