id: uhd_rfnoc_tx_streamer
label: RFNoC Tx Streamer

templates:
  imports: |-
    from gnuradio import uhd
  make: |-
    uhd.rfnoc_tx_streamer(
        self.rfnoc_graph,
        ${ num_chans },
        uhd.stream_args(
            cpu_format="${ input_type.type }",
            otw_format="${ otw.type }",
            channels=[],
            args="",
        ),
        1
    )

parameters:
- id: num_chans
  label: Number of Channels
  dtype: int
  default: 1
  hide: part
- id: input_type
  label: Input Type
  dtype: enum
  options: [fc32, sc16]
  option_labels: [Complex float32, Complex int16]
  option_attributes:
    type: [fc32, sc16]
  hide: part
- id: otw
  label: Wire Format
  dtype: enum
  options: ['', sc16]
  option_labels: [Automatic, Complex int16]
  option_attributes:
    type: ['', sc16]
  hide: part

inputs:
- domain: stream
  dtype: ${ input_type.type }
  multiplicity: ${ num_chans }

outputs:
- domain: rfnoc
  dtype: ${ otw.type }
  multiplicity: ${ num_chans }

file_format: 1
