fix issue #332
This commit is contained in:
parent
20c69789f0
commit
b5395661fc
@ -36,6 +36,9 @@ void lora_send(osjob_t *job);
|
||||
void lora_enqueuedata(MessageBuffer_t *message, sendprio_t prio);
|
||||
void lora_queuereset(void);
|
||||
void lora_housekeeping(void);
|
||||
#if (TIME_SYNC_LORAWAN)
|
||||
void user_request_network_time_callback(void *pVoidUserUTCTime,
|
||||
int flagSuccess);
|
||||
#endif
|
||||
|
||||
#endif
|
@ -14,6 +14,6 @@ void send_timesync_req(void);
|
||||
int recv_timesync_ans(uint8_t buf[], uint8_t buf_len);
|
||||
void process_timesync_req(void *taskparameter);
|
||||
void store_time_sync_req(uint32_t t_millisec);
|
||||
int adjustTime(uint32_t t_sec, uint16_t t_msec);
|
||||
void IRAM_ATTR setMyTime(uint32_t t_sec, uint16_t t_msec);
|
||||
|
||||
#endif
|
@ -31,7 +31,7 @@ description = Paxcounter is a proof-of-concept ESP32 device for metering passeng
|
||||
|
||||
[common]
|
||||
; for release_version use max. 10 chars total, use any decimal format like "a.b.c"
|
||||
release_version = 1.7.41
|
||||
release_version = 1.7.422
|
||||
; DEBUG LEVEL: For production run set to 0, otherwise device will leak RAM while running!
|
||||
; 0=None, 1=Error, 2=Warn, 3=Info, 4=Debug, 5=Verbose
|
||||
debug_level = 3
|
||||
|
@ -62,8 +62,8 @@
|
||||
//#define HAS_IF482 9600, SERIAL_7E1, GPIO_NUM_12, GPIO_NUM_14 // IF482 serial port parameters
|
||||
|
||||
// Settings for DCF77 interface
|
||||
#define HAS_DCF77 GPIO_NUM_1
|
||||
#define DCF77_ACTIVE_LOW 1
|
||||
//#define HAS_DCF77 GPIO_NUM_1
|
||||
//#define DCF77_ACTIVE_LOW 1
|
||||
|
||||
// Pins for LORA chip SPI interface, reset line and interrupt lines
|
||||
#define LORA_SCK (5)
|
||||
|
@ -22,7 +22,7 @@
|
||||
//#define LMIC_USE_INTERRUPTS 1
|
||||
|
||||
//time sync via LoRaWAN network, is not yet supported by TTN (LoRaWAN spec v1.0.3)
|
||||
#define LMIC_ENABLE_DeviceTimeReq 1
|
||||
//#define LMIC_ENABLE_DeviceTimeReq 1
|
||||
|
||||
// 16 μs per tick
|
||||
// LMIC requires ticks to be 15.5μs - 100 μs long
|
||||
|
@ -462,6 +462,7 @@ void lora_housekeeping(void) {
|
||||
// uxTaskGetStackHighWaterMark(LoraTask));
|
||||
}
|
||||
|
||||
#if (TIME_SYNC_LORAWAN)
|
||||
void IRAM_ATTR user_request_network_time_callback(void *pVoidUserUTCTime,
|
||||
int flagSuccess) {
|
||||
// Explicit conversion from void* to uint32_t* to avoid compiler errors
|
||||
@ -504,11 +505,12 @@ void IRAM_ATTR user_request_network_time_callback(void *pVoidUserUTCTime,
|
||||
time_t requestDelaySec = osticks2ms(ticksNow - ticksRequestSent) / 1000;
|
||||
|
||||
// Update system time with time read from the network
|
||||
adjustTime(*pUserUTCTime + requestDelaySec, 0);
|
||||
setMyTime(*pUserUTCTime + requestDelaySec, 0);
|
||||
|
||||
// end of time critical section: release I2C bus
|
||||
I2C_MUTEX_UNLOCK();
|
||||
|
||||
} // user_request_network_time_callback
|
||||
#endif // TIME_SYNC_LORAWAN
|
||||
|
||||
#endif // HAS_LORA
|
||||
|
@ -411,6 +411,11 @@ void setup() {
|
||||
#endif // HAS_BUTTON
|
||||
|
||||
#if (TIME_SYNC_INTERVAL)
|
||||
#if (!defined(TIME_SYNC_LORAWAN) && !defined(TIME_SYNC_TIMESERVER) && \
|
||||
!defined HAS_GPS && !defined HAS_RTC)
|
||||
#warning you did not specify a time source, time will not be synched
|
||||
#endif
|
||||
#else
|
||||
// start pps timepulse
|
||||
ESP_LOGI(TAG, "Starting Timekeeper...");
|
||||
assert(timepulse_init()); // setup timepulse
|
||||
|
@ -130,7 +130,7 @@ void process_timesync_req(void *taskparameter) {
|
||||
// calculate fraction milliseconds
|
||||
time_to_set_fraction_msec = (uint16_t)(time_offset_ms.count() % 1000);
|
||||
|
||||
adjustTime(time_to_set, time_to_set_fraction_msec);
|
||||
setMyTime(time_to_set, time_to_set_fraction_msec);
|
||||
|
||||
// end of time critical section: release I2C bus
|
||||
I2C_MUTEX_UNLOCK();
|
||||
@ -213,7 +213,7 @@ int recv_timesync_ans(uint8_t buf[], uint8_t buf_len) {
|
||||
}
|
||||
|
||||
// adjust system time, calibrate RTC and RTC_INT pps
|
||||
int IRAM_ATTR adjustTime(uint32_t t_sec, uint16_t t_msec) {
|
||||
void IRAM_ATTR setMyTime(uint32_t t_sec, uint16_t t_msec) {
|
||||
|
||||
time_t time_to_set = (time_t)t_sec;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user