esp_mqtt/user/lang.h

56 wiersze
1.6 KiB
C

#ifndef _LANG_
#define _LANG_
#include "mqtt/mqtt_server.h"
typedef enum {SYNTAX_CHECK, CONFIG, INIT, MQTT_CLIENT_CONNECT, WIFI_CONNECT, WIFI_DISCONNECT, TOPIC_LOCAL, TOPIC_REMOTE, TIMER, SERIAL_INPUT, GPIO_INT, ALARM, HTTP_RESPONSE} Interpreter_Status;
typedef enum {STRING_T, DATA_T} Value_Type;
typedef struct _var_entry_t {
uint8_t name[15];
uint8_t free;
uint32_t buffer_len;
uint8_t *data;
uint32_t data_len;
Value_Type data_type;
} var_entry_t;
extern var_entry_t vars[];
extern MQTT_Client mqttClient;
extern bool mqtt_enabled, mqtt_connected;
extern bool lang_logging;
uint8_t tmp_buffer[128];
uint32_t loop_time;
uint32_t loop_count;
int text_into_tokens(char *str);
void free_tokens(void);
bool is_token(int i, char *s);
int search_token(int i, char *s);
int syntax_error(int i, char *message);
int parse_statement(int next_token);
int parse_event(int next_token, bool *happened);
int parse_action(int next_token, bool doit);
int parse_expression(int next_token, char **data, int *data_len, Value_Type * data_type, bool doit);
int parse_value(int next_token, char **data, int *data_len, Value_Type *data_type);
extern bool script_enabled;
int interpreter_syntax_check();
int interpreter_config();
int interpreter_init();
int interpreter_mqtt_connect(void);
int interpreter_wifi_connect(void);
int interpreter_wifi_disconnect(void);
int interpreter_topic_received(const char *topic, const char *data, int data_len, bool local);
int interpreter_serial_input(const char *data, int data_len);
void init_timestamps(uint8_t *curr_time);
void check_timestamps(uint8_t *curr_time);
void init_gpios();
void stop_gpios();
#endif /* _LANG_ */