Piblaster fix (#614)

* Removed -HUP so the default -TERM signal is sent instead.
- hyperiond only listens for TERM and INT. HUP is often used to get an exe to reread its config

Changed pgrep to add '-x' so it wont partial match on the exe name.
- I have multiple instances with multiple hyperiond-instance1 names
- this ensures the service script only kills the right process

* reversing errant change to hyperion.systemd.sh

* Experimental changes to piblaster code to work how i think it should

It is now assumed that the PWM pins in groups of 3 correspond to RGB channels of the led.
                "assignment"       : "rgbrgbrgb",
Would result in:
//Channel number    GPIO number   Led channel
//      0               4             0 red
//      1              17             0 green
//      2              18             0 blue
//      4              27             1 red
//      5              21             1 green
//      6              22             1 blue
//      7              23             2 red
//      8              24             2 green
//      9              25             2 blue

* Ammend pwm channel mapping comments to match the code

* 1st cut of the new more flexible piblaster pin mapping support

it works but is still rough

* removed old "assignment" handling
- prints an error messaage if found and terminates

fixed the switchoff method

* removing iPins hard coded list of valid GPIO pins

* removed iPins array for switchOff function

* code cleanups

input validation

* Handle catching (and ignoring) SIGPIPE.
You can now kill and restart pi-blaster daemon and hyperiond will gracefully recover

* added a binary for testing

* Added sample config and my modified pi-blaster version to support more GPIOs

* moved hyperiond

* removed testing binaries

move sample configuration to the configs directory

* re enabled device config display

* removed sample configuration


Former-commit-id: 95e4d4ea2fb7cb5439e8cd597883a638da61a574
This commit is contained in:
penfold42
2016-04-30 00:00:33 +10:00
committed by brindosch
parent 77996fd65a
commit deed8066b0
3 changed files with 99 additions and 48 deletions

View File

@@ -206,11 +206,21 @@ LedDevice * LedDeviceFactory::construct(const Json::Value & deviceConfig)
{
const std::string output = deviceConfig.get("output", "").asString();
const std::string assignment = deviceConfig.get("assignment", "").asString();
const Json::Value gpioMapping = deviceConfig.get("gpiomap", Json::nullValue);
LedDevicePiBlaster * devicePiBlaster = new LedDevicePiBlaster(output, assignment);
devicePiBlaster->open();
if (assignment.length() > 0) {
std::cout << "ERROR: Sorry, the configuration syntax has changed in this version." << std::endl;
exit(EXIT_FAILURE);
}
if (! gpioMapping.isNull() ) {
LedDevicePiBlaster * devicePiBlaster = new LedDevicePiBlaster(output, gpioMapping);
devicePiBlaster->open();
device = devicePiBlaster;
device = devicePiBlaster;
} else {
std::cout << "ERROR: no gpiomap defined." << std::endl;
exit(EXIT_FAILURE);
}
}
else if (type == "sedu")
{