Werte auslesen und in Winkel umrechnen
Dependencies: mbed
SvProtocol.h@0:d1960beb98fe, 2015-09-30 (annotated)
- Committer:
- Heidl
- Date:
- Wed Sep 30 16:08:36 2015 +0000
- Revision:
- 0:d1960beb98fe
Werte von Beschleunigungssensor auslesen
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Heidl | 0:d1960beb98fe | 1 | |
Heidl | 0:d1960beb98fe | 2 | #ifndef SvProtocol_h |
Heidl | 0:d1960beb98fe | 3 | #define SvProtocol_h |
Heidl | 0:d1960beb98fe | 4 | |
Heidl | 0:d1960beb98fe | 5 | #include "stdint.h" |
Heidl | 0:d1960beb98fe | 6 | |
Heidl | 0:d1960beb98fe | 7 | namespace mbed { |
Heidl | 0:d1960beb98fe | 8 | |
Heidl | 0:d1960beb98fe | 9 | class IStreamHL { |
Heidl | 0:d1960beb98fe | 10 | public: |
Heidl | 0:d1960beb98fe | 11 | virtual void PutChar(int aCh) = 0; |
Heidl | 0:d1960beb98fe | 12 | virtual int GetChar() = 0; |
Heidl | 0:d1960beb98fe | 13 | virtual void Write(void* aData, uint32_t aLenBytes) = 0; |
Heidl | 0:d1960beb98fe | 14 | virtual void Read(void* aData, uint32_t aLenBytes) = 0; |
Heidl | 0:d1960beb98fe | 15 | }; |
Heidl | 0:d1960beb98fe | 16 | |
Heidl | 0:d1960beb98fe | 17 | class SvProtocol { |
Heidl | 0:d1960beb98fe | 18 | public: |
Heidl | 0:d1960beb98fe | 19 | IStreamHL* _st; |
Heidl | 0:d1960beb98fe | 20 | uint8_t acqON; |
Heidl | 0:d1960beb98fe | 21 | uint8_t svMessageON; |
Heidl | 0:d1960beb98fe | 22 | public: |
Heidl | 0:d1960beb98fe | 23 | SvProtocol(IStreamHL* aStrm) { |
Heidl | 0:d1960beb98fe | 24 | acqON=0; svMessageON=1; |
Heidl | 0:d1960beb98fe | 25 | _st=aStrm; |
Heidl | 0:d1960beb98fe | 26 | } |
Heidl | 0:d1960beb98fe | 27 | |
Heidl | 0:d1960beb98fe | 28 | // Check's first for acqOn/Off Command |
Heidl | 0:d1960beb98fe | 29 | // ret 0 if acqOn/Off was handled in GetCommand |
Heidl | 0:d1960beb98fe | 30 | int GetCommand(); |
Heidl | 0:d1960beb98fe | 31 | |
Heidl | 0:d1960beb98fe | 32 | void Puts(char* aCStr); // Terminate with 0 |
Heidl | 0:d1960beb98fe | 33 | |
Heidl | 0:d1960beb98fe | 34 | // \r\n is appended automatically |
Heidl | 0:d1960beb98fe | 35 | void Printf(const char* format, ...); |
Heidl | 0:d1960beb98fe | 36 | |
Heidl | 0:d1960beb98fe | 37 | void SvPrintf(const char *format, ...); |
Heidl | 0:d1960beb98fe | 38 | |
Heidl | 0:d1960beb98fe | 39 | void WriteSV(int aId, char* aData) { |
Heidl | 0:d1960beb98fe | 40 | if( !svMessageON ) return; |
Heidl | 0:d1960beb98fe | 41 | _st->PutChar(aId); Puts(aData); |
Heidl | 0:d1960beb98fe | 42 | } |
Heidl | 0:d1960beb98fe | 43 | |
Heidl | 0:d1960beb98fe | 44 | void SvMessage(char* aTxt) { |
Heidl | 0:d1960beb98fe | 45 | if( !svMessageON ) return; |
Heidl | 0:d1960beb98fe | 46 | _st->PutChar(10); Puts(aTxt); |
Heidl | 0:d1960beb98fe | 47 | } |
Heidl | 0:d1960beb98fe | 48 | |
Heidl | 0:d1960beb98fe | 49 | void VectHeader(int aId, int aNVals) |
Heidl | 0:d1960beb98fe | 50 | { _st->PutChar(aId); _st->PutChar(aNVals); } |
Heidl | 0:d1960beb98fe | 51 | |
Heidl | 0:d1960beb98fe | 52 | void WriteSvI16(int aId, int16_t aData) |
Heidl | 0:d1960beb98fe | 53 | { _st->PutChar(aId+10); _st->Write(&aData,2); } |
Heidl | 0:d1960beb98fe | 54 | |
Heidl | 0:d1960beb98fe | 55 | void WriteSvI32(int aId, int32_t aData) |
Heidl | 0:d1960beb98fe | 56 | { _st->PutChar(aId); _st->Write(&aData,4); } |
Heidl | 0:d1960beb98fe | 57 | |
Heidl | 0:d1960beb98fe | 58 | void WriteSV(int aId, float aData) |
Heidl | 0:d1960beb98fe | 59 | { _st->PutChar(aId+20); _st->Write(&aData,4); } |
Heidl | 0:d1960beb98fe | 60 | |
Heidl | 0:d1960beb98fe | 61 | // float in 3.13 Format |
Heidl | 0:d1960beb98fe | 62 | void WriteSV3p13(int aId, float aData); |
Heidl | 0:d1960beb98fe | 63 | |
Heidl | 0:d1960beb98fe | 64 | int16_t ReadI16() |
Heidl | 0:d1960beb98fe | 65 | { int16_t ret; _st->Read(&ret,2); return ret; } |
Heidl | 0:d1960beb98fe | 66 | |
Heidl | 0:d1960beb98fe | 67 | int32_t ReadI32() |
Heidl | 0:d1960beb98fe | 68 | { int32_t ret; _st->Read(&ret,4); return ret; } |
Heidl | 0:d1960beb98fe | 69 | |
Heidl | 0:d1960beb98fe | 70 | float ReadF() |
Heidl | 0:d1960beb98fe | 71 | { float ret; _st->Read(&ret,4); return ret; } |
Heidl | 0:d1960beb98fe | 72 | }; |
Heidl | 0:d1960beb98fe | 73 | |
Heidl | 0:d1960beb98fe | 74 | } // namespace mbed |
Heidl | 0:d1960beb98fe | 75 | |
Heidl | 0:d1960beb98fe | 76 | // SV-Id Ranges and DataTypes for SvVis3 Visualisation-Tool |
Heidl | 0:d1960beb98fe | 77 | //---------------------------------------------------------- |
Heidl | 0:d1960beb98fe | 78 | // Id = 10 : string |
Heidl | 0:d1960beb98fe | 79 | // Id = 1 .. 9 : format 3.13 2 Bytes |
Heidl | 0:d1960beb98fe | 80 | // Id = 11 .. 20 : short 2 Bytes |
Heidl | 0:d1960beb98fe | 81 | // Id = 21 .. 30 : float 4 Bytes |
Heidl | 0:d1960beb98fe | 82 | |
Heidl | 0:d1960beb98fe | 83 | #endif |