I'm pretty new to C, being avid at python.
Currently making a frame loss recorder for Futaba SBUS systems, and I'm not sure how to debug these errors. For some reason my older account got deleted so I can't access any of my earlier posts.
code:
#include <Wire.h>
#include <SD.h>
#include <SPI.h>
#include "Adafruit_SSD1306.h"
#include "Adafruit_GFX.h"
#include "sbus.h"
#include <Embedded_Template_Library.h>
int holdCount = 0;
int frameLossCount = 0;
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 32
#define OLED_RESET -1
#define SCREEN_ADDRESS 0X3C
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
SbusRx sbus_rx(&Serial);
SbusTx sbus_tx(&Serial);
void setup() {
Serial.begin(115200);
while (!Serial) {}
sbus_rx.Begin();
sbus_tx.Begin(); // starting sbus communication
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(10, 18);
display.print("DKVP Systems");
display.print("Frame Loss Counter");
}
void loop() {
if (sbus_rx.Read()) {
for (int i = 0; i < sbus_rx.rx_channels().size(); i++) {
Serial.print(sbus_rx.rx_channels()[i]);
Serial.print("\t");
}
while (sbus_rx.lost_frame(true)) {
frameLossCount = frameLossCount + 1;
}
while (sbus_rx.failsafe(true)) {
holdCount = holdCount + 1;
}
if (holdCount >= 1) {
display.print("Holds: ", holdCount);
else {
display.print("Holds: 0");
}
}
errors:
Arduino: 1.8.13 (Mac OS X), Board: "Arduino Pro or Pro Mini, ATmega328P (5V, 16 MHz)"
/Users/Taran/Documents/Arduino/sketch_jul03b/sketch_jul03b.ino: In function 'void loop()':
sketch_jul03b:55:37: error: no matching function for call to 'SbusRx::lost_frame(bool)'
while (sbus_rx.lost_frame(true)) {
^
In file included from /Users/Taran/Documents/Arduino/sketch_jul03b/sketch_jul03b.ino:6:0:
/Users/Taran/Documents/Arduino/libraries/sbus_arduino/src/sbus.h:50:15: note: candidate: bool SbusRx::lost_frame() const
inline bool lost_frame() const {return lost_frame_;}
^~~~~~~~~~
/Users/Taran/Documents/Arduino/libraries/sbus_arduino/src/sbus.h:50:15: note: candidate expects 0 arguments, 1 provided
sketch_jul03b:60:33: error: no matching function for call to 'SbusRx::failsafe(bool)'
while (sbus_rx.failsafe(true)) {
^
Multiple libraries were found for "Adafruit_SSD1306.h"
In file included from /Users/Taran/Documents/Arduino/sketch_jul03b/sketch_jul03b.ino:6:0:
Used: /Users/Taran/Documents/Arduino/libraries/Adafruit_SSD1306
Not used: /Users/Taran/Documents/Arduino/libraries/Adafruit_SSD1306_Wemos_Mini_OLED
/Users/Taran/Documents/Arduino/libraries/sbus_arduino/src/sbus.h:49:15: note: candidate: bool SbusRx::failsafe() const
inline bool failsafe() const {return failsafe_;}
^~~~~~~~
/Users/Taran/Documents/Arduino/libraries/sbus_arduino/src/sbus.h:49:15: note: candidate expects 0 arguments, 1 provided
sketch_jul03b:65:41: error: no matching function for call to 'print(const char [8], int&)'
display.print("Holds: ", holdCount);
^
In file included from /Applications/Arduino.app/Contents/Java/hardware/arduino/avr/cores/arduino/Stream.h:26:0,
from /Applications/Arduino.app/Contents/Java/hardware/arduino/avr/cores/arduino/HardwareSerial.h:29,
from /Applications/Arduino.app/Contents/Java/hardware/arduino/avr/cores/arduino/Arduino.h:233,
from sketch/sketch_jul03b.ino.cpp:1:
/Applications/Arduino.app/Contents/Java/hardware/arduino/avr/cores/arduino/Print.h:69:12: note: candidate: size_t Print::print(unsigned char, int) <near match>
size_t print(unsigned char, int = DEC);
^~~~~
/Applications/Arduino.app/Contents/Java/hardware/arduino/avr/cores/arduino/Print.h:69:12: note: conversion of argument 1 would be ill-formed:
/Applications/Arduino.app/Contents/Java/hardware/arduino/avr/cores/arduino/Print.h:70:12: note: candidate: size_t Print::print(int, int) <near match>
size_t print(int, int = DEC);
^~~~~
/Applications/Arduino.app/Contents/Java/hardware/arduino/avr/cores/arduino/Print.h:70:12: note: conversion of argument 1 would be ill-formed:
/Applications/Arduino.app/Contents/Java/hardware/arduino/avr/cores/arduino/Print.h:71:12: note: candidate: size_t Print::print(unsigned int, int) <near match>
size_t print(unsigned int, int = DEC);
^~~~~
/Applications/Arduino.app/Contents/Java/hardware/arduino/avr/cores/arduino/Print.h:71:12: note: conversion of argument 1 would be ill-formed:
/Applications/Arduino.app/Contents/Java/hardware/arduino/avr/cores/arduino/Print.h:72:12: note: candidate: size_t Print::print(long int, int) <near match>
size_t print(long, int = DEC);
^~~~~
/Applications/Arduino.app/Contents/Java/hardware/arduino/avr/cores/arduino/Print.h:72:12: note: conversion of argument 1 would be ill-formed:
/Applications/Arduino.app/Contents/Java/hardware/arduino/avr/cores/arduino/Print.h:73:12: note: candidate: size_t Print::print(long unsigned int, int) <near match>
size_t print(unsigned long, int = DEC);
^~~~~
/Applications/Arduino.app/Contents/Java/hardware/arduino/avr/cores/arduino/Print.h:73:12: note: conversion of argument 1 would be ill-formed:
sketch_jul03b:66:7: error: expected '}' before 'else'
else {
^~~~
sketch_jul03b:71:5: error: expected '}' at end of input
}
^
exit status 1
no matching function for call to 'SbusRx::lost_frame(bool)'
This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.