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 Klasse I2C wurd nicht richtig abgebildet.

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