ожидаемая ошибка без идентификатора при создании библиотеки в Arduino - PullRequest
0 голосов
/ 06 марта 2019

Я пытаюсь создать свою собственную библиотеку на Arduino, одновременно используя другую библиотеку.Но я получаю эту ошибку в строке 12 моего заголовочного файла:

ожидаемый неквалифицированный идентификатор перед символом ')'

Основной файл:

#include "firealarm.h" 
void setup() {
  firealarm.begin;
}

void loop() {
  firealarm.gas_values();
}

Заголовочный файл:

#include <MQ2.h>

#ifndef firealarm
#define firealarm

#if ARDUINO >= 100
#include "Arduino.h"
#endif

class firealarm {
  public:
    firealarm(); //this is where it says the error occurs
    void begin (int baudRate = 9600);
    gas_values()
  private:
    MQ2 mq2(A0);

    int lpg, co, smoke;

};
#endif

Файл Cpp:

#include "firealarm.h"

firealarm::firealarm() :
{
}
void firealarm::begin(int baudrate)
{
    Serial.begin(baudrate);
    Serial.println("Firealarm libary created successfully")
        mq2.begin;
}
void firealarm::gas_values()
{
    float *values = mq2.read(true);
    lpg = mq2.readLPG();
    co = mq2.readCO();
    smoke = mq2.readSmoke();
}

Я также планирую включить в него другую библиотеку.Но мне не удалось заставить его работать только с одним.

1 Ответ

0 голосов
/ 06 марта 2019

Среди прочих проблем вы #define firealarm находитесь в верхней части firealarm.h, что означает, что каждый раз, когда слово firealarm появляется позже в файле, оно будет полностью удалено. Итак, для компилятора ваш файл выглядит так:

class  {
    public:
        ();
// ..... more code

Это недопустимый C ++, поэтому компилятор выдает ошибку. Позже в файле появятся другие ошибки, например, объявление функции gas_values, которая не имеет возвращаемого типа и не имеет точки с запятой в конце строки.

Переименуйте ваш включаемый охранник (строки #ifdef и #define) в слово, которое вы не используете, например __firealarm_h_included, или замените их (и строку #endif) одной #pragma once

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...