Balon podczas VII Mazowieckiego Pikniku Krótkofalarskiego w Celestynowie 22 września 2024
    SP5LOT pisze:

    Dziękuję Ci. To bardzo pomocne. Spróbuję też coś pokombinować.

To co na razie wykombinowałem to to, że:

– tryb jest ustawiony na 11
– ofdmtv obsługuje tylko tryb 1 (dlatego twierdzi, że tryb jest nieobsługiwany)
– Assempix ma dekoder napisany w C++ z nakładką w Javie
– dekoder w Assempix obsługuje tryby od 6 do 13 (tryb 11 to parametry: carrier_count = 384, symbol_count = 56, mod_bits = 3)
– te dwa dekodery niestety nie są łatwo podmienialne – mają inne API

Skompilowałem dekoder z Assempix z pustym programem – kompiluje się. Trzeba tylko go teraz jakoś użyć. Jest API, ale nieudokumentowane – trzeba zagłębić się w kod Assempix:

int process(uint32_t *spectrum_pixels, uint32_t *spectrogram_pixels, uint32_t *constellation_pixels, uint32_t *peak_meter_pixels, const int16_t *audio_buffer, int channel_select, int color_tint),

void cached(float *cfo, int32_t *mode, int8_t *call),

int fetch(uint8_t *payload),

Jakbym miał strzelać to pewnie:

– do audio_buffer w process() podajemy próbki wejściowe (w jakim formacie? Signed 16-bit w natywnym endianie? Do ustalenia), process() też aktualizuje spektrogram, konstelację, peak meter

– cached() zwraca wartości, które sobie process() wczytało (CFO, tryb, znak)

– fetch() zwraca obrazek

Inna sprawa, że sam Assempix na komórce też nie chce mi nic dekodować (dekoduje znak i to wszystko, pokazuje błąd dekodowania) – testowane z głośników w laptopie i ze słuchawek przy mikrofonie telefonu. Z filmu, który wrzuciłeś w pierwszym poście, coś próbuje zdekodować, ale też nie dekoduje do końca.

Pobawię się tym jeszcze, tylko nie wiem jak będzie z czasem (zależy czym mnie zawalą w pracy) – jak ktoś chce to pociągnąć dalej to śmiało.


  PRZEJDŹ NA FORUM