Skip to content
22 changes: 22 additions & 0 deletions examples/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
import argparse

from lume_pva.runner import PutMode


def add_common_test_args(parser: argparse.ArgumentParser):
parser.add_argument("-v", action="store_true", help="Enable verbose logging")
parser.add_argument(
"--put-mode",
dest="put_mode",
type=str,
choices=list(PutMode.__members__.values()),
default=PutMode.Immediate.value,
help="Put mode to use. 'immediate' acks put requests immediately and 'complete' acks them only after the model has finished simulating.",
)
parser.add_argument(
"--pv-prefix",
dest="pv_prefix",
default="example:",
type=str,
help="Add this prefix to all PVs added by the model",
)
13 changes: 9 additions & 4 deletions examples/fft_model.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@
from lume_pva.runner import Runner
from lume_pva.simulator import SimpleSimulator

from . import add_common_test_args


class FFTModel(LUMEModel):
"""
Expand Down Expand Up @@ -152,7 +154,7 @@ def reset(self) -> None:
import argparse

parser = argparse.ArgumentParser()
parser.add_argument("-v", action="store_true", help="Enable verbose logging")
add_common_test_args(parser)
args = parser.parse_args()

# Configure logging for debug if requested
Expand Down Expand Up @@ -183,16 +185,19 @@ def reset(self) -> None:
"rate": 0.1,
"nvalues": 1024,
},
}
},
prefix=args.pv_prefix,
)

model = FFTModel()
config = Runner.generate_config(model)
config = Runner.generate_config(model, put_mode=args.put_mode, prefix=args.pv_prefix)

config["remote_model_mode"] = "continuous"

for k in ["signal_a", "signal_b", "signal_c"]:
config["variables"][k]["mode"] = "remote"
v = config["variables"][k]
v["mode"] = "remote"
v["pv"] = f"{args.pv_prefix}{v['pv']}" # Remap name with prefix

runner = Runner(model=model, config=config)
runner.run()
13 changes: 9 additions & 4 deletions examples/math_model.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@
from lume_pva.runner import Runner
from lume_pva.simulator import SimpleSimulator

from . import add_common_test_args


class SimpleMathModel(LUMEModel):
"""
Expand Down Expand Up @@ -149,7 +151,7 @@ def reset(self) -> None:
import argparse

parser = argparse.ArgumentParser()
parser.add_argument("-v", action="store_true", help="Enable verbose logging")
add_common_test_args(parser)
parser.add_argument(
"--mode",
type=str,
Expand Down Expand Up @@ -187,11 +189,12 @@ def reset(self) -> None:
"rate": 0.09,
},
"input_d": {"type": "float", "mode": "expr", "expr": "10*t", "rate": 1},
}
},
prefix=args.pv_prefix,
)

model = SimpleMathModel()
config = Runner.generate_config(model)
config = Runner.generate_config(model, put_mode=args.put_mode, prefix=args.pv_prefix)

config["description"] = "Simple math model demonstrating a number of variable types"

Expand All @@ -200,7 +203,9 @@ def reset(self) -> None:

if args.mode in ["remote", "snapshot"]:
for k in ["input_a", "input_b", "input_c"]:
config["variables"][k]["mode"] = "remote"
v = config["variables"][k]
v["mode"] = "remote"
v["pv"] = f"{args.pv_prefix}{v['pv']}" # Remap name with prefix

runner = Runner(model=model, config=config)
runner.run()
Loading
Loading