add: init relays after discover
This commit is contained in:
		
							parent
							
								
									606f2483a5
								
							
						
					
					
						commit
						dab106c1f6
					
				
					 3 changed files with 35 additions and 5 deletions
				
			
		| 
						 | 
				
			
			@ -243,12 +243,37 @@ api_v1_controllers_discover_POST(struct mg_connection *c, endpoint_args_t *args,
 | 
			
		|||
                discovered_controller->port = discovered_command_port;
 | 
			
		||||
                discovered_controller->active = 1;
 | 
			
		||||
 | 
			
		||||
                // TODO get relays during discovery
 | 
			
		||||
                relay_t **discovered_relays = malloc(sizeof(relay_t*));
 | 
			
		||||
                discovered_relays[0] = NULL;
 | 
			
		||||
                controller_save(discovered_controller);
 | 
			
		||||
 | 
			
		||||
                // TODO get relays during discovery and don't create empty ones
 | 
			
		||||
                relay_t **discovered_relays = malloc(sizeof(relay_t*) * (discovered_controller->relay_count + 1));
 | 
			
		||||
                for(int i = 0; i < discovered_controller->relay_count; ++i)
 | 
			
		||||
                {
 | 
			
		||||
                    relay_t *new_relay = malloc(sizeof(relay_t));
 | 
			
		||||
                    new_relay->id = 0;
 | 
			
		||||
                    sprintf(new_relay->name, "Relay %d", i + 1);
 | 
			
		||||
                    new_relay->number = i;
 | 
			
		||||
                    new_relay->controller_id = discovered_controller->id;
 | 
			
		||||
 | 
			
		||||
                    uuid_t tmp_uuid;
 | 
			
		||||
                    memset(tmp_uuid, 0, sizeof(uuid_t));
 | 
			
		||||
                    memcpy(tmp_uuid, "off", 3);
 | 
			
		||||
 | 
			
		||||
                    for(int i = 0; i < 7; ++i)
 | 
			
		||||
                    {
 | 
			
		||||
                        new_relay->schedules[i] = schedule_get_by_uid(tmp_uuid);
 | 
			
		||||
                    }
 | 
			
		||||
                    time_t timestamp = time(NULL);
 | 
			
		||||
                    struct tm *time_struct = localtime(×tamp);
 | 
			
		||||
                    new_relay->active_schedule = new_relay->schedules[helper_get_weekday(time_struct)];
 | 
			
		||||
 | 
			
		||||
                    relay_save(new_relay);
 | 
			
		||||
 | 
			
		||||
                    discovered_relays[i] = new_relay;
 | 
			
		||||
                }
 | 
			
		||||
                discovered_relays[discovered_controller->relay_count] = NULL;
 | 
			
		||||
                discovered_controller->relays = discovered_relays;
 | 
			
		||||
 | 
			
		||||
                controller_save(discovered_controller);
 | 
			
		||||
                controller_free(discovered_controller);
 | 
			
		||||
            }
 | 
			
		||||
            mpack_tree_destroy(&tree);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue