#ifndef W5500_H #define W5500_H #include #include // Definitions for socket indexes #define DHCP_SOCKET 0 #define DNS_SOCKET 1 #define TCP_SOCKET 2 // Options structure for client identification typedef struct { char* clientid; char* username; char* password; int qos; } ch32_mqtt_options_t; extern volatile int ip_assigned; void handle_ip_assigned(void); // Initializes the W5500 chip void configure_network(void); void configure_dhcp(void); // resolves a domain name void resolve_domain_name(const char* domain_name); // init and connect the MQTT client MQTTClient setup_mqtt_client(Network* network, ch32_mqtt_options_t* opts); int subscribe_to_topic(MQTTClient* client, const char* topic, enum QoS qos, messageHandler message_callback); // publish a message to a topic void publish_message(MQTTClient* client, const char* payload, const char* topic); #endif // W5500_H