^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) * Pattern format for LED pattern trigger
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) The pattern is given by a series of tuples, of brightness and duration (ms).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) The LED is expected to traverse the series and each brightness value for the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) specified duration. Duration of 0 means brightness should immediately change to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) new value, and writing malformed pattern deactivates any active one.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) 1. For gradual dimming, the dimming interval now is set as 50 milliseconds. So
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) the tuple with duration less than dimming interval (50ms) is treated as a step
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) change of brightness, i.e. the subsequent brightness will be applied without
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) adding intervening dimming intervals.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) The gradual dimming format of the software pattern values should be:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) "brightness_1 duration_1 brightness_2 duration_2 brightness_3 duration_3 ...".
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) For example (using sysfs interface):
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) echo 0 1000 255 2000 > pattern
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) It will make the LED go gradually from zero-intensity to max (255) intensity in
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) 1000 milliseconds, then back to zero intensity in 2000 milliseconds:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) LED brightness
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) ^
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) 255-| / \ / \ /
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) | / \ / \ /
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) | / \ / \ /
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) | / \ / \ /
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) 0-| / \/ \/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) +---0----1----2----3----4----5----6------------> time (s)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) 2. To make the LED go instantly from one brightness value to another, we should
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) use zero-time lengths (the brightness must be same as the previous tuple's). So
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) the format should be: "brightness_1 duration_1 brightness_1 0 brightness_2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) duration_2 brightness_2 0 ...".
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) For example (using sysfs interface):
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) echo 0 1000 0 0 255 2000 255 0 > pattern
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) It will make the LED stay off for one second, then stay at max brightness for
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) two seconds:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) LED brightness
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) ^
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) 255-| +---------+ +---------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) | | | | |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) | | | | |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) | | | | |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) 0-| -----+ +----+ +----
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) +---0----1----2----3----4----5----6------------> time (s)