MajicDesigns / MD_Parola

Library for modular scrolling LED matrix text displays
GNU Lesser General Public License v2.1
438 stars 135 forks source link

'class MD_Parola' has no member named 'getIntensity' #30

Closed ghost closed 6 years ago

ghost commented 6 years ago

Hi, the following statement within arduino code uint8_t scrollIntensity = P.getIntensity(); ends up in the error message see title.

Strange, usage of uint16_t scrollSpeed = P.getSpeed(); causes no problems, the usage of P.getCharSpacing() is working, too.

Checked up MD.Parola.h and found in class definition... ` /**

right below method getCharSpacing....

Used #include and #define

include

include

include

.....

define HARDWARE_TYPE MD_MAX72XX::FC16_HW

define MAX_DEVICES 4 // Number of 8x8 modules linked together

define CLK_PIN 13 // or SCK

define DATA_PIN 14 // or MOSI

define CS_PIN 12 // or SS

// SOFTWARE SPI MD_Parola P = MD_Parola(HARDWARE_TYPE, DATA_PIN, CLK_PIN, CS_PIN, MAX_DEVICES);

MajicDesigns commented 6 years ago

Not sure if you are reporting a problem as this has not been seen by anyone else who uses the code?

MajicDesigns commented 6 years ago

Parola library compiles all examples ok and no response fro OP, closing issue.

Martin12350 commented 1 year ago

I am guessing not a lot of people are trying to read intensity back, but same error here ;) int intensity = Display.getIntensity(); Compilation error: 'class MD_Parola' has no member named 'getIntensity'.

In source code, You have only: inline uint8_t getIntensity() { return _intensity; }

And nothing else, while e.g. getPause has void as a parameter and then 2 other functions. Same for speed, etc.

Can You please check if this really works? Thanks a lot.

UPDATE! I see where this misunderstanding comes from... Speed, pause and others return zone 0 when used on MD_Parola. But intensity is implemented only for MD_PZone.

It is not a bug, but not implemented the same way. Is there a possibility to update for consistency? ;)

MajicDesigns commented 1 year ago

Every LED module can be different intensity so it does not make sense to return just the intensity of module 0 in the zone although I can see there is a lack of symmetry with being able to setIntensity().

With the others you mentioned the setting is universal within a zone so if there is no zone specified zone 0 makes sense as there is only one zone being used.

Martin12350 commented 1 year ago

I was just comparing how other functions in the library work. Like pause, You can have each zone with a different pause, but if You call getPause without a parameter, You get zone 0. Also in my case, when I have only a few modules, I do not use zones, so I call all functions without specifying zone, which automatically results in 0. Anyway, how You deal with it is up to You. But would be cool to have getIntensity in MD_P. Keep the good work :)

MajicDesigns commented 1 year ago

version 3.7.1 makes all this visible and symmetric with other functions.

Martin12350 commented 1 year ago

Awesome, immediately updating lib :) And as expected compiled ok. Will flash asap, but not expecting any problem. Thanks!