state machine (part 3)

This commit is contained in:
Klaus K Wilting 2018-04-17 19:20:54 +02:00
parent eefac59030
commit cbca740792
4 changed files with 11 additions and 8 deletions

View File

@ -44,7 +44,8 @@ typedef struct {
extern configData_t cfg;
extern uint8_t mydata[];
extern uint64_t currentMillis ;
extern uint64_t uptimecounter;
extern uint32_t currentMillis ;
extern osjob_t sendjob;
extern char display_lora[], display_lmic[];
extern int countermode, screensaver, adrmode, lorasf, txpower, rlim;

View File

@ -44,9 +44,9 @@ configData_t cfg; // struct holds current device configuration
osjob_t sendjob, initjob; // LMIC
// Initialize global variables
#define DISPLAYREFRESH_MS (1 / DISPLAYFPS * (1000/portTICK_PERIOD_MS)) // calculate ms from fps
char display_lora[16], display_lmic[16]; // display buffers
uint64_t currentMillis = 0, previousLEDmillis = 0, previousDisplaymillis = 0;
uint64_t uptimecounter = 0;
uint32_t currentMillis = 0, previousLEDmillis = 0, previousDisplaymillis = 0;
uint8_t DisplayState, LEDState;
uint16_t LEDBlinkduration = 500, LEDInterval = 1000, color = COLOR_NONE;
uint8_t channel = 0; // wifi channel counter
@ -579,9 +579,11 @@ do_send(&sendjob);
// https://techtutorialsx.com/2017/05/09/esp32-get-task-execution-core/
void loop() {
uptimecounter = uptime() / 1000; // counts uptime in seconds (64bit)
// state machine for central control of all timimg based features
currentMillis = uptime() / 1000; // count uptime seconds
currentMillis = millis(); // timebase for state machine in milliseconds (32bit)
#ifdef HAS_BUTTON
readButton();

View File

@ -1,7 +1,7 @@
#pragma once
// program version - note: increment version after modifications to configData_t struct!!
#define PROGVERSION "1.3.01" // use max 10 chars here!
#define PROGVERSION "1.3.1" // use max 10 chars here!
#define PROGNAME "PAXCNT"
// Verbose enables serial output
@ -47,7 +47,7 @@
#define RGBLUMINOSITY 30 // 30%
// OLED Display refresh cycle (in Milliseconds)
#define DISPLAYFPS 5 // [fps] -> 5 Frames per second ps = 200ms refreseh cycle
#define DISPLAYREFRESH_MS 40 // e.g. 40ms -> 1000/40 = 25 frames per second
// LMIC settings
// define hardware independent LMIC settings here, settings of standard library in /lmic/config.h will be ignored

View File

@ -210,9 +210,9 @@ void get_config (int val) {
void get_uptime (int val) {
ESP_LOGI(TAG, "Remote command: get uptime");
int size = sizeof(currentMillis );
int size = sizeof(uptimecounter);
unsigned char *sendData = new unsigned char[size];
memcpy(sendData, (unsigned char*)&currentMillis , size);
memcpy(sendData, (unsigned char*)&uptimecounter , size);
LMIC_setTxData2(RCMDPORT, sendData, size-1, 0); // send data unconfirmed on RCMD Port
delete sendData; // free memory
ESP_LOGI(TAG, "%i bytes queued in send queue", size-1);