1

現在、mbed エレクトロニクス プロジェクト用に独自のライブラリを作成する方法を学んでいます。これまでのところ、cfExtensions.cpp と cfExtensions.h ファイルの 2 つのファイルがあります。cfExtensions.h コンストラクターで変数を参照し、cfExtensions.cpp ファイル内でそれらの値を変更しました。ただし、私の mbed c++ コンパイラはスローします: identifier "phMin" is unidentified. 私のコードは次のとおりです。

ファイル: cfExtensions.h /* ファイル: cfExtensions.h

Header file for cfExtensions Library.
*/

#ifndef __cfExtns_H
#define __cfExtns_H

#include "mbed.h"

/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
//==================================
// Definitions
//==================================
#define CF_FILE_LOCATION  "local/settings.cf"     // File location local/settings.cf

/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
//==================================
// cfExtension Class
//==================================
class cfExtensions
{
public:
//---------------------------
// Function Prototypes
//---------------------------
        cfExtensions();                         // Constructor, Initialisation tasks

        void loadConfigFile();                  // Loads config file defined in CF_FILE_LOCATION
        void checkConfigForFirstStart();        // Check if MBED startup is the very first startup
        void getPhMaxValueFromConfigFile();     // Get PH Max value from config file
        void getPhMinValueFromConfigFile();     // Get PH Min value from config file
        void getKeyAndValue();


//---------------------------
// Variables
//---------------------------
        volatile bool pingTicked;

        bool linkedWithBaseStation;

        char *sbNameKey;
        char sbNameValue[BUFSIZ];

        char *sbFirstStartKey;
        char sbFirstStartValue[BUFSIZ];

        char *sbUseBaseStationKey;
        char sbUseBaseStationValue[BUFSIZ];

        char *sbPhMaxKey;
        char sbPhMaxValue[BUFSIZ];

        char *sbPhMinKey;
        char sbPhMinValue[BUFSIZ];

        float phMax;
        float phMin;


//---------------------------
// Devices
//--------------------------- 

};

#endif

ファイル: cfExtensions.cpp

//================================
// Get PH Min Value from CF
//================================
void getPhMinValueFromConfigFile() {    
    /*
     * Get a configuration value.
     * Then attach the sbNameValue to SensorData json
     */
    if (cfg.getValue(sbPhMinKey, &sbPhMinValue[0], sizeof(sbPhMinValue))) {
        phMin = atof(sbPhMinValue);
    }
} // End of getPhMinValueFromConfigFile
4

2 に答える 2

1

I think it should be void cfExtensions::getPhMinValueFromConfigFile() { } in your cfExtensions.cpp file.

于 2012-10-18T04:36:17.040 に答える
1

cpp ファイルで、関数の実装を次のように変更します。

void cfExtensions::getPhMinValueFromConfigFile() {
  // etc ....
}

ここで重要なのは、関数の前に cfExtensions:: を配置することです。

于 2012-10-18T04:38:41.483 に答える