39 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C
		
	
	
	
			
		
		
	
	
			39 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C
		
	
	
	
| 
 | |
| //////////////////////////////////
 | |
| //   DEVICE-SPECIFIC SERVICES   //
 | |
| //////////////////////////////////
 | |
| 
 | |
| struct DEV_Identify : Service::AccessoryInformation {
 | |
| 
 | |
|   int nBlinks;                    // number of times to blink built-in LED in identify routine
 | |
|   SpanCharacteristic *identify;   // reference to the Identify Characteristic
 | |
|   
 | |
|   DEV_Identify(char *name, char *manu, char *sn, char *model, char *version, int nBlinks) : Service::AccessoryInformation(){
 | |
|     
 | |
|     new Characteristic::Name(name);                   // create all the required Characteristics with values set based on above arguments
 | |
|     new Characteristic::Manufacturer(manu);
 | |
|     new Characteristic::SerialNumber(sn);    
 | |
|     new Characteristic::Model(model);
 | |
|     new Characteristic::FirmwareRevision(version);
 | |
|     identify=new Characteristic::Identify();          // store a reference to the Identify Characteristic for use below
 | |
| 
 | |
|     this->nBlinks=nBlinks;                            // store the number of times to blink the built-in LED
 | |
| 
 | |
|     pinMode(LED_BUILTIN,OUTPUT);                      // make sure built-in LED is set for output
 | |
|   }
 | |
| 
 | |
|   StatusCode update(){
 | |
|        
 | |
|     for(int i=0;i<nBlinks;i++){
 | |
|       digitalWrite(LED_BUILTIN,LOW);
 | |
|       delay(250);
 | |
|       digitalWrite(LED_BUILTIN,HIGH);
 | |
|       delay(250);
 | |
|     }
 | |
| 
 | |
|     return(StatusCode::OK);
 | |
|     
 | |
|   } // update
 | |
|   
 | |
| };
 |