Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/aZholtikov/zh_syslog
ESP32 ESP-IDF and ESP8266 RTOS SDK component for Syslog server UDP client.
https://github.com/aZholtikov/zh_syslog
component esp-idf esp32 esp8266 ietf rtos-sdk syslog syslog-client udp
Last synced: 2 months ago
JSON representation
ESP32 ESP-IDF and ESP8266 RTOS SDK component for Syslog server UDP client.
- Host: GitHub
- URL: https://github.com/aZholtikov/zh_syslog
- Owner: aZholtikov
- License: apache-2.0
- Created: 2024-07-15T10:12:51.000Z (5 months ago)
- Default Branch: main
- Last Pushed: 2024-07-21T09:44:00.000Z (5 months ago)
- Last Synced: 2024-10-17T17:22:51.674Z (2 months ago)
- Topics: component, esp-idf, esp32, esp8266, ietf, rtos-sdk, syslog, syslog-client, udp
- Language: C
- Homepage:
- Size: 6.84 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# ESP32 ESP-IDF and ESP8266 RTOS SDK component for Syslog server UDP client
## Tested on
1. ESP8266 RTOS_SDK v3.4
2. ESP32 ESP-IDF v5.2## Using
In an existing project, run the following command to install the component:
```text
cd ../your_project/components
git clone https://github.com/aZholtikov/zh_syslog.git
```In the application, add the component:
```c
#include "zh_syslog.h"
```## Example
Sending messages:
```c
#include "nvs_flash.h"
#include "esp_netif.h"
#include "esp_wifi.h"
#include "esp_timer.h"
#include "esp_event.h"
#include "freertos/FreeRTOS.h"
#include "freertos/event_groups.h"
#include "zh_syslog.h"#define WIFI_SSID "ssid"
#define WIFI_PASS "password"
#define WIFI_MAXIMUM_RETRY 5
#define WIFI_RECONNECT_TIME 5
#define WIFI_CONNECT_SUCCESS BIT0#define SYSLOG_IP "192.168.1.2"
esp_timer_handle_t wifi_reconnect_timer = {0};
uint8_t wifi_reconnect_retry_num = 0;
EventGroupHandle_t event_group_handle = {0};void wifi_event_handler(void *arg, esp_event_base_t event_base, int32_t event_id, void *event_data);
void app_main(void)
{
esp_log_level_set("zh_syslog", ESP_LOG_NONE);
nvs_flash_init();
esp_netif_init();
esp_event_loop_create_default();
#ifdef CONFIG_IDF_TARGET_ESP8266
tcpip_adapter_init();
#else
esp_netif_create_default_wifi_sta();
#endif
wifi_init_config_t wifi_init_sta_config = WIFI_INIT_CONFIG_DEFAULT();
esp_wifi_init(&wifi_init_sta_config);
wifi_config_t wifi_config = {
.sta.ssid = WIFI_SSID,
.sta.password = WIFI_PASS};
esp_wifi_set_mode(WIFI_MODE_STA);
esp_wifi_set_config(WIFI_IF_STA, &wifi_config);
#ifdef CONFIG_IDF_TARGET_ESP8266
esp_event_handler_register(WIFI_EVENT, ESP_EVENT_ANY_ID, &wifi_event_handler, NULL);
esp_event_handler_register(IP_EVENT, IP_EVENT_STA_GOT_IP, &wifi_event_handler, NULL);
#else
esp_event_handler_instance_register(WIFI_EVENT, ESP_EVENT_ANY_ID, &wifi_event_handler, NULL, NULL);
esp_event_handler_instance_register(IP_EVENT, IP_EVENT_STA_GOT_IP, &wifi_event_handler, NULL, NULL);
#endif
esp_wifi_start();
event_group_handle = xEventGroupCreate();
xEventGroupWaitBits(event_group_handle, WIFI_CONNECT_SUCCESS, pdTRUE, pdTRUE, portMAX_DELAY);
zh_syslog_init_config_t syslog_init_config = ZH_SYSLOG_INIT_CONFIG_DEFAULT();
memcpy(syslog_init_config.syslog_ip, SYSLOG_IP, strlen(SYSLOG_IP));
zh_syslog_init(&syslog_init_config);
for (;;)
{
zh_syslog_send(ZH_USER, ZH_INFO, "my_device", "my_application", "Message");
vTaskDelay(5000 / portTICK_PERIOD_MS);
}
}void wifi_event_handler(void *arg, esp_event_base_t event_base, int32_t event_id, void *event_data)
{
switch (event_id)
{
case WIFI_EVENT_STA_START:
esp_wifi_connect();
break;
case WIFI_EVENT_STA_DISCONNECTED:
if (wifi_reconnect_retry_num < WIFI_MAXIMUM_RETRY)
{
esp_wifi_connect();
++wifi_reconnect_retry_num;
}
else
{
wifi_reconnect_retry_num = 0;
esp_timer_create_args_t wifi_reconnect_timer_args = {
.callback = (void *)esp_wifi_connect};
esp_timer_create(&wifi_reconnect_timer_args, &wifi_reconnect_timer);
esp_timer_start_once(wifi_reconnect_timer, WIFI_RECONNECT_TIME * 1000);
}
break;
case IP_EVENT_STA_GOT_IP:
wifi_reconnect_retry_num = 0;
xEventGroupSetBits(event_group_handle, WIFI_CONNECT_SUCCESS);
break;
default:
break;
}
}
```Any [feedback](mailto:[email protected]) will be gladly accepted.