в Mbed, Квалифицированное имя не допускается в "main.cpp", как исправить мой код? - PullRequest
0 голосов
/ 17 октября 2019

Я изучаю датчик газа IAQ_core, используя mbed (плата mbed LPX LPC1768)

, но мне не удалось ..

Я хочу видеть данные на серийном мониторе с газомдатчик.

, пожалуйста, помогите мне

Я пытался другой код ..

AQ_Core::iAQ_Core_status_t  
iAQ_Core::iAQ_Core_GetNewReading(iAQ_Core_data_t* myData)  (error 
//Qualified name is not allowed in "main.cpp")


iAQ_Core::iAQ_Core_status_t iAQ_Core_GetNewReading(iAQ_Core_data_t* 
myData)
(Error: Identifier "iAQ_Core_data_t" is undefined in "main.cpp", )

Я пытался с помощью ";"в конце кода, но получил ту же ошибку.

Я попытался удалить int main (), но получил ту же ошибку.

///////////////////////////////head(iAQ_Core.h)///////////////////////////////////////
#include "mbed.h"

class iAQ_Core
{
public:
    typedef enum {
        IAQ_Core_ADDRess = 0x5A      //address         

    }IAQ_Core_address_t;

    typedef enum {                          //status 
        IAQ_Core_STATUS_OK = 0x00,
        IAQ_Core_STATUS_RUNIN = 0x10,
        IAQ_Core_STATUS_BUSY = 0x01,
        IAQ_Core_STATUS_ERROR = 0x80
    }iAQ_Core_status_flag_t;

    typedef struct {                   ////
        uint16_t pred;                 //Prediction=byte0 *2^8 + byte1 
        iAQ_Core_status_flag_t status;
        uint32_t resistance;           //Resistance = byte4*2^16 + byte5*2^8 + byte6
        uint16_t Tvoc;                 //Tvoc eq = byte7*2^8 + byte8
    }iAQ_Core_data_t;

    typedef enum {
        IAQ_Core_SUCCESS = 0,
        IAQ_Core_FAILURE = 1,
        I2C_SUCCESS = 0
    }iAQ_Core_status_t;


    // iAQ_Core ( PinName sda, PinName scl, uint32_t addr );  //


    iAQ_Core_status_t iAQ_Core_GetNewReading(iAQ_Core_data_t* myData);     //
//}iAQ_Core_I2C_data_t;

private:
    I2C i2c;  //i2c
    uint32_t iAQ_Core_Addr;  //

};
////////////////////////////////////////////////////////////////////////////////////////////////

////////////////////////////////main.cpp////////////////////////////////////////
#include "iAQ_Core.h"


Serial pc(USBTX, USBRX);
I2C iAQ_Core(p28, p27);

int main() {
    pc.baud(115200);
    int iAQ_Core_Addr = 0x5A;



    iAQ_Core::iAQ_Core_status_t  
    iAQ_Core::iAQ_Core_GetNewReading(iAQ_Core_data_t* myData)//(error 
    word)Error: Qualified name is not allowed in "main.cpp"

    {
        char     cmd[9] = { 0 };
        uint32_t aux = 0;


        /* Get the data */
        aux = i2c.read(iAQ_Core_Addr, &cmd[0], sizeof(cmd) /        
                       sizeof(cmd[0]));


        /* Update the parameters    */
        myData->pred = ((cmd[0] << 8) + cmd[1]);                           
        myData->status = (iAQ_Core_status_flag_t)cmd[2];
        myData->resistance = ((cmd[4] << 16) + (cmd[5] << 8) + cmd[6]);        
        myData->Tvoc = ((cmd[7] << 8) + cmd[8]);                           



    //check
        if (aux == I2C_SUCCESS) {
            printf("SUCCESS");
            return   IAQ_Core_SUCCESS;
        }
        else {
            printf("FAILURE");
            return   IAQ_Core_FAILURE;
             }
        }
    }

Ошибка: квалифицированное имя не разрешено в "main.cpp»,

...