start uart timestamp send when time has been synced
This commit is contained in:
parent
6894d718e6
commit
cab44588c7
@ -12,6 +12,7 @@ algorithm in applications without granted license by the patent holder.
|
|||||||
#if (TIME_SYNC_LORASERVER) && (HAS_LORA)
|
#if (TIME_SYNC_LORASERVER) && (HAS_LORA)
|
||||||
|
|
||||||
#include "timesync.h"
|
#include "timesync.h"
|
||||||
|
#include "uart.h"
|
||||||
|
|
||||||
// Local logging tag
|
// Local logging tag
|
||||||
static const char TAG[] = __FILE__;
|
static const char TAG[] = __FILE__;
|
||||||
@ -282,6 +283,7 @@ void IRAM_ATTR setMyTime(uint32_t t_sec, uint16_t t_msec,
|
|||||||
|
|
||||||
timeSource = mytimesource; // set global variable
|
timeSource = mytimesource; // set global variable
|
||||||
timesyncer.attach(TIME_SYNC_INTERVAL * 60, timeSync);
|
timesyncer.attach(TIME_SYNC_INTERVAL * 60, timeSync);
|
||||||
|
time_uart_send_start();
|
||||||
ESP_LOGI(TAG, "[%0.3f] Timesync finished, time was set | source: %c",
|
ESP_LOGI(TAG, "[%0.3f] Timesync finished, time was set | source: %c",
|
||||||
millis() / 1000.0, timeSetSymbols[timeSource]);
|
millis() / 1000.0, timeSetSymbols[timeSource]);
|
||||||
} else {
|
} else {
|
||||||
|
18
src/uart.cpp
18
src/uart.cpp
@ -5,6 +5,9 @@
|
|||||||
#include "globals.h"
|
#include "globals.h"
|
||||||
#include "driver/uart.h"
|
#include "driver/uart.h"
|
||||||
|
|
||||||
|
static const char TAG[] = __FILE__;
|
||||||
|
TaskHandle_t UartTask = NULL;
|
||||||
|
|
||||||
void time_uart_send(void * pvParameters) {
|
void time_uart_send(void * pvParameters) {
|
||||||
struct timeval curTime;
|
struct timeval curTime;
|
||||||
|
|
||||||
@ -25,7 +28,7 @@ void time_uart_send(void * pvParameters) {
|
|||||||
// gettimeofday(&curTime, &tz);
|
// gettimeofday(&curTime, &tz);
|
||||||
int sleep = 1000 - (curTime.tv_usec/1000);
|
int sleep = 1000 - (curTime.tv_usec/1000);
|
||||||
ostime_t now = os_getTime();
|
ostime_t now = os_getTime();
|
||||||
printf("Sleep Time: %d, now: %d\n", sleep, now);
|
ESP_LOGD(TAG, "Sleep Time: %d, now: %d\n", sleep, now);
|
||||||
vTaskDelayUntil( &xLastWakeTime, (TickType_t)(sleep/portTICK_PERIOD_MS) );
|
vTaskDelayUntil( &xLastWakeTime, (TickType_t)(sleep/portTICK_PERIOD_MS) );
|
||||||
|
|
||||||
// Read UART for testing purposes
|
// Read UART for testing purposes
|
||||||
@ -43,3 +46,16 @@ void time_uart_send(void * pvParameters) {
|
|||||||
|
|
||||||
vTaskDelete(NULL);
|
vTaskDelete(NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void time_uart_send_start() {
|
||||||
|
if (UartTask) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
xTaskCreatePinnedToCore(time_uart_send, // task function
|
||||||
|
"time_uart_send", // name of task
|
||||||
|
2048, // stack size of task
|
||||||
|
(void *)1, // parameter of the task
|
||||||
|
2, // priority of the task
|
||||||
|
&UartTask, // task handle
|
||||||
|
1); // CPU core
|
||||||
|
}
|
||||||
|
@ -1 +1,2 @@
|
|||||||
void time_uart_send(void * pvParameters);
|
void time_uart_send(void * pvParameters);
|
||||||
|
void time_uart_send_start();
|
||||||
|
Loading…
Reference in New Issue
Block a user