Hallo,
wie so fiele hier, versuche ich gerade meine Code aufzuräumen. Ich habe mich dazu mit dem erzeugen von Libs befast. Ich geb zu, das meine Kenntnisse in Sachen C++ nicht so doll sind. Aber mit genug Beispielen sollte das doch zu schaffen sein. Also habe ich hir
nachgelesen wie das geht. Google´s übersetzung ist seid einiger Zeit erheblich besser geworden. Sodas ich das ganze eigentlich verstanden habe.
Beim Compilieren allerdings kommt eine Fehlermeldung die ich nicht nachvollziehen kann.
C:\Users\Turgut\Documents\Arduino\BlueTooth_Core_Version_4\BlueTooth_Core_Version_4.ino: In function 'void loop()':
BlueTooth_Core_Version_4:136: error: request for member 'timerControll' in 'btc', which is of non-class type 'BTC()'
btc.timerControll() ;
^
exit status 1
request for member 'timerControll' in 'btc', which is of non-class type 'BTC()'
Ich benutze die IDE 1.8.5, die Dateien BTC.h und BTC.cpp sind im Editor geöffnet.
Was mache ich Falsch … oder habe ich etwas essemzielles übersehen?
MainCode wo die Funktion aufgerufen wird.
// Leider musste ich den Code wider raus nehmen da die Längenbeschränkung von 9000 zeichen
// zugeschlagen hat.
#define PIN_RECEIVE 11 // dieser Pin muss Interupt fähig sein
#define PIN_SEND 12
#define SerOnOff 0 // On/Off eingang für die Serielle ausgabe PC und Handy
#define SPEED_BLUETOOTH 57600 // diese geschwindigkeit muss im BlueThoot Modul eingestellt sein
#define SPEED_SERIAL 57600
#define StatusLED 13
byte SerDelay = 8 ; // Warte Zeit nach Serial.println() in SPln()
byte SerOn = 1 ; // Wenn sich die Com Schnitstelle gemeldet hat, Also ein Term angeschlossen ist
String s ;
unsigned long BlinkTimer ;
byte BlinkState ;
unsigned long OldMill ;
unsigned long Mill ;
#include <SoftwareSerial.h>
#include "BTC.h"
SoftwareSerial blueSerial(PIN_RECEIVE, PIN_SEND);
// Hir wird der Konstruktor für die BlueToothCore lib aufgerufen.
// Der name for der Klammer kann belibig sein. Er representiert die erzeugt
// Instance. Es könnte auch BTC Init(); sein. dann werden die Funktionen
// mit Init.Funktionsname(); aufgerufen. Dadurch lassen sich unterschiedliche
// Instancen mit den gleichen Codes erzeugen.
BTC btc();
void setup() {
// put your setup code here, to run once:
pinMode(StatusLED, OUTPUT) ;
digitalWrite(StatusLED, HIGH) ;
Serial.begin(SPEED_SERIAL);
blueSerial.begin(SPEED_BLUETOOTH);
while (!Serial) {
; // wait for serial port to connect. Needed for native USB port only
}
Serial.println(F("Reset"));
blueSerial.println(F("Reset"));
}
void loop() {
// -----------------------------------------------
// Hardware seitige aus und einschalten der Seriellen Ausgabe.
if (analogRead(SerOnOff) > 900) { // Schalter für die Serielle Ausgabe (A1)
if (BlinkTimer < Mill)
{
BlinkTimer = Mill + 200 ;
SerOn = 1;
if (BlinkState == 0)
{
BlinkState = 1 ;
}
else
{
BlinkState = 0 ;
}
digitalWrite(StatusLED, BlinkState) ;
}
}
else {
if (BlinkTimer < Mill)
{
BlinkTimer = Mill + 1000 ;
SerOn = 0;
if (BlinkState == 0)
{
BlinkState = 1 ;
}
else
{
BlinkState = 0 ;
}
digitalWrite(StatusLED, BlinkState) ;
}
}
Mill = millis() ;
if (OldMill > Mill)
{
s = F("OverLoad millis()") ;
SPln() ;
}
OldMill = Mill ;
btc.timerControll() ;
}
//----------------------------------------------------------------------
void SPln()
{
if ( SerOn == 1 ) {
Serial.println(s) ;
blueSerial.println(s);
delay(SerDelay);
}
}
//-----------------------------------------------------------
Die BTC.h
/*
BlueToothCore.h - Bibliothek für zurgriff auf HC-06 BlueTooth Modul.
Erstellt von Turgut Temucin aka TFT, 6. November 2017.
Publik Domain
*/
#ifndef BTC_h
#define BTC_h
#include "Arduino.h"
class BTC
{
public :
// hir werden die Variablen und Funktionen Deklariert die von ausserhalb der lib
// zugänglich sind.
BTC() ; // Der Konstrucktor
void timerControll() ; // Prüft den überlauf der millis() Funktion und Actualisiert diesen in _Mill
private :
// hir werden die Variablen und Funktionen Deklariert die nicht von ausserhalb der lib
// zugänglich sind.
unsigned long _OldMill ;
} ;
#endif
Die BTC.cpp
/*
BlueToothCore.cpp - Bibliothek für zurgriff auf HC-06 BlueTooth Modul.
Erstellt von Turgut Temucin aka TFT, 6. November 2017.
Publik Domain
*/
#include "Arduino.h"
#include "BTC.h"
//----------------------------------------------------------------------
// Der Konstrucktor, zum erstellen einer Instance, kann auch Installations Code enthalten
BTC::BTC()
{
pinMode(13, OUTPUT) ;
}
//----------------------------------------------------------------------
// Hir kommen dann die Funktionen hin
void BTC::timerControll()
{
delay(1000) ;
}