International with Flight Controller #6

Open
opened 2026-10-05 05:58:33 +02:00 by adam · 0 comments
Owner

Sending data via UART

#define MILELRS_LQ_COUNT 12


typedef struct crsfPayload_MILERLS_LQ_s
{
    uint16_t FreqBegin, FreqEnd; // in mhz*10
    uint8_t LQ[MILELRS_LQ_COUNT];
    uint8_t EW[MILELRS_LQ_COUNT];
    int8_t  EW_Radio[2]; // max signal for each of antannas
} crsfPayload_MILERLS_LQ_t;

crsfPayload_MILERLS_LQ_t LQ;
        for (int i = 0; i < MILELRS_LQ_COUNT; i++)
        {
            //LQ.LQ[i] = atuneStats.get_lq(i);//!!!
            LQ.LQ[i] = milelrsStats.get_osd_lq(i);
            LQ.EW[i] = milelrsStats.get_osd_rssi(i);
        }
        LQ.FreqBegin = milelrsStats.get_freq_osd_khz(0) / 100;
        LQ.FreqEnd = milelrsStats.get_freq_osd_khz(MILELRS_LQ_COUNT-1) / 100;
        LQ.EW_Radio[0] = milelrsStats.get_average_rssi2(0);
        LQ.EW_Radio[1] = milelrsStats.get_average_rssi2(1);

        constexpr uint8_t outBuffer[] = {
            sizeof(LQ) + 4,
            CRSF_ADDRESS_FLIGHT_CONTROLLER,
            sizeof(LQ) + 2,
            CRSF_FRAMETYPE_MILERLS_LQ};


        uint8_t crc = crsf_crc.calc(outBuffer[3]);
        crc = crsf_crc.calc((byte *)&LQ, sizeof(LQ), crc);

        if (_fifo.ensure(outBuffer[0] + 1))
        {
            _fifo.pushBytes(outBuffer, sizeof(outBuffer));
            _fifo.pushBytes((byte *)&LQ,sizeof(LQ));
            _fifo.push(crc);
        }
    }

image

Sending data via UART ```cpp #define MILELRS_LQ_COUNT 12 typedef struct crsfPayload_MILERLS_LQ_s { uint16_t FreqBegin, FreqEnd; // in mhz*10 uint8_t LQ[MILELRS_LQ_COUNT]; uint8_t EW[MILELRS_LQ_COUNT]; int8_t EW_Radio[2]; // max signal for each of antannas } crsfPayload_MILERLS_LQ_t; crsfPayload_MILERLS_LQ_t LQ; for (int i = 0; i < MILELRS_LQ_COUNT; i++) { //LQ.LQ[i] = atuneStats.get_lq(i);//!!! LQ.LQ[i] = milelrsStats.get_osd_lq(i); LQ.EW[i] = milelrsStats.get_osd_rssi(i); } LQ.FreqBegin = milelrsStats.get_freq_osd_khz(0) / 100; LQ.FreqEnd = milelrsStats.get_freq_osd_khz(MILELRS_LQ_COUNT-1) / 100; LQ.EW_Radio[0] = milelrsStats.get_average_rssi2(0); LQ.EW_Radio[1] = milelrsStats.get_average_rssi2(1); constexpr uint8_t outBuffer[] = { sizeof(LQ) + 4, CRSF_ADDRESS_FLIGHT_CONTROLLER, sizeof(LQ) + 2, CRSF_FRAMETYPE_MILERLS_LQ}; uint8_t crc = crsf_crc.calc(outBuffer[3]); crc = crsf_crc.calc((byte *)&LQ, sizeof(LQ), crc); if (_fifo.ensure(outBuffer[0] + 1)) { _fifo.pushBytes(outBuffer, sizeof(outBuffer)); _fifo.pushBytes((byte *)&LQ,sizeof(LQ)); _fifo.push(crc); } } ``` ![image](https://github.com/user-attachments/assets/bc0ad620-15cb-4a7f-98ae-cd9e3af7e32c) <!-- github-sync-id:2488029536 -->
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: adam/LoraSA#6