BITE Client

Class to configure the low level BITE devices

BITE Configuration and LSTV playback

@startuml test
    skinparam backgroundColor #EEEBDC
    skinparam sequence {
    ParticipantBorderColor DodgerBlue
    ParticipantBackgroundColor DeepSkyBlue
    ActorBorderColor DarkGreen
    ActorBackgroundColor Green
    BoxBorderColor LightBlue
    BoxBackgroundColor #F0FFFF
    }
    box "Engineering Console"
    participant "BITE\nClient" as BiteClient
    end box

    box "Talon DX"
    participant "Gaussian\nNoise\nGen rcv X" as NoiseRcvX
    participant "Gaussian\nNoise\nGen rcv Y" as NoiseRcvY
    participant "Gaussian\nNoise\nGen src X" as NoiseSrcX
    participant "Gaussian\nNoise\nGen src Y" as NoiseSrcY
    participant "Polarization\nCoupler 0" as PolCoupler
    participant "FIR Filter\nrcv polX" as FiltRcvX
    participant "FIR Filter\nrcv polY" as FiltRcvY
    participant "FIR Filter\nsrc polX 0" as FiltSrcX
    participant "FIR Filter\nsrc polY 0" as FiltSrcY
    participant "LSTV\nGen" as LSTVGen
    participant "LSTV\nReplay" as LSTVReplay
    participant "SPFRx\nPacketizer" as Packetizer
    end box


    note left
        stop any previous LSTV replay
     end note
    BiteClient -> LSTVReplay ** : run = 0)

    note left
        stop/reset any previous LSTV generation
    end note
    BiteClient -> LSTVGen ** : CMD ip_control(False)

    BiteClient -> NoiseSrcX ** : noise_mean = 0)
    BiteClient -> NoiseSrcX ** : noise_std = 32767)
    BiteClient -> NoiseSrcX ** : seed_ln = 1322)
    BiteClient -> NoiseSrcX ** : seed_cos = 1323)
    BiteClient -> NoiseSrcY ** : noise_mean = 0)
    BiteClient -> NoiseSrcY ** : noise_std = 32767)
    BiteClient -> NoiseSrcY ** : seed_ln = 1323)
    BiteClient -> NoiseSrcY ** : seed_cos = 1324)
    BiteClient -> PolCoupler ** : delay_enable = 0)
    BiteClient -> PolCoupler ** : alpha = 0)
    BiteClient -> PolCoupler ** : beta = 65535)
    BiteClient -> NoiseRcvX ** : noise_mean = 0)
    BiteClient -> NoiseRcvX ** : noise_std = 32767)
    BiteClient -> NoiseRcvX ** : seed_ln = 1322)
    BiteClient -> NoiseRcvX ** : seed_cos = 1323)
    BiteClient -> NoiseRcvY ** : noise_mean = 0)
    BiteClient -> NoiseRcvY ** : noise_std = 32767)
    BiteClient -> NoiseRcvY ** : seed_ln = 1323)
    BiteClient -> NoiseRcvY ** : seed_cos = 1324)
    BiteClient -> FiltRcvX ** : filter_coeff = [0 0 0 ... 0 0 0])
    BiteClient -> FiltRcvY ** : filter_coeff = [0 0 0 ... 0 0 0])
    BiteClient -> FiltSrcX ** : filter_coeff = [0 0 0 ... 0 0 0])
    BiteClient -> FiltSrcY ** : filter_coeff = [0 0 0 ... 0 0 0])
    BiteClient -> LSTVGen ** : CMD tone_select(0)
    BiteClient -> LSTVGen ** : CMD ip_control(False)
    note left
        allocate memory for LSTV, start address, in units of 64 bytes
    end note
    BiteClient -> LSTVGen ** : ddr4_start_addr = 33554432)
    BiteClient -> LSTVGen ** : ddr4_end_addr = 134217727)
    BiteClient -> LSTVGen ** : CMD source_select(1)
    BiteClient -> LSTVGen ** : CMD receiver_select(0)
    BiteClient -> LSTVGen ** : source_mean_polX = [0 0 0 0])
    BiteClient -> LSTVGen ** : source_mean_polY = [0 0 0 0])
    BiteClient -> LSTVGen ** : source_std_polX = [65535     0     0     0])
    BiteClient -> LSTVGen ** : source_std_polY = [65535     0     0     0])
    BiteClient -> LSTVGen ** : receiver_mean_polX = 0)
    BiteClient -> LSTVGen ** : receiver_mean_polY = 0)
    BiteClient -> LSTVGen ** : receiver_std_polX = 65535)
    BiteClient -> LSTVGen ** : receiver_std_polY = 65535)
    BiteClient -> LSTVGen ** : CMD ip_control(True)
    loop
        BiteClient -> LSTVGen ++ : POLL ip_status
    end
    alt #LightGreen Success
    LSTVGen -> BiteClient : ip_status==True
    else #Orange Timeout
        LSTVGen -> BiteClient -- : ip_status==False
    end

    BiteClient -> LSTVGen ** : CMD ip_control(False)
    BiteClient -> Packetizer ** : CMD bringup(123)
    BiteClient -> Packetizer ** : sample_rate_band12 = 3963617280)
    BiteClient -> Packetizer ** : rem_mac = 167141258439494)
    BiteClient -> Packetizer ** : loc_mac = 17739075048806)

    note left
        begin LSTV playback
    end note
    BiteClient -> LSTVReplay ** : run = 0)
    BiteClient -> LSTVReplay ** : sample_rate = 3963617279)
    BiteClient -> LSTVReplay ** : samples_per_cycle = 24319438)
    BiteClient -> LSTVReplay ** : start_utc_time_code = 1661809893)
    BiteClient -> LSTVReplay ** : lstv_start_addr = 33554432)
    BiteClient -> LSTVReplay ** : lstv_end_addr = 134217727)
    BiteClient -> LSTVReplay ** : run = 1)

@enduml