Jatin Sharma / Mbed 2 deprecated RaheeNew

Dependencies:   mbed

Dependents:   RaheeNew

Fork of Adafruit9-DOf by Bruno Manganelli

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers Serial_base.h Source File

Serial_base.h

00001 #ifndef SERIAL_BASE_H
00002 #define SERIAL_BASE_H
00003 
00004 #define _MBED_
00005 
00006 class Serial_base
00007 {
00008  public:
00009     
00010     virtual void print(const char* data)   = 0;
00011     virtual void print(int data)           = 0;
00012     virtual void print(double data)        = 0;
00013     
00014     virtual void println(const char* data) = 0;
00015     virtual void println(int data)         = 0;
00016     virtual void println(double data)      = 0;
00017     
00018     virtual void setPrecision(int prec)    = 0;
00019 };
00020 
00021 extern Serial_base* s_com;
00022 
00023 
00024 #ifdef _MBED_
00025 #include <iostream>
00026 #include <iomanip>
00027 
00028 class Serial_MBED: public Serial_base
00029 {
00030  public:
00031     virtual void print(const char* data){
00032         _print(data);
00033     }
00034     virtual void print(int data){
00035         _print(data);
00036     }
00037     virtual void print(double data){
00038         _print(data);
00039     }
00040     
00041     virtual void println(const char* data){
00042         _println(data);
00043     }
00044     virtual void println(int data){
00045         _println(data);
00046     }
00047     virtual void println(double data){
00048         _println(data);
00049     }
00050     virtual void setPrecision(int p){
00051         std::cout.precision(p);
00052         //std::cout.setf( std::ios::fixed, std:: ios::floatfield );
00053     }
00054  private:
00055     template<typename T>
00056     void _print(T data) {
00057         std::cout<<data<<std::flush;
00058     }
00059     template<typename T>
00060     void _println(T data){
00061         std::cout<<data<<std::endl<<std::flush;
00062     }
00063         
00064 };
00065 
00066 
00067 #endif //_MBED_
00068 
00069 #endif