Franz Pucher / HIM0Board

You are viewing an older revision! See the latest version

Klassendesign LM75B

Inhalt

Aufgabe Implementieren Sie zum UML-Diagramm bzw. LM75B.h Header Datei die Klasse und testen Sie in einem main() Ihre Implementierung.

Die folgende Überführung aus der strukturierten Programmierung in C in ein Klassendesign der objektorientierten Programmierung in C++ wurde mit dem Programm StarUML vorgenommen, wobei zwei Unzulänglichkeiten aufgetreten sind: void vor dem Konstruktor und der Aufruf des Konstruktors in der CPP-datei der Klasse I2C wurd nicht richtig abgebildet (LM75B::LM75B(PinName sda, PinName scl) : i2c(sda, scl)).

Die folgende Abbildung zeigt das Klassendiagramm in UML (Unified Modeling Language), wobei die I2C Klasse nur der Vollständigkeit halber hinzugefügt wurde, da sie in der MBED-Bibliothek enthalten ist:

/media/uploads/fpucher/lm75b_uml.jpg

//
//
//  Generated by StarUML(tm) C++ Add-In
//
//  @ Project : Untitled
//  @ File Name : LM75B.h
//  @ Date : 11.03.2016
//  @ Author : 
//
//


#if !defined(_LM75B_H)
#define _LM75B_H


class LM75B {
public:
	void LM75B();
	void LM75B(PinName sda, PinName scl);
	float rtc_read();
protected:
	I2C i2c;
};

#endif  //_LM75B_H

Adaptierte Header-Datei

#ifndef LM75B_H
#define LM75B_H

//  LM75B I2C Adresse
#define    LM75B_ADDR 0x90

//  LM75B Register
#define    LM75B_Conf        0x01
#define    LM75B_Temp        0x00

class LM75B
{
public:
  LM75B(PinName sda, PinName scl);  // I2C Pins übergeben p28, p27
  ~LM75B();
  float read(); 
  
private:
  I2C i2c;
};
#endif

Aus Star-UML generierte CPP-Datei der LM75B Klasse:

//
//
//  Generated by StarUML(tm) C++ Add-In
//
//  @ Project : Untitled
//  @ File Name : LM75B.cpp
//  @ Date : 11.03.2016
//  @ Author : 
//
//


#include "LM75B.h"

void LM75B::LM75B() {

}

void LM75B::LM75B(PinName sda, PinName scl) {

}

float LM75B::read() {

}


All wikipages