ChirpChatModSettings:
  description: ChirpChatMod
  properties:
    inputFrequencyOffset:
      type: integer
      format: int64
    bandwidthIndex:
      type: integer
      description: >
        standard bandwidths index:
          *  0 -    375 Hz (384000 / 1024)
          *  1 -    750 Hz (384000 / 512)
          *  2 -   1500 Hz (384000 / 256)
          *  3 -   2604 Hz (333333 / 128)
          *  4 -   3125 Hz (400000 / 128)
          *  5 -   3906 Hz (500000 / 128)
          *  6 -   5208 Hz (333333 / 64)
          *  7 -   6250 Hz (400000 / 64)
          *  8 -   7813 Hz (500000 / 64)
          *  9 -  10417 Hz (333333 / 32)
          * 10 -  12500 Hz (400000 / 32)
          * 11 -  15625 Hz (500000 / 32)
          * 12 -  20833 Hz (333333 / 16)
          * 13 -  25000 Hz (400000 / 16)
          * 14 -  31250 Hz (500000 / 16)
          * 15 -  41667 Hz (333333 / 8)
          * 16 -  50000 Hz (400000 / 8)
          * 17 -  62500 Hz (500000 / 8)
          * 18 -  83333 Hz (333333 / 4)
          * 19 - 100000 Hz (400000 / 4)
          * 20 - 125000 Hz (500000 / 4)
          * 21 - 166667 Hz (333333 / 2)
          * 22 - 200000 Hz (400000 / 2)
          * 23 - 250000 Hz (500000 / 2)
          * 24 - 333333 Hz (333333 / 1)
          * 25 - 400000 Hz (400000 / 1)
          * 26 - 500000 Hz (500000 / 1)
    spreadFactor:
      type: integer
    deBits:
      description: Low data rate optimize (DE) bits i.e. nb of FFT bins per effective symbol
      type: integer
    preambleChirps:
      description: Number of preamble chirps
      type: integer
    quietMillis:
      description: Number of milliseconds to pause between transmissions
      type: integer
    syncWord:
      description: 2 byte (0..65535) synchronization syncWord
      type: integer
    channelMute:
      description: boolean
      type: integer
    codingScheme:
      type: integer
      description: >
        message encoding scheme (ChirpChatModSettings::CodingScheme):
          * 0 - LoRa
          * 1 - Plain ASCII (7 bit)
          * 2 - Teletype (5 bit Baudot) a.k.a TTY
    nbParityBits:
      description: Hamming FEC parity bits (LoRa)
      type: integer
    hasCRC:
      description: Payload has CRC (LoRa)
      type: integer
    hasHeader:
      description: Header present before actual payload (LoRa)
      type: integer
    myCall:
      description: own callsign placeholder (QSO mode)
      type: string
    urCall:
      description: other party callsign placeholder (QSO mode)
      type: string
    myLoc:
      description: own QRA locator (QSO mode)
      type: string
    myRpt:
      description: report sent to other party (QSO mode)
      type: string
    messageType:
      type: integer
      description: >
        type of message to send (ChirpChatModSettings::MessageType):
          *  0 - No message i.e no output. Use this as a transition to resend the same message.
          *  1 - Beacon. Sends message specified in beaconMessage
          *  2 - CQ call. Sends message specified in cqMessage
          *  3 - Reply to CQ call. Sends message specified in replyMessage
          *  4 - Report to callee. Sends message specified in reportMessage
          *  5 - Report to caller. Sends message specified in replyReportMessage
          *  6 - RRR to callee. Sends message specified in rrrMessage
          *  7 - 73 to caller. Sends message specified in message73
          *  8 - Random message with callsigns. Sends message specified in qsoTextMessage
          *  9 - Plain text. Sends message specified in textMessage
          * 10 - Binary payload. Sends bytes specified in bytesMessage
    beaconMessage:
      description: text message to be sent (repeatedly) as a beaconMessage
      type: string
    cqMessage:
      description: general call message (QSO mode)
      type: string
    replyMessage:
      description: reply to caller message (QSO mode)
      type: string
    reportMessage:
      description: report to callee message (QSO mode)
      type: string
    replyReportMessage:
      description: report back to caller message (QSO mode)
      type: string
    rrrMessage:
      description: caller RRR message (QSO mode)
      type: string
    message73:
      description: 73 message back to caller to close QSO (QSO mode)
      type: string
    qsoTextMessage:
      description: QSO random message exchange (QSO mode)
      type: string
    textMessage:
      description: freeform text message
      type: string
    bytesMessage:
      description: message to send as an array of hex string represented bytes (00..FF)
      type: array
      items:
        type: string
    messageRepeat:
      description: number of repetitions of the same message (0 for infinite)
      type: integer
    udpEnabled:
      description: boolean 1 to enable forwarding messages via UDP else 0
      type: integer
    udpAddress:
      description: UDP address to listen for messages to transmit on
      type: string
    udpPort:
      description: UDP port to listen for messages to transmit on
      type: integer
    invertRamps:
      type: integer
      description: >
        Invert chirp ramps
          * 0 - Normal chirp ramps (upchirps for preamble and payload)
          * 1 - Inverted chirp ramps (downchirps for preamble and payload)
    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
    channelMarker:
      $ref: "http://swgserver:8081/api/swagger/include/ChannelMarker.yaml#/ChannelMarker"
    rollupState:
      $ref: "http://swgserver:8081/api/swagger/include/RollupState.yaml#/RollupState"

ChirpChatModReport:
  description: ChirpChatMod
  properties:
    channelPowerDB:
      description: power transmitted in channel (dB)
      type: number
      format: float
    channelSampleRate:
      type: integer
    symbolTimeMs:
      description: symbol duration (ms)
      type: number
      format: float
    payloadTimeMs:
      description: payload duration (ms)
      type: number
      format: float
    totalTimeMs:
      description: total message duration inc. preamble and SFD (ms)
      type: number
      format: float
    playing:
      type: integer
      description: >
        Boolean - modulator is active (playing) including idle time
          * 0 - Modulator not active
          * 1 - Modulator active
