Flight logger project, having issues with the code, this is the error:
/Users/Taran/Documents/Arduino/flight_logger/flight_logger.ino: In function 'void loop()':
flight_logger:69:19: error: expected unqualified-id before '(' token
satCheck = (abs.(gps.satCheck.value());
^
flight_logger:69:24: error: 'class TinyGPS' has no member named 'satCheck'
satCheck = (abs.(gps.satCheck.value());
^~~~~~~~
flight_logger:69:41: error: expected ')' before ';' token
satCheck = (abs.(gps.satCheck.value());
^
flight_logger:79:6: error: expected '(' before 'speedCheck'
if speedCheck > speedMax {
^~~~~~~~~~
flight_logger:91:1: error: expected ';' before '}' token
}
^
flight_logger:95:1: error: 'oled' was not declared in this scope
oled.setCursor(100, 80);
^~~~
flight_logger:98:39: error: invalid use of non-static member function 'void TinyGPS::get_datetime(long unsigned int*, long unsigned int*, long unsigned int*)'
String Temps = String(gps.get_datetime)
^
In file included from /Users/Taran/Documents/Arduino/flight_logger/flight_logger.ino:4:0:
/Users/Taran/Documents/Arduino/libraries/TinyGPS/src/TinyGPS.h:65:8: note: declared here
void get_datetime(unsigned long *date, unsigned long *time, unsigned long *age = 0);
^~~~~~~~~~~~
flight_logger:102:16: error: 'data' was not declared in this scope
data.println(gps.get_datetime, +String(gps.f_speed_kmph), +String(gps.f_altitude);
^~~~
/Users/Taran/Documents/Arduino/flight_logger/flight_logger.ino:102:16: note: suggested alternative: 'atan'
data.println(gps.get_datetime, +String(gps.f_speed_kmph), +String(gps.f_altitude);
^~~~
atan
flight_logger:102:71: error: invalid use of non-static member function 'float TinyGPS::f_speed_kmph()'
data.println(gps.get_datetime, +String(gps.f_speed_kmph), +String(gps.f_altitude);
^
In file included from /Users/Taran/Documents/Arduino/flight_logger/flight_logger.ino:4:0:
/Users/Taran/Documents/Arduino/libraries/TinyGPS/src/TinyGPS.h:90:9: note: declared here
float f_speed_kmph();
^~~~~~~~~~~~
flight_logger:102:96: error: invalid use of non-static member function 'float TinyGPS::f_altitude()'
data.println(gps.get_datetime, +String(gps.f_speed_kmph), +String(gps.f_altitude);
^
In file included from /Users/Taran/Documents/Arduino/flight_logger/flight_logger.ino:4:0:
/Users/Taran/Documents/Arduino/libraries/TinyGPS/src/TinyGPS.h:85:9: note: declared here
float f_altitude();
^~~~~~~~~~
Multiple libraries were found for "Adafruit_SSD1306.h"
Used: /Users/Taran/Documents/Arduino/libraries/Adafruit_SSD1306
Not used: /Users/Taran/Documents/Arduino/libraries/Adafruit_SSD1306_Wemos_Mini_OLED
exit status 1
expected unqualified-id before '(' token
this is the code for your reference:
#include <SPI.h>
#include <Wire.h>
#include <TinyGPS.h>
#include <SoftwareSerial.h>
#include <SD.h>
#include <Adafruit_SSD1306.h>
// --------------------------------------------------------------------------initialising the display------------------------------------------------------------------------------------------------------------------------------------------------------
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define display_RESET -1 // since sharing reset pin with Arduino
#define SCREEN_ADDRESS 0x3C
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, display_RESET);
const int cs_sd = 2;
static const int RX = 3, TX = 4;
static const uint32_t gps_baud = 9600; // might need to change later on depending on sensitivity and speed requirements.
TinyGPS gps;
SoftwareSerial ss(RX, TX);
int speedMax = 0, speedCheck = 0;
int heightMax = 0, heightCheck = 0;
int satMax = 0, satCheck = 0;
void setup() {
Serial.begin(9600);
// SSD1306_SWITCHCAPVCC = generate display voltage from 3.3V internally
if (!display.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS))
Serial.println(F("SSD1306 allocation failed"));
for (;;); // Don't proceed, loop forever
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(15, 40);
display.write("VP-DK Avionics");
display.write("Flight Logger ver1.0");
delay(2000);
display.clearDisplay();
Wire.begin();
ss.begin(gps_baud);
if (!SD.begin(cs_sd));
display.clearDisplay();
display.write("Default Card.");
delay(500);
display.clearDisplay();
File data = SD.open("Flight Logger.txt", FILE_WRITE);
data.println(" ");
data.println("Data acquisition started");
data.close();
}
void loop() {
satCheck = (abs.(gps.satCheck.value());
display.print("Max Speed: ");
display.print("Max Height: ");
display.println(" ");
display.println(" ");
display.println(" ");
display.println(" ");
speedCheck = (gps.f_speed_kmph());
if speedCheck > speedMax {
speedMax = speedCheck
}
display.setCursor(10, 80); // might have to change later
display.print(speedMax);
heightCheck = (gps.f_altitude());
if (heightCheck > heightMax) {
heightMax = heightCheck
}
display.setCursor(50, 80); // might have to change later
display.print(heightMax);
oled.setCursor(100, 80);
oled.print(satCheck);
String Temps = String(gps.get_datetime)
File data = SD.open("Flight Logger.txt", FILE_WRITE);
data.println(gps.get_datetime, +String(gps.f_speed_kmph), +String(gps.f_altitude);
}
new list of errors. I'm really bad at diagnosing in C, hence asking for help.
Arduino: 1.8.13 (Mac OS X), Board: "Arduino Uno"
In file included from sketch/flight_logger.ino.cpp:1:0:
/Users/Taran/Documents/Arduino/flight_logger/flight_logger.ino: In function 'void loop()':
flight_logger:69:25: error: invalid use of member function 'short unsigned int TinyGPS::satellites()' (did you forget the '()' ?)
satellites = (abs(gps.satellites.value()));
~~~~^
/Applications/Arduino.app/Contents/Java/hardware/arduino/avr/cores/arduino/Arduino.h:94:18: note: in definition of macro 'abs' #define abs(x) ((x)>0?(x):-(x))
^
flight_logger:69:25: error: invalid use of member function 'short unsigned int TinyGPS::satellites()' (did you forget the '()' ?)
satellites = (abs(gps.satellites.value())); ^
/Applications/Arduino.app/Contents/Java/hardware/arduino/avr/cores/arduino/Arduino.h:94:18: note: in definition of macro 'abs' #define abs(x) ((x)>0?(x):-(x))
^
flight_logger:69:25: error: invalid use of member function 'short unsigned int TinyGPS::satellites()' (did you forget the '()' ?)
satellites = (abs(gps.satellites.value())); ^
/Applications/Arduino.app/Contents/Java/hardware/arduino/avr/cores/arduino/Arduino.h:94:24: note: in definition of macro 'abs' #define abs(x) ((x)>0?(x):-(x))
^
flight_logger:69:25: error: invalid use of member function 'short unsigned int TinyGPS::satellites()' (did you forget the '()' ?)
satellites = (abs(gps.satellites.value())); ^
/Applications/Arduino.app/Contents/Java/hardware/arduino/avr/cores/arduino/Arduino.h:94:24: note: in definition of macro 'abs' #define abs(x) ((x)>0?(x):-(x))
^
flight_logger:69:25: error: invalid use of member function 'short unsigned int TinyGPS::satellites()' (did you forget the '()' ?)
satellites = (abs(gps.satellites.value())); ^
/Applications/Arduino.app/Contents/Java/hardware/arduino/avr/cores/arduino/Arduino.h:94:29: note: in definition of macro 'abs' #define abs(x) ((x)>0?(x):-(x))
^
flight_logger:69:25: error: invalid use of member function 'short unsigned int TinyGPS::satellites()' (did you forget the '()' ?)
satellites = (abs(gps.satellites.value())); ^
/Applications/Arduino.app/Contents/Java/hardware/arduino/avr/cores/arduino/Arduino.h:94:29: note: in definition of macro 'abs' #define abs(x) ((x)>0?(x):-(x))
^
flight_logger:83:3: error: expected ';' before '}' token
}
^
flight_logger:91:3: error: expected ';' before '}' token
}
^
flight_logger:96:29: error: 'satellites' cannot be used as a function
display.print(satellites());
^
flight_logger:98:42: error: invalid use of non-static member function 'void TinyGPS::get_datetime(long unsigned int*, long unsigned int*, long unsigned int*)'
String Temps = String(gps.get_datetime);
^
In file included from /Users/Taran/Documents/Arduino/flight_logger/flight_logger.ino:4:0:
/Users/Taran/Documents/Arduino/libraries/TinyGPS/src/TinyGPS.h:65:8: note: declared here
void get_datetime(unsigned long *date, unsigned long *time, unsigned long *age = 0);
^~
flight_logger:102:51: error: invalid use of non-static member function 'long unsigned int TinyGPS::speed()'
data.println(gps.get_datetime, +String(gps.speed), +String(gps.altitude);
^
In file included from /Users/Taran/Documents/Arduino/flight_logger/flight_logger.ino:4:0:
/Users/Taran/Documents/Arduino/libraries/TinyGPS/src/TinyGPS.h:74:24: note: declared here
inline unsigned long speed() { return _speed; }
^
flight_logger:102:74: error: invalid use of non-static member function 'long int TinyGPS::altitude()'
data.println(gps.get_datetime, +String(gps.speed), +String(gps.altitude);
^
In file included from /Users/Taran/Documents/Arduino/flight_logger/flight_logger.ino:4:0:
/Users/Taran/Documents/Arduino/libraries/TinyGPS/src/TinyGPS.h:68:15: note: declared here
inline long altitude() { return _altitude; }
^~
Multiple libraries were found for "Adafruit_SSD1306.h"
Used: /Users/Taran/Documents/Arduino/libraries/Adafruit_SSD1306
Not used: /Users/Taran/Documents/Arduino/libraries/Adafruit_SSD1306_Wemos_Mini_OLED
exit status 1
invalid use of member function 'short unsigned int TinyGPS::satellites()' (did you forget the '()' ?)
code has a few changes:
#include <SPI.h>
#include <Wire.h>
#include <TinyGPS.h>
#include <SoftwareSerial.h>
#include <SD.h>
#include <Adafruit_SSD1306.h>
// --------------------------------------------------------------------------initialising the display------------------------------------------------------------------------------------------------------------------------------------------------------
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define display_RESET -1 // since sharing reset pin with Arduino
#define SCREEN_ADDRESS 0x3C
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, display_RESET);
const int cs_sd = 2;
static const int RX = 3, TX = 4;
static const uint32_t gps_baud = 9600; // might need to change later on depending on sensitivity and speed requirements.
TinyGPS gps;
SoftwareSerial ss(RX, TX);
int speedMax = 0, speedCheck = 0;
int heightMax = 0, heightCheck = 0;
int satMax = 0, satellites = 0;
void setup() {
Serial.begin(9600);
// SSD1306_SWITCHCAPVCC = generate display voltage from 3.3V internally
if (!display.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS))
Serial.println(F("SSD1306 allocation failed"));
for (;;); // Don't proceed, loop forever
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(15, 40);
display.write("VP-DK Avionics");
display.write("Flight Logger ver1.0");
delay(2000);
display.clearDisplay();
Wire.begin();
ss.begin(gps_baud);
if (!SD.begin(cs_sd));
display.clearDisplay();
display.write("Default Card.");
delay(500);
display.clearDisplay();
File data = SD.open("Flight Logger.txt", FILE_WRITE);
data.println(" ");
data.println("Data acquisition started");
data.close();
}
void loop() {
satellites = (abs(gps.satellites.value()));
display.print("Max Speed: ");
display.print("Max Height: ");
display.println(" ");
display.println(" ");
display.println(" ");
display.println(" ");
speedCheck = (gps.f_speed_kmph());
if ( speedCheck > speedMax) {
speedMax = speedCheck
}
display.setCursor(10, 80); // might have to change later
display.print(speedMax);
heightCheck = (gps.f_altitude());
if (heightCheck > heightMax) {
heightMax = heightCheck
}
display.setCursor(50, 80); // might have to change later
display.print(heightMax);
display.setCursor(100, 80);
display.print(satellites());
String Temps = String(gps.get_datetime);
File data = SD.open("Flight Logger.txt", FILE_WRITE);
data.println(gps.get_datetime, +String(gps.speed), +String(gps.altitude);
}
Nope, it added it for some reason on its own, should I put the errors in tags as well?
doing it here just for ease.
Arduino: 1.8.13 (Mac OS X), Board: "Arduino Uno"
In file included from sketch/flight_logger.ino.cpp:1:0:
/Users/Taran/Documents/Arduino/flight_logger/flight_logger.ino: In function 'void loop()':
flight_logger:64:23: error: invalid use of member function 'short unsigned int TinyGPS::satellites()' (did you forget the '()' ?)
satCheck = (abs(gps.satellites.value()));
~~~~^
/Applications/Arduino.app/Contents/Java/hardware/arduino/avr/cores/arduino/Arduino.h:94:18: note: in definition of macro 'abs'
#define abs(x) ((x)>0?(x):-(x))
^
flight_logger:64:23: error: invalid use of member function 'short unsigned int TinyGPS::satellites()' (did you forget the '()' ?)
satCheck = (abs(gps.satellites.value()));
~~~~^
/Applications/Arduino.app/Contents/Java/hardware/arduino/avr/cores/arduino/Arduino.h:94:18: note: in definition of macro 'abs'
#define abs(x) ((x)>0?(x):-(x))
^
flight_logger:64:23: error: invalid use of member function 'short unsigned int TinyGPS::satellites()' (did you forget the '()' ?)
satCheck = (abs(gps.satellites.value()));
~~~~^
/Applications/Arduino.app/Contents/Java/hardware/arduino/avr/cores/arduino/Arduino.h:94:24: note: in definition of macro 'abs'
#define abs(x) ((x)>0?(x):-(x))
^
flight_logger:64:23: error: invalid use of member function 'short unsigned int TinyGPS::satellites()' (did you forget the '()' ?)
satCheck = (abs(gps.satellites.value()));
~~~~^
/Applications/Arduino.app/Contents/Java/hardware/arduino/avr/cores/arduino/Arduino.h:94:24: note: in definition of macro 'abs'
#define abs(x) ((x)>0?(x):-(x))
^
flight_logger:64:23: error: invalid use of member function 'short unsigned int TinyGPS::satellites()' (did you forget the '()' ?)
satCheck = (abs(gps.satellites.value()));
~~~~^
/Applications/Arduino.app/Contents/Java/hardware/arduino/avr/cores/arduino/Arduino.h:94:29: note: in definition of macro 'abs'
#define abs(x) ((x)>0?(x):-(x))
^
flight_logger:64:23: error: invalid use of member function 'short unsigned int TinyGPS::satellites()' (did you forget the '()' ?)
satCheck = (abs(gps.satellites.value()));
~~~~^
/Applications/Arduino.app/Contents/Java/hardware/arduino/avr/cores/arduino/Arduino.h:94:29: note: in definition of macro 'abs'
#define abs(x) ((x)>0?(x):-(x))
^
flight_logger:91:17: error: 'satellites' was not declared in this scope
display.print(satellites());
^~~~~~~~~~
/Users/Taran/Documents/Arduino/flight_logger/flight_logger.ino:91:17: note: suggested alternative: 'atexit'
display.print(satellites());
^~~~~~~~~~
atexit
flight_logger:93:41: error: invalid use of non-static member function 'void TinyGPS::get_datetime(long unsigned int*, long unsigned int*, long unsigned int*)'
String Temps = String(gps.get_datetime);
^
In file included from /Users/Taran/Documents/Arduino/flight_logger/flight_logger.ino:4:0:
/Users/Taran/Documents/Arduino/libraries/TinyGPS/src/TinyGPS.h:65:8: note: declared here
void get_datetime(unsigned long *date, unsigned long *time, unsigned long *age = 0);
^~~~~~~~~~~~
flight_logger:97:58: error: invalid use of non-static member function 'float TinyGPS::f_speed_kmph()'
data.println(gps.get_datetime, +String(gps.f_speed_kmph), +String(gps.f_altitude);
^
In file included from /Users/Taran/Documents/Arduino/flight_logger/flight_logger.ino:4:0:
/Users/Taran/Documents/Arduino/libraries/TinyGPS/src/TinyGPS.h:90:9: note: declared here
float f_speed_kmph();
^~~~~~~~~~~~
flight_logger:97:83: error: invalid use of non-static member function 'float TinyGPS::f_altitude()'
data.println(gps.get_datetime, +String(gps.f_speed_kmph), +String(gps.f_altitude);
^
In file included from /Users/Taran/Documents/Arduino/flight_logger/flight_logger.ino:4:0:
/Users/Taran/Documents/Arduino/libraries/TinyGPS/src/TinyGPS.h:85:9: note: declared here
float f_altitude();
^~~~~~~~~~
Multiple libraries were found for "Adafruit_SSD1306.h"
Used: /Users/Taran/Documents/Arduino/libraries/Adafruit_SSD1306
Not used: /Users/Taran/Documents/Arduino/libraries/Adafruit_SSD1306_Wemos_Mini_OLED
exit status 1
invalid use of member function 'short unsigned int TinyGPS::satellites()' (did you forget the '()' ?)
This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.
Arduino: 1.8.13 (Mac OS X), Board: "Arduino Nano, ATmega328P"
In file included from sketch/flight_logger.ino.cpp:1:0:
/Users/Taran/Documents/Arduino/flight_logger/flight_logger.ino: In function 'void loop()':
flight_logger:60:21: error: invalid use of member function 'short unsigned int TinyGPS::satellites()' (did you forget the '()' ?)
satCheck=(abs(gps.satellites.value));
~~~~^
/Applications/Arduino.app/Contents/Java/hardware/arduino/avr/cores/arduino/Arduino.h:94:18: note: in definition of macro 'abs'
#define abs(x) ((x)>0?(x):-(x))
^
flight_logger:60:21: error: invalid use of member function 'short unsigned int TinyGPS::satellites()' (did you forget the '()' ?)
satCheck=(abs(gps.satellites.value));
~~~~^
/Applications/Arduino.app/Contents/Java/hardware/arduino/avr/cores/arduino/Arduino.h:94:18: note: in definition of macro 'abs'
#define abs(x) ((x)>0?(x):-(x))
^
flight_logger:60:21: error: invalid use of member function 'short unsigned int TinyGPS::satellites()' (did you forget the '()' ?)
satCheck=(abs(gps.satellites.value));
~~~~^
/Applications/Arduino.app/Contents/Java/hardware/arduino/avr/cores/arduino/Arduino.h:94:24: note: in definition of macro 'abs'
#define abs(x) ((x)>0?(x):-(x))
^
flight_logger:60:21: error: invalid use of member function 'short unsigned int TinyGPS::satellites()' (did you forget the '()' ?)
satCheck=(abs(gps.satellites.value));
~~~~^
/Applications/Arduino.app/Contents/Java/hardware/arduino/avr/cores/arduino/Arduino.h:94:24: note: in definition of macro 'abs'
#define abs(x) ((x)>0?(x):-(x))
^
flight_logger:60:21: error: invalid use of member function 'short unsigned int TinyGPS::satellites()' (did you forget the '()' ?)
satCheck=(abs(gps.satellites.value));
~~~~^
/Applications/Arduino.app/Contents/Java/hardware/arduino/avr/cores/arduino/Arduino.h:94:29: note: in definition of macro 'abs'
#define abs(x) ((x)>0?(x):-(x))
^
flight_logger:60:21: error: invalid use of member function 'short unsigned int TinyGPS::satellites()' (did you forget the '()' ?)
satCheck=(abs(gps.satellites.value));
~~~~^
/Applications/Arduino.app/Contents/Java/hardware/arduino/avr/cores/arduino/Arduino.h:94:29: note: in definition of macro 'abs'
#define abs(x) ((x)>0?(x):-(x))
^
flight_logger:69:21: error: invalid use of member function 'long unsigned int TinyGPS::speed()' (did you forget the '()' ?)
speedCheck = (gps.speed.kmph());
~~~~^~~~~
flight_logger:69:21: error: invalid use of member function 'long unsigned int TinyGPS::speed()' (did you forget the '()' ?)
flight_logger:87:17: error: 'satellites' was not declared in this scope
display.print(satellites());
^~~~~~~~~~
/Users/Taran/Documents/Arduino/flight_logger/flight_logger.ino:87:17: note: suggested alternative: 'atexit'
display.print(satellites());
^~~~~~~~~~
atexit
flight_logger:89:41: error: invalid use of non-static member function 'void TinyGPS::get_datetime(long unsigned int*, long unsigned int*, long unsigned int*)'
String Temps = String(gps.get_datetime);
^
In file included from /Users/Taran/Documents/Arduino/flight_logger/flight_logger.ino:4:0:
/Users/Taran/Documents/Arduino/libraries/TinyGPS/src/TinyGPS.h:65:8: note: declared here
void get_datetime(unsigned long *date, unsigned long *time, unsigned long *age = 0);
^~~~~~~~~~~~
flight_logger:93:46: error: invalid use of member function 'long unsigned int TinyGPS::speed()' (did you forget the '()' ?)
data.println(gps.get_datetime, +String(gps.speed.kmph), +String(gps.altitude);
~~~~^~~~~
flight_logger:93:46: error: invalid use of member function 'long unsigned int TinyGPS::speed()' (did you forget the '()' ?)
flight_logger:93:79: error: invalid use of non-static member function 'long int TinyGPS::altitude()'
data.println(gps.get_datetime, +String(gps.speed.kmph), +String(gps.altitude);
^
In file included from /Users/Taran/Documents/Arduino/flight_logger/flight_logger.ino:4:0:
/Users/Taran/Documents/Arduino/libraries/TinyGPS/src/TinyGPS.h:68:15: note: declared here
inline long altitude() { return _altitude; }
^~~~~~~~
Multiple libraries were found for "Adafruit_SSD1306.h"
Used: /Users/Taran/Documents/Arduino/libraries/Adafruit_SSD1306
Not used: /Users/Taran/Documents/Arduino/libraries/Adafruit_SSD1306_Wemos_Mini_OLED
exit status 1
invalid use of member function 'short unsigned int TinyGPS::satellites()' (did you forget the '()' ?)
This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.
#include <SPI.h>
#include <Wire.h>
#include <TinyGPS.h>
#include <SoftwareSerial.h>
#include <SD.h>
#include <Adafruit_SSD1306.h>
// --------------------------------------------------------------------------initialising the display------------------------------------------------------------------------------------------------------------------------------------------------------
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define display_RESET -1 // since sharing reset pin with Arduino
#define SCREEN_ADDRESS 0x3C
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, display_RESET);
const int cs_sd = 2;
static const int RX = 3, TX = 4;
static const uint32_t gps_baud = 9600; // might need to change later on depending on sensitivity and speed requirements.
TinyGPS gps;
SoftwareSerial ss(RX, TX);
int speedMax = 0, speedCheck = 0;
int heightMax = 0, heightCheck = 0;
int satMax = 0, satCheck = 0;
void setup() {
Serial.begin(9600);
// SSD1306_SWITCHCAPVCC = generate display voltage from 3.3V internally
if (!display.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS))
Serial.println(F("SSD1306 allocation failed"));
for (;;); // Don't proceed, loop forever
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(15, 40);
display.write("VP-DK Avionics");
display.write("Flight Logger ver1.0");
delay(2000);
display.clearDisplay();
Wire.begin();
ss.begin(gps_baud);
if (!SD.begin(cs_sd));
display.clearDisplay();
display.write("Default Card.");
delay(500);
display.clearDisplay();
File data = SD.open("Flight Logger.txt", FILE_WRITE);
data.println(" "); data.println("Data acquisition started");
data.close();
}
void loop() {
satCheck=(abs(gps.satellites.value));
display.print("Max Speed: ");
display.print("Max Height: ");
display.println(" ");
display.println(" ");
display.println(" ");
display.println(" ");
speedCheck = (gps.speed.kmph());
if (speedCheck > speedMax) {
speedMax = speedCheck;
}
display.setCursor(10, 80); // might have to change later
display.print(speedMax);
heightCheck = (gps.f_altitude());
if (heightCheck > heightMax) {
heightMax = heightCheck;
}
display.setCursor(50, 80); // might have to change later
display.print(heightMax);
display.setCursor(100, 80);
display.print(satellites());
String Temps = String(gps.get_datetime);
File data = SD.open("Flight Logger.txt", FILE_WRITE);
data.println(gps.get_datetime, +String(gps.speed.kmph), +String(gps.altitude);
}
There is so much wrong with your use of the TinyGPS functions that it is difficult to know where to start
For instance in your code you have
speedCheck = (gps.speed.kmph());
when it should be
speedCheck = (gps.f_speed_kmph());
I suggest that you compare your use of the functions with how they are used in the TinyGPS examples which is where I found the above syntax for the speed function
I made those changes as well, looked at the keywords and made the required adjustments, but there is till an error. messages and code below.
my apologies for troubling you so much.
Arduino: 1.8.13 (Mac OS X), Board: "Arduino Nano, ATmega328P"
In file included from sketch/flight_logger.ino.cpp:1:0:
/Users/Taran/Documents/Arduino/flight_logger/flight_logger.ino: In function 'void loop()':
flight_logger:65:21: error: invalid use of member function 'short unsigned int TinyGPS::satellites()' (did you forget the '()' ?)
satCheck=(abs(gps.satellites.value));
~~~~^
/Applications/Arduino.app/Contents/Java/hardware/arduino/avr/cores/arduino/Arduino.h:94:18: note: in definition of macro 'abs'
#define abs(x) ((x)>0?(x):-(x))
^
flight_logger:65:21: error: invalid use of member function 'short unsigned int TinyGPS::satellites()' (did you forget the '()' ?)
satCheck=(abs(gps.satellites.value));
~~~~^
/Applications/Arduino.app/Contents/Java/hardware/arduino/avr/cores/arduino/Arduino.h:94:18: note: in definition of macro 'abs'
#define abs(x) ((x)>0?(x):-(x))
^
flight_logger:65:21: error: invalid use of member function 'short unsigned int TinyGPS::satellites()' (did you forget the '()' ?)
satCheck=(abs(gps.satellites.value));
~~~~^
/Applications/Arduino.app/Contents/Java/hardware/arduino/avr/cores/arduino/Arduino.h:94:24: note: in definition of macro 'abs'
#define abs(x) ((x)>0?(x):-(x))
^
flight_logger:65:21: error: invalid use of member function 'short unsigned int TinyGPS::satellites()' (did you forget the '()' ?)
satCheck=(abs(gps.satellites.value));
~~~~^
/Applications/Arduino.app/Contents/Java/hardware/arduino/avr/cores/arduino/Arduino.h:94:24: note: in definition of macro 'abs'
#define abs(x) ((x)>0?(x):-(x))
^
flight_logger:65:21: error: invalid use of member function 'short unsigned int TinyGPS::satellites()' (did you forget the '()' ?)
satCheck=(abs(gps.satellites.value));
~~~~^
/Applications/Arduino.app/Contents/Java/hardware/arduino/avr/cores/arduino/Arduino.h:94:29: note: in definition of macro 'abs'
#define abs(x) ((x)>0?(x):-(x))
^
flight_logger:65:21: error: invalid use of member function 'short unsigned int TinyGPS::satellites()' (did you forget the '()' ?)
satCheck=(abs(gps.satellites.value));
~~~~^
/Applications/Arduino.app/Contents/Java/hardware/arduino/avr/cores/arduino/Arduino.h:94:29: note: in definition of macro 'abs'
#define abs(x) ((x)>0?(x):-(x))
^
flight_logger:91:17: error: 'satellites' was not declared in this scope
display.print(satellites);
^~~~~~~~~~
/Users/Taran/Documents/Arduino/flight_logger/flight_logger.ino:91:17: note: suggested alternative: 'atexit'
display.print(satellites);
^~~~~~~~~~
atexit
flight_logger:93:41: error: invalid use of non-static member function 'void TinyGPS::get_datetime(long unsigned int*, long unsigned int*, long unsigned int*)'
String Temps = String(gps.get_datetime);
^
In file included from /Users/Taran/Documents/Arduino/flight_logger/flight_logger.ino:4:0:
/Users/Taran/Documents/Arduino/libraries/TinyGPS/src/TinyGPS.h:65:8: note: declared here
void get_datetime(unsigned long *date, unsigned long *time, unsigned long *age = 0);
^~~~~~~~~~~~
flight_logger:97:58: error: invalid use of non-static member function 'float TinyGPS::f_speed_kmph()'
data.println(gps.get_datetime, +String(gps.f_speed_kmph), +String(gps.f_altitude);
^
In file included from /Users/Taran/Documents/Arduino/flight_logger/flight_logger.ino:4:0:
/Users/Taran/Documents/Arduino/libraries/TinyGPS/src/TinyGPS.h:90:9: note: declared here
float f_speed_kmph();
^~~~~~~~~~~~
flight_logger:97:83: error: invalid use of non-static member function 'float TinyGPS::f_altitude()'
data.println(gps.get_datetime, +String(gps.f_speed_kmph), +String(gps.f_altitude);
^
In file included from /Users/Taran/Documents/Arduino/flight_logger/flight_logger.ino:4:0:
/Users/Taran/Documents/Arduino/libraries/TinyGPS/src/TinyGPS.h:85:9: note: declared here
float f_altitude();
^~~~~~~~~~
Multiple libraries were found for "Adafruit_SSD1306.h"
Used: /Users/Taran/Documents/Arduino/libraries/Adafruit_SSD1306
Not used: /Users/Taran/Documents/Arduino/libraries/Adafruit_SSD1306_Wemos_Mini_OLED
exit status 1
invalid use of member function 'short unsigned int TinyGPS::satellites()' (did you forget the '()' ?)
This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.
#include <SPI.h>
#include <Wire.h>
#include <TinyGPS.h>
#include <SoftwareSerial.h>
#include <SD.h>
#include <Adafruit_SSD1306.h>
// --------------------------------------------------------------------------initialising the display------------------------------------------------------------------------------------------------------------------------------------------------------
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define display_RESET -1 // since sharing reset pin with Arduino
#define SCREEN_ADDRESS 0x3C
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, display_RESET);
const int cs_sd = 2;
static const int RX = 3, TX = 4;
static const uint32_t gps_baud = 9600; // might need to change later on depending on sensitivity and speed requirements.
TinyGPS gps;
SoftwareSerial ss(RX, TX);
int speedMax = 0, speedCheck = 0;
int heightMax = 0, heightCheck = 0;
int satMax = 0, satCheck = 0;
void setup() {
Serial.begin(9600);
// SSD1306_SWITCHCAPVCC = generate display voltage from 3.3V internally
if (!display.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS))
Serial.println(F("SSD1306 allocation failed"));
for (;;); // Don't proceed, loop forever
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(15, 40);
display.write("VP-DK Avionics");
display.write("Flight Logger ver1.0");
delay(2000);
display.clearDisplay();
Wire.begin();
ss.begin(gps_baud);
if (!SD.begin(cs_sd)); {
display.clearDisplay();
display.write("Default Card.");
delay(500);
display.clearDisplay();
}
File data = SD.open("Flight Logger.txt", FILE_WRITE);
data.println(" "); data.println("Data acquisition started");
data.close();
}
void loop() {
satCheck=(abs(gps.satellites.value));
display.print("Max Speed: ");
display.print("Max Height: ");
display.println(" ");
display.println(" ");
display.println(" ");
display.println(" ");
speedCheck = (gps.f_speed_kmph());
if (speedCheck > speedMax) {
speedMax = speedCheck;
}
display.setCursor(10, 80); // might have to change later
display.print(speedMax);
heightCheck = (gps.f_altitude());
if (heightCheck > heightMax) {
heightMax = heightCheck;
}
display.setCursor(50, 80); // might have to change later
display.print(heightMax);
display.setCursor(100, 80);
display.print(satellites);
String Temps = String(gps.get_datetime);
File data = SD.open("Flight Logger.txt", FILE_WRITE);
data.println(gps.get_datetime, +String(gps.f_speed_kmph), +String(gps.f_altitude);
}