katgpucbf.fgpu.main module

fgpu main script.

This is what kicks everything off. Command-line arguments are parsed, and used to create an FEngine object, which then takes over the actual running of the processing.

katgpucbf.fgpu.main.DEFAULT_DDC_TAPS_RATIO = 16

Ratio of decimation factor to tap count

katgpucbf.fgpu.main.main() None[source]

Run the F-engine.

katgpucbf.fgpu.main.make_engine(ctx: ~katsdpsigproc.abc.AbstractContext, vkgdr_handle: <MagicMock id='140228911845920'>, args: ~argparse.Namespace) tuple[FEngine, Monitor][source]

Make an FEngine object, given a GPU context.

Parameters:
  • ctx – The GPU context in which the FEngine will operate.

  • vkgdr_handle – The Vkgdr handle in which the FEngine will operate. It must use the same device as ctx.

  • args – Parsed arguments returned from parse_args().

katgpucbf.fgpu.main.parse_args(arglist: Sequence[str] | None = None) Namespace[source]

Declare and parse command-line arguments.

Parameters:

arglist – You can pass a list of argument strings in this parameter, for example in test situations, to make use of the configured defaults. If None, arguments from sys.argv will be used.

katgpucbf.fgpu.main.parse_narrowband(value: str) NarrowbandOutput[source]

Parse a string with a narrowband configuration.

The string has a comma-separated list of key=value pairs. See NarrowbandOutput for the valid keys and types. The following keys are required:

  • name

  • channels

  • centre_frequency

  • decimation

  • dst

katgpucbf.fgpu.main.parse_wideband(value: str) WidebandOutput[source]

Parse a string with a wideband configuration.

The string has a comma-separated list of key=value pairs. See WidebandOutput for the valid keys and types. The following keys are required:

  • name

  • channels

  • dst

async katgpucbf.fgpu.main.start_engine(args: Namespace, tg: TaskGroup, exit_stack: AsyncExitStack, locals_: MutableMapping[str, object]) FEngine[source]

Start the F-Engine asynchronously.