mirror of
https://github.com/Telecominfraproject/OpenCellular.git
synced 2025-12-30 18:41:11 +00:00
This adds an "extra/" directory to hold various experiments and optional programs. With this change, we add a tool that can simulate the lightbar behavior on the build machine. That can be used to experment with variations in the lightbar pattern code without needing to reflash a Pixel with a new EC to see the effect. There is no functional change to the EC code, just a couple of #ifdefs to allow common/lightbar.c to be compiled separately from the EC. BUG=none BRANCH=ToT TEST=make buildall -j cd extra make ./lightbar You may need to install the libxcb1-dev package on your build machine. Change-Id: I847ce7ea97cae792b1de1b91f488819e873b6555 Signed-off-by: Bill Richardson <wfrichar@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/199883
This directory is for experiments only. It is not built automatically, required, supported, guaranteed to work, or necessarily well-documented. The contents may change without warning at any time. ------------------------------------------------------------------------------ Lightbar simulator ------------------------------------------------------------------------------ Build with "make lightbar". The executable is "./lightbar". You may need to install libxcb1-dev or similar. This provides a simulation environment for the lightbar task, compiling common/lightbar.c from the EC source, but faking the rest of the EC. The EC console is on stdin/stdout, delivering all input to the lightbar's console command handler (so it prefixes any input with "lightbar"). The lightbar itself is displayed in an X window. You can click in that window to emulate changes to the battery level, AC connection, and brightness, all of which are normally outside the lightbar task's direct control. The initial sequence is "S5". Try issuing the command "seq s3s0" to see something more familiar. Note: the Pixel lightbar circuitry has three modes of operation: Unpowered When the host CPU is off (S5/G3), all power to the lightbar and its controller circuitry is lost. On When the host CPU is on (S0) or suspended (S3), the lightbar is powered again. After every power loss, it will need to be reinitialized by calling lb_init() before it can be used. Standby The lightbar controller ICs can turn off all the LED outputs to conserve power. This is the initial state when power is applied. You can turn the LEDs off manually by calling lb_off(). When suspended, the controller will respond to commands, but the LEDs aren't lit. Turn them on with lb_on().