加入UDP通信功能

main
詹力 2022-09-24 18:45:56 +08:00
parent 8a5567eaf9
commit 04c11b00ec
3 changed files with 46 additions and 10 deletions

View File

@ -18,6 +18,9 @@ static void Button_EventHandler(ButtonEvent* btn, int event)
if(event == ButtonEvent::EVENT_ButtonClick){ if(event == ButtonEvent::EVENT_ButtonClick){
if(btn == &btPOWER){ if(btn == &btPOWER){
Button_Info.btnPower = 1; Button_Info.btnPower = 1;
gpio_pad_select_gpio(21);
gpio_set_direction((gpio_num_t)21, GPIO_MODE_OUTPUT);
gpio_set_level((gpio_num_t)21, 0);
printf("Button PWR short click.\n"); printf("Button PWR short click.\n");
} }
} }

View File

@ -43,9 +43,9 @@ void IMU_Update()
/* Sensor Debug. */ /* Sensor Debug. */
float yaw = 0.0f, pitch = 0.0f, roll = 0.0f; float yaw = 0.0f, pitch = 0.0f, roll = 0.0f;
MPU9250_GetEulerAngles(&yaw, &roll, &pitch);
printf("%.2f, %.2f, %.2f\n", yaw, roll, pitch); //MPU9250_GetEulerAngles(&yaw, &roll, &pitch);
//printf("%.2f, %.2f, %.2f\n", yaw, roll, pitch);
//printf("%.2f, %.2f, %.2f\n", imu.acc[0], imu.acc[1], imu.acc[2]); //printf("%.2f, %.2f, %.2f\n", imu.acc[0], imu.acc[1], imu.acc[2]);
//printf("%.2f, %.2f, %.2f\n", imu.gyr[0], imu.gyr[1], imu.gyr[2]); //printf("%.2f, %.2f, %.2f\n", imu.gyr[0], imu.gyr[1], imu.gyr[2]);

View File

@ -29,13 +29,45 @@
#include "esp_freertos_hooks.h" #include "esp_freertos_hooks.h"
#include "freertos/semphr.h" #include "freertos/semphr.h"
#include "lvgl.h"
#include "lvgl_helpers.h"
#include "System/GeekOS.h" #include "System/GeekOS.h"
#include "WIFINetwork.h" #include "WIFINetwork.h"
#include "mpu9250.h"
#define UDP_PORT 9000
#define TAG "main"
static void UdpSendData(void *pvParameters)
{
struct sockaddr_in saddr = { 0 };
int sock = -1;
int err = 0;
/* Init the sock. */
sock = socket(PF_INET, SOCK_DGRAM, IPPROTO_IP);
if (sock < 0) {
ESP_LOGE(TAG, "Failed to create socket. Error %d", errno);
}
saddr.sin_family = PF_INET;
saddr.sin_port = htons(UDP_PORT);
saddr.sin_addr.s_addr = htonl(IPADDR_BROADCAST);
char line[128] = " ";
/* Task Send Sensor Data. */
while (1) {
float yaw, roll, pitch;
MPU9250_GetEulerAngles(&yaw, &roll, &pitch);
sprintf(line, "%f %f %f\n", yaw, roll, pitch);
err = sendto(sock, line, 256, 0, (struct sockaddr *)&saddr,
sizeof(struct sockaddr_in));
if (err < 0) {
ESP_LOGE(TAG, "IPV4 sendto failed. errno: %d", errno);
}
vTaskDelay(30 / portTICK_PERIOD_MS);
}
close(sock);
}
#define LV_TICK_PERIOD_MS 1
static void lv_tick_task(void *arg);
/**----------------------------------------------------------------------- /**-----------------------------------------------------------------------
* Function : app_main * Function : app_main
* Description : GEEKIMU * Description : GEEKIMU
@ -49,10 +81,11 @@ void app_main(void)
// vTaskDelay(1500 / portTICK_PERIOD_MS); // vTaskDelay(1500 / portTICK_PERIOD_MS);
/* Config serial zero for shell. */ /* Config serial zero for shell. */
// userShellInit(0); userShellInit(0);
// xTaskCreate(shellTask, "shell", 4096, GetEsp32Shell(), 12, NULL); xTaskCreate(shellTask, "shell", 4096, GetEsp32Shell(), 12, NULL);
// LIB_WIFIConnect(); LIB_WIFIConnect();
xTaskCreate(UdpSendData, "UdpSend", 4096, NULL, 5, NULL);
uint32_t tick = 0; uint32_t tick = 0;
/* Forever loop. */ /* Forever loop. */