Identifier undefined writing library

10 Oct 2010

Most of the code was taked from a working example I wrote. I'm just trying to turn it into a library. Thanks for the help.

Error:

Identifier "_dcss500" in undefined (E20)     dcss500.cpp     Line: 10, Col: 4

Identifier "_dcss500" in undefined (E20)     dcss500.cpp     Line: 21, Col: 4

Main.cpp - for testing

 

#include "mbed.h"
#include "dcss500.h"

Serial pc(USBTX, USBRX); // tx, rx
DCSS500 sensor(p9, p10);

int main() {  
    while(1) {
        pc.printf("%3d",sensor.readTempF());
//        pc.printf("%3d",readHumid());
        wait (1);
    }
}

dcss500.h

 

 

#ifndef MBED_DCSS500_H
#define MBED_DCSS500_H

#include "mbed.h"

namespace mbed {

class DCSS500 {
public:
    DCSS500(PinName tx, PinName rx);
    int readTempF();
    int readHumid();
private:
    Serial _dcss500;
};
}

#endif

dcss500.cpp

 

 

#include "dcss500.h"
#include "mbed.h"

using namespace mbed;

DCSS500::DCSS500(PinName tx, PinName rx)
        : _dcss500(tx,rx) {}
        
int readTempF() {
    _dcss500.printf("$sure temp -f");
    _dcss500.putc(0x0d);
    _dcss500.putc(0x0a);
    int temp;
    char r[10];
    int n = _dcss500.scanf("%3d%10s", &temp, &r); //First 3 Chars are temperature. Last 10 are "Farenheit"
//    pc.printf("%3d", temp);
    return(temp);
}

int readHumid() {
    _dcss500.printf("$sure humidity");
    _dcss500.putc(0x0d);
    _dcss500.putc(0x0a);
    int humidity;
    char r[6];
    int n = _dcss500.scanf("%3d%3s", &humidity, &r); //First 3 are humidity in percentage. Last 3 are "%RH"
//    pc.printf("Humidity: %s\n", humidity);
    return(humidity);
}

 

 

10 Oct 2010

I found my error. The functions I moved over needed to be defined with DCSS500:: before the function name.

10 Oct 2010

int readTempF() -> int DCSS500::readTempF()

int readHumid() -> int DCSS500::readHumid()