IEEE_802_15_4_ModSettings:
  description: IEEE_802_15_4_Mod
  properties:
    inputFrequencyOffset:
      type: integer
      format: int64
    modulation:
      description: >
        Modulation type
          * 0 - BPSK
          * 1 - OQPSK
      type: integer
    bitRate:
      type: integer
    subGHzBand:
      type: integer
      description: >
        Boolean value
          * 0 - Over 1 GHz standard
          * 1 - Under 1 GHz standard
    rfBandwidth:
      type: number
      format: float
    gain:
      type: number
      format: float
    channelMute:
      type: integer
      description: >
        * 0 - Effective transmission
        * 1 - Transmission is muted
    repeat:
      description: Whether to repeated transmit the frame (1 for yes, 0 for no).
      type: integer
    repeatDelay:
      description: Delay between repeated transmissions.
      type: number
      format: float
    repeatCount:
      description: Number of times to repeat the frame (-1 for infinite).
      type: integer
    rampUpBits:
      type: integer
    rampDownBits:
      type: integer
    rampRange:
      type: integer
    modulateWhileRamping:
      type: integer
      description: >
        Boolean value
          * 0 - do not modulate in ramping phase
          * 1 - modulate in ramping phase
    lpfTaps:
      type: integer
    bbNoise:
      type: integer
      description: >
        Boolean value
          * 0 - Do not add gaussian noise in baseband
          * 1 - Add gaussian noise in baseband
    writeToFile:
      type: integer
      description: >
        Boolean value
          * 0 - Do not write frames to .csv file
          * 1 - Write frames to .csv file
    spectrumRate:
      type: integer
    data:
      type: string
      description: Hex coded bytes of data to transmit, excluding CRC (E.g for an ACK - 02 00 00)
    rgbColor:
      type: integer
    title:
      type: string
    streamIndex:
      description: MIMO channel. Not relevant when connected to SI (single Rx).
      type: integer
    useReverseAPI:
      description: Synchronize with reverse API (1 for yes, 0 for no)
      type: integer
    reverseAPIAddress:
      type: string
    reverseAPIPort:
      type: integer
    reverseAPIDeviceIndex:
      type: integer
    reverseAPIChannelIndex:
      type: integer
    scramble:
      type: integer
      description: >
        Boolean value
          * 0 - Do not scramble data
          * 1 - Scramble data
    polynomial:
      type: integer
      description: Scrambling polynomial
    pulseShaping:
      type: integer
      description: >
        Pulse shaping filter
          * 0 - Root Cosime
          * 1 - Sine
    beta:
      type: number
      format: float
      description: Pulse shapint filter beta factor
    symbolSpan:
      type: integer
    udpEnabled:
      description: Enable forwarding of frames via UDP
      type: integer
    udpBytesFormat:
      type: integer
      description: >
        Payload format
          * 0 - Blank separated string representation of hex bytes i.e. 00 02 0a
          * 1 - Raw bytes
    udpAddress:
      description: UDP address to listen for frames to transmit on
      type: string
    udpPort:
      description: UDP port to listen for frames to transmit on
      type: integer
    channelMarker:
      $ref: "/doc/swagger/include/ChannelMarker.yaml#/ChannelMarker"
    rollupState:
      $ref: "/doc/swagger/include/RollupState.yaml#/RollupState"

IEEE_802_15_4_ModReport:
  description: IEEE_802_15_4_Mod
  properties:
    channelPowerDB:
      description: power transmitted in channel (dB)
      type: number
      format: float
    channelSampleRate:
      type: integer

IEEE_802_15_4_ModActions:
  description: IEEE_802_15_4_Mod
  properties:
    tx:
      type: integer
      description: >
        Initialize a transmission cycle
          * 0 - Do nothing
          * 1 - Start transmission cycle
    data:
      type: string
      description: >
        Hex coded bytes of data to transmit, excluding CRC (E.g for an ACK - 02 00 00). Preempts settings data.
