led_context led_init_str(const char* name){ // make sure MRAA is initialized int mraa_rv; if ((mraa_rv = mraa_init()) != MRAA_SUCCESS) { printf("%s: mraa_init() failed (%d).\n", __FUNCTION__, mraa_rv); return NULL; } led_context dev = (led_context)malloc(sizeof(struct _led_context)); if (!dev) return NULL; dev->led_pin = -1; dev->gpio = NULL; dev->name = name; dev->gpioled = mraa_led_init(name); if (!dev->gpioled) { printf("%s: Unable to initialize gpioled device (%s).\n", __FUNCTION__, dev->name); free(dev); return NULL; } dev->max_brightness = mraa_led_read_max_brightness(dev->gpioled); return dev; }
/** * Instantiates an LED object * * @param led LED index to use */ Led(int led) { m_led = mraa_led_init(led); if (m_led == NULL) { throw std::invalid_argument("Invalid LED name specified"); } }