/** * \file * Resource for Arduino PWM * \author * Ralf Schlatterbeck * * \brief get/put pwm and period for LED pin * */ #include #include #include #include "contiki.h" #include "jsonparse.h" /* Only coap 13 for now */ #include "er-coap-13.h" #include "generic_resource.h" #include "led_pwm.h" void pwm_from_string (const char *name, const char *s) { uint32_t tmp = strtoul (s, NULL, 10); if (tmp > 255) { tmp = 255; } pwm = tmp; } size_t pwm_to_string (const char *name, uint8_t is_json, char *buf, size_t bufsize) { return snprintf (buf, bufsize, "%d", pwm); } GENERIC_RESOURCE \ ( led_pwm, METHOD_GET | METHOD_PUT , "led/pwm" , LED PWM , duty-cycle , pwm_from_string , pwm_to_string ); void period_from_string (const char *name, const char *s) { uint32_t tmp = (strtoul (s, NULL, 10) + 50) / 100; if (tmp > 10) { tmp = 10; } if (tmp == 0) { tmp = 1; } period_100ms = tmp; } size_t period_to_string (const char *name, uint8_t is_json, char *buf, size_t bufsize) { return snprintf (buf, bufsize, "%d", period_100ms * 100); } GENERIC_RESOURCE \ ( led_period, METHOD_GET | METHOD_PUT , "led/period" , LED Period , ms , period_from_string , period_to_string ); /* * VI settings, see coding style * ex:ts=8:et:sw=2 */