|  | // Copyright 2016 The Weave Authors. All rights reserved. | 
|  | // Use of this source code is governed by a BSD-style license that can be | 
|  | // found in the LICENSE file. | 
|  |  | 
|  | namespace custom_traits { | 
|  | const char kCustomTraits[] = R"({ | 
|  | "_ledflasher": { | 
|  | "commands": { | 
|  | "animate": { | 
|  | "minimalRole": "user", | 
|  | "parameters": { | 
|  | "duration": { | 
|  | "type": "number", | 
|  | "minimum": 0.1, | 
|  | "maximum": 100.0 | 
|  | }, | 
|  | "type": { | 
|  | "type": "string", | 
|  | "enum": [ "none", "marquee_left", "marquee_right", "blink" ] | 
|  | } | 
|  | } | 
|  | } | 
|  | }, | 
|  | "state": { | 
|  | "status": { | 
|  | "type": "string", | 
|  | "enum": [ "idle", "animating" ] | 
|  | } | 
|  | } | 
|  | } | 
|  | })"; | 
|  |  | 
|  | const char kLedflasherState[] = R"({ | 
|  | "_ledflasher":{"status": "idle"} | 
|  | })"; | 
|  |  | 
|  | const char ledflasher[] = "ledflasher"; | 
|  | const char led1[] = "led1"; | 
|  | const char led2[] = "led2"; | 
|  | const char led3[] = "led3"; | 
|  | const char led4[] = "led4"; | 
|  | const char led5[] = "led5"; | 
|  | const size_t kLedCount = 5; | 
|  | const char kLedComponentPrefix[] = "led"; | 
|  | }  // namespace custom_traits | 
|  |  |