brightnes set at start and every min unless button used
This commit is contained in:
parent
34b785471b
commit
b6ffac1372
1 changed files with 42 additions and 15 deletions
|
|
@ -23,31 +23,36 @@ std::atomic_int gpsFixType(0);
|
|||
//screen
|
||||
Adafruit_AlphaNum4 disp = Adafruit_AlphaNum4();
|
||||
unsigned long timeOfLastFix = 0UL;
|
||||
unsigned long timer = millis();
|
||||
bool setInitBrightness = false;
|
||||
unsigned long brightnessTimer = millis();
|
||||
|
||||
//button
|
||||
volatile bool buttonPushed = false;
|
||||
volatile int ScreenBrightnessUser = 15;
|
||||
volatile int screenBrightnessCurrent = ScreenBrightnessUser;
|
||||
volatile unsigned long lastButtonPush = 0UL;
|
||||
volatile bool manualBrightness = false;
|
||||
|
||||
|
||||
void chageBrightness() {
|
||||
if (millis() - lastButtonPush > DEBOUNCE_DELAY) {
|
||||
buttonPushed = true;
|
||||
lastButtonPush = millis();
|
||||
manualBrightness=true;
|
||||
}
|
||||
}
|
||||
|
||||
void connectGPS() { //need to do this everytime the GPS turns back on
|
||||
do { //set gps to 115200 baudrate code comes from sparkfun examples
|
||||
// Serial.println("GNSS: trying 115200 baud");
|
||||
Serial.println("GNSS: trying 115200 baud");
|
||||
Serial1.begin(115200);
|
||||
if (myGPS.begin(Serial1) == true) break;
|
||||
delay(100);
|
||||
//Serial.println("GNSS: trying 9600 baud");
|
||||
Serial.println("GNSS: trying 9600 baud");
|
||||
Serial1.begin(9600);
|
||||
if (myGPS.begin(Serial1) == true) {
|
||||
// Serial.println("GNSS: connected at 9600 baud, switching to 115200");
|
||||
Serial.println("GNSS: connected at 9600 baud, switching to 115200");
|
||||
myGPS.setSerialRate(115200);
|
||||
delay(100);
|
||||
} else {
|
||||
|
|
@ -57,15 +62,27 @@ void connectGPS() { //need to do this everytime the GPS turns back on
|
|||
myGPS.setAutoPVT(true);
|
||||
myGPS.setUART1Output(COM_TYPE_UBX); //Set the UART1 port to output UBX only (turn off NMEA noise)
|
||||
myGPS.setNavigationFrequency(GPS_UPDATE_FREQUENCY); //set frequency of updates to 10/sec
|
||||
myGPS.setDynamicModel(DYN_MODEL_AUTOMOTIVE); //set dynamic model of GPS to automotive to more accutate results
|
||||
//myGPS.setDynamicModel(DYN_MODEL_AUTOMOTIVE); //set dynamic model of GPS to automotive to more accutate results
|
||||
}
|
||||
|
||||
bool setStartBrightness() {
|
||||
while (!(myGPS.getFixType() > 0)) {} //wait here untill gps gets a fix
|
||||
double az, el;
|
||||
setTime(myGPS.getHour(),myGPS.getMinute(),myGPS.getSecond(),myGPS.getDay(),myGPS.getMonth(),myGPS.getYear());
|
||||
double az = 0;
|
||||
double el = 0;
|
||||
int hour = myGPS.getHour();
|
||||
int min = myGPS.getMinute();
|
||||
int sec = myGPS.getSecond();
|
||||
int day = myGPS.getDay();
|
||||
int month = myGPS.getMonth();
|
||||
int year = myGPS.getYear();
|
||||
setTime(hour, min, sec, day, month, year);
|
||||
time_t timeUtc = now();
|
||||
calcHorizontalCoordinates(timeUtc,(double) myGPS.getLatitude()*10000000,(double) myGPS.getLongitude() * 10000000,az,el);
|
||||
double lat = myGPS.getLatitude();
|
||||
lat = lat / 10000000;
|
||||
double lng = myGPS.getLongitude();
|
||||
lng = lng / 10000000;
|
||||
calcHorizontalCoordinates(timeUtc, lat, lng, az, el);
|
||||
|
||||
//el = el - 180;
|
||||
|
||||
if (el > SUNRISESET_STD_ALTITUDE) {
|
||||
screenBrightnessCurrent = 15;
|
||||
|
|
@ -74,6 +91,7 @@ bool setStartBrightness() {
|
|||
} else if (el < CIVIL_DAWNDUSK_STD_ALTITUDE) {
|
||||
screenBrightnessCurrent = 0;
|
||||
}
|
||||
ScreenBrightnessUser = screenBrightnessCurrent;
|
||||
disp.setBrightness(screenBrightnessCurrent);
|
||||
return true;
|
||||
}
|
||||
|
|
@ -101,6 +119,14 @@ void setup1() {
|
|||
}
|
||||
|
||||
void loop() {
|
||||
//set init brightness
|
||||
|
||||
if((!setInitBrightness&&gpsFixType.load()>0)||((!manualBrightness&&millis() > brightnessTimer + 6000)&&gpsFixType.load()>0)){ //fire every minute
|
||||
setStartBrightness();
|
||||
setInitBrightness = true;
|
||||
brightnessTimer= millis();
|
||||
}
|
||||
|
||||
//change brightness
|
||||
if (buttonPushed == true) {
|
||||
if (ScreenBrightnessUser == 15) {
|
||||
|
|
@ -161,6 +187,7 @@ void loop() {
|
|||
rp2040.wdt_reset(); //rest watchdog timer
|
||||
}
|
||||
|
||||
|
||||
void loop1() {
|
||||
//myGPS.getPVT(GPS_WAIT_TIME);
|
||||
speed.store(myGPS.getGroundSpeed() * 0.0036); //get speed in mm/s and convert to Km/h
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue