add: status for mqtt
fix: refactor connection handlers
This commit is contained in:
parent
2bc11ee829
commit
6c6e5023da
19 changed files with 534 additions and 183 deletions
include
|
@ -30,8 +30,9 @@ typedef struct
|
|||
char group[256];
|
||||
log_level_t log_level;
|
||||
run_type_t run_type;
|
||||
char server_port[6];
|
||||
uint16_t server_port;
|
||||
uint16_t discovery_port;
|
||||
uint16_t mqtt_port;
|
||||
char not_found_file[256];
|
||||
char not_found_file_type[256];
|
||||
char not_found_content[256];
|
||||
|
|
10
include/endpoints/api_v1_ws.h
Normal file
10
include/endpoints/api_v1_ws.h
Normal file
|
@ -0,0 +1,10 @@
|
|||
#ifndef CORE_ENDPOINTS_API_V1_WS_H
|
||||
#define CORE_ENDPOINTS_API_V1_WS_H
|
||||
|
||||
#include <router.h>
|
||||
|
||||
void
|
||||
api_v1_ws_relays(struct mg_connection *nc, struct http_message *hm, endpoint_args_t *args, endpoint_response_t *response);
|
||||
|
||||
|
||||
#endif /* CORE_ENDPOINTS_API_V1_WS_H */
|
|
@ -2,6 +2,9 @@
|
|||
#define CORE_HANDLERS_H
|
||||
|
||||
void
|
||||
handler_connection(struct mg_connection *c, int ev, void *p);
|
||||
handler_http(struct mg_connection *nc, int ev, void *p);
|
||||
|
||||
void
|
||||
handler_mqtt(struct mg_connection *nc, int ev, void *p);
|
||||
|
||||
#endif /* CORE_HANDLERS_H */
|
||||
|
|
|
@ -17,6 +17,7 @@ typedef struct
|
|||
int number;
|
||||
int controller_id;
|
||||
int active_schedule_id;
|
||||
int is_on;
|
||||
schedule_t *active_schedule;
|
||||
schedule_t *schedules[7];
|
||||
} relay_t;
|
||||
|
@ -24,14 +25,14 @@ typedef struct
|
|||
int
|
||||
relay_save();
|
||||
|
||||
int
|
||||
relay_remove();
|
||||
|
||||
void
|
||||
relay_reload_active_schedule(relay_t *relay);
|
||||
|
||||
cJSON*
|
||||
relay_to_json();
|
||||
relay_to_json(relay_t *relay);
|
||||
|
||||
cJSON*
|
||||
relay_list_to_json(relay_t **relays);
|
||||
|
||||
void
|
||||
relay_free(relay_t *relay);
|
||||
|
@ -39,9 +40,6 @@ relay_free(relay_t *relay);
|
|||
void
|
||||
relay_free_list(relay_t **relays_list);
|
||||
|
||||
relay_t**
|
||||
relay_get_by_simple(const char *key, const void *value, intptr_t bind_func, int bind_func_param);
|
||||
|
||||
relay_t*
|
||||
relay_get_by_id(int id);
|
||||
|
||||
|
|
|
@ -12,7 +12,9 @@ typedef enum
|
|||
HTTP_METHOD_POST = (1 << 1),
|
||||
HTTP_METHOD_PUT = (1 << 2),
|
||||
HTTP_METHOD_DELETE = (1 << 3),
|
||||
HTTP_METHOD_OPTIONS = (1 << 4)
|
||||
HTTP_METHOD_OPTIONS = (1 << 4),
|
||||
|
||||
HTTP_METHOD_WEBSOCKET = (1 << 5)
|
||||
} http_method_e;
|
||||
|
||||
endpoint_t*
|
||||
|
|
26
include/status.h
Normal file
26
include/status.h
Normal file
|
@ -0,0 +1,26 @@
|
|||
#ifndef CORE_STATUS_H
|
||||
#define CORE_STATUS_H
|
||||
|
||||
#include <models/controller.h>
|
||||
|
||||
extern relay_t **global_relay_status_list;
|
||||
|
||||
void
|
||||
status_init();
|
||||
|
||||
void
|
||||
status_reload_entry(int relay_id);
|
||||
|
||||
void
|
||||
status_update_entry(int relay_id, int is_on);
|
||||
|
||||
void
|
||||
status_broadcast(struct mg_mgr *mgr);
|
||||
|
||||
void
|
||||
status_send(struct mg_connection *c);
|
||||
|
||||
void
|
||||
status_free();
|
||||
|
||||
#endif /* CORE_STATUS_H */
|
Loading…
Add table
Add a link
Reference in a new issue