Új hozzászólás Aktív témák

  • Teasüti

    nagyúr

    Próbálom visszakövetni a forráskódot hol lehetnek a pixelek eltárolva.

    Ha megnézem a digitalLeds_updatePixels(strand_t * pStrand) kódját a .cpp fájlban, akkor ebből a
    pState->buf_data[0 + i * 3] = pStrand->pixels[i].g;
    pState->buf_data[1 + i * 3] = pStrand->pixels[i].r;
    pState->buf_data[2 + i * 3] = pStrand->pixels[i].b;

    rész érdekes nekem. Az itt lévő pixels[] az lesz, ami a STRANDS[] objektumban van definiálva.

    Aztán ott van egyszer a szalag definíció a programban:
    strand_t STRANDS[] = { // Avoid using any of the strapping pins on the ESP32
    {.rmtChannel = 1, .gpioNum = 17, .ledType = LED_WS2812B_V3, .brightLimit = 32, .numPixels = 93,
    .pixels = nullptr, ._stateVars = nullptr},

    Csak tippelek, de a .pixels az az ami érdekes lehet nekem.

    Ez a .h fájlban így néz ki:
    typedef struct {
    int rmtChannel;
    int gpioNum;
    int ledType;
    int brightLimit;
    int numPixels;
    pixelColor_t * pixels;
    void * _stateVars;
    } strand_t;

    Itt a pixelColor_t * pixels; amit keresnem kell.
    Felette meg is vannak az egyes komponensei a pixeleknek:
    inline pixelColor_t pixelFromRGB(uint8_t r, uint8_t g, uint8_t b)
    {
    pixelColor_t v;
    v.r = r;
    v.g = g;
    v.b = b;
    v.w = 0;
    return v;
    }

    Már csak a pStrand maradt hátra az egyedüli elemeként a puzzle-nak, amit még nem egészen tudtam lekövetni, mi hogy mikor és hol kerül meghívásra.
    Jelenleg úgy sejtem a *pStrand az lényegében egy &STRANDS[i] lesz. Na megyek alámerülni megint...

    szerk: oh ba.meg MEGVAN! Hisz ezzel indul a függvény meghívás a loop()-ban. :W
    for (int i = 0; i < STRANDCNT; i++) {
    strand_t * pStrand = &STRANDS[i];
    rainbow(pStrand, 0, 2000);
    scanner(pStrand, 0, 2000);
    digitalLeds_resetPixels(pStrand);
    }

    Azt hittem ez globális lesz, mert mindenhol előfordul ez a név.
    Közben meg ha jól értem, akkor a loop() deklarálja és innen kerül átadásra a függvényeknek, ahol meg újra lesz deklarálva helyi változóként minden egyes függvényben külön-külön.

    Akkor azt hiszem ezzel a helyére került minden eleme a puzzle-nak. :R
    Elméletben. Jöhet a gyakorlat...

Új hozzászólás Aktív témák