michael hollegha
/
LineSensTest_B16
LineSensTest for Bertl16
Fork of B16Test4 by
SvProtocol.h@1:a2c68aba6d98, 2017-12-27 (annotated)
- Committer:
- hollegha3
- Date:
- Wed Dec 27 12:15:27 2017 +0000
- Revision:
- 1:a2c68aba6d98
V 1.0
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
hollegha3 | 1:a2c68aba6d98 | 1 | |
hollegha3 | 1:a2c68aba6d98 | 2 | #ifndef SvProtocol_h |
hollegha3 | 1:a2c68aba6d98 | 3 | #define SvProtocol_h |
hollegha3 | 1:a2c68aba6d98 | 4 | |
hollegha3 | 1:a2c68aba6d98 | 5 | #include "stdint.h" |
hollegha3 | 1:a2c68aba6d98 | 6 | |
hollegha3 | 1:a2c68aba6d98 | 7 | // V2.0 |
hollegha3 | 1:a2c68aba6d98 | 8 | namespace mbed { |
hollegha3 | 1:a2c68aba6d98 | 9 | |
hollegha3 | 1:a2c68aba6d98 | 10 | class IStreamHL { |
hollegha3 | 1:a2c68aba6d98 | 11 | public: |
hollegha3 | 1:a2c68aba6d98 | 12 | virtual void PutChar(int aCh) = 0; |
hollegha3 | 1:a2c68aba6d98 | 13 | virtual int GetChar() = 0; |
hollegha3 | 1:a2c68aba6d98 | 14 | virtual void Write(void* aData, uint32_t aLenBytes) = 0; |
hollegha3 | 1:a2c68aba6d98 | 15 | virtual void Read(void* aData, uint32_t aLenBytes) = 0; |
hollegha3 | 1:a2c68aba6d98 | 16 | }; |
hollegha3 | 1:a2c68aba6d98 | 17 | |
hollegha3 | 1:a2c68aba6d98 | 18 | class SvProtocol { |
hollegha3 | 1:a2c68aba6d98 | 19 | public: |
hollegha3 | 1:a2c68aba6d98 | 20 | IStreamHL* _st; |
hollegha3 | 1:a2c68aba6d98 | 21 | uint8_t acqON; |
hollegha3 | 1:a2c68aba6d98 | 22 | uint8_t svMessageON; |
hollegha3 | 1:a2c68aba6d98 | 23 | public: |
hollegha3 | 1:a2c68aba6d98 | 24 | SvProtocol(IStreamHL* aStrm) { |
hollegha3 | 1:a2c68aba6d98 | 25 | acqON=0; svMessageON=1; |
hollegha3 | 1:a2c68aba6d98 | 26 | _st=aStrm; |
hollegha3 | 1:a2c68aba6d98 | 27 | } |
hollegha3 | 1:a2c68aba6d98 | 28 | |
hollegha3 | 1:a2c68aba6d98 | 29 | // Check's first for acqOn/Off Command |
hollegha3 | 1:a2c68aba6d98 | 30 | // ret 0 if acqOn/Off was handled in GetCommand |
hollegha3 | 1:a2c68aba6d98 | 31 | int GetCommand(); |
hollegha3 | 1:a2c68aba6d98 | 32 | |
hollegha3 | 1:a2c68aba6d98 | 33 | void Puts(char* aCStr); // Terminate with 0 |
hollegha3 | 1:a2c68aba6d98 | 34 | |
hollegha3 | 1:a2c68aba6d98 | 35 | void Puts2(char* aCStr, char aEndChar); |
hollegha3 | 1:a2c68aba6d98 | 36 | |
hollegha3 | 1:a2c68aba6d98 | 37 | // \r\n is appended automatically |
hollegha3 | 1:a2c68aba6d98 | 38 | void Printf(const char* format, ...); |
hollegha3 | 1:a2c68aba6d98 | 39 | |
hollegha3 | 1:a2c68aba6d98 | 40 | void SvPrintf(const char *format, ...); |
hollegha3 | 1:a2c68aba6d98 | 41 | |
hollegha3 | 1:a2c68aba6d98 | 42 | void WriteSV(int aId, char* aData) { |
hollegha3 | 1:a2c68aba6d98 | 43 | if( !svMessageON ) return; |
hollegha3 | 1:a2c68aba6d98 | 44 | _st->PutChar(aId); Puts(aData); |
hollegha3 | 1:a2c68aba6d98 | 45 | } |
hollegha3 | 1:a2c68aba6d98 | 46 | |
hollegha3 | 1:a2c68aba6d98 | 47 | void SvMessage(char* aTxt) { |
hollegha3 | 1:a2c68aba6d98 | 48 | if( !svMessageON ) return; |
hollegha3 | 1:a2c68aba6d98 | 49 | _st->PutChar(10); Puts(aTxt); |
hollegha3 | 1:a2c68aba6d98 | 50 | } |
hollegha3 | 1:a2c68aba6d98 | 51 | |
hollegha3 | 1:a2c68aba6d98 | 52 | void VectHeader(int aId, int aNVals) |
hollegha3 | 1:a2c68aba6d98 | 53 | { _st->PutChar(aId); _st->PutChar(aNVals); } |
hollegha3 | 1:a2c68aba6d98 | 54 | |
hollegha3 | 1:a2c68aba6d98 | 55 | void WriteSvI16(int aId, int16_t aData) |
hollegha3 | 1:a2c68aba6d98 | 56 | { _st->PutChar(aId+10); _st->Write(&aData,2); } |
hollegha3 | 1:a2c68aba6d98 | 57 | |
hollegha3 | 1:a2c68aba6d98 | 58 | void WriteSvI32(int aId, int32_t aData) |
hollegha3 | 1:a2c68aba6d98 | 59 | { _st->PutChar(aId); _st->Write(&aData,4); } |
hollegha3 | 1:a2c68aba6d98 | 60 | |
hollegha3 | 1:a2c68aba6d98 | 61 | void WriteSV(int aId, float aData) |
hollegha3 | 1:a2c68aba6d98 | 62 | { _st->PutChar(aId+20); _st->Write(&aData,4); } |
hollegha3 | 1:a2c68aba6d98 | 63 | |
hollegha3 | 1:a2c68aba6d98 | 64 | // float in 3.13 Format |
hollegha3 | 1:a2c68aba6d98 | 65 | void WriteSV3p13(int aId, float aData); |
hollegha3 | 1:a2c68aba6d98 | 66 | |
hollegha3 | 1:a2c68aba6d98 | 67 | int16_t ReadI16() |
hollegha3 | 1:a2c68aba6d98 | 68 | { int16_t ret; _st->Read(&ret,2); return ret; } |
hollegha3 | 1:a2c68aba6d98 | 69 | |
hollegha3 | 1:a2c68aba6d98 | 70 | int32_t ReadI32() |
hollegha3 | 1:a2c68aba6d98 | 71 | { int32_t ret; _st->Read(&ret,4); return ret; } |
hollegha3 | 1:a2c68aba6d98 | 72 | |
hollegha3 | 1:a2c68aba6d98 | 73 | float ReadF() |
hollegha3 | 1:a2c68aba6d98 | 74 | { float ret; _st->Read(&ret,4); return ret; } |
hollegha3 | 1:a2c68aba6d98 | 75 | |
hollegha3 | 1:a2c68aba6d98 | 76 | // reads until aTermChar is found |
hollegha3 | 1:a2c68aba6d98 | 77 | void ReadCString(char* aBuff, char aTermChar); |
hollegha3 | 1:a2c68aba6d98 | 78 | |
hollegha3 | 1:a2c68aba6d98 | 79 | SvProtocol& WrB(char aVal) |
hollegha3 | 1:a2c68aba6d98 | 80 | { _st->PutChar(aVal); return *this; } |
hollegha3 | 1:a2c68aba6d98 | 81 | |
hollegha3 | 1:a2c68aba6d98 | 82 | SvProtocol& WrF(float aVal) |
hollegha3 | 1:a2c68aba6d98 | 83 | { _st->Write(&aVal,4); return *this; } |
hollegha3 | 1:a2c68aba6d98 | 84 | }; |
hollegha3 | 1:a2c68aba6d98 | 85 | |
hollegha3 | 1:a2c68aba6d98 | 86 | } // namespace mbed |
hollegha3 | 1:a2c68aba6d98 | 87 | |
hollegha3 | 1:a2c68aba6d98 | 88 | // SV-Id Ranges and DataTypes for SvVis3 Visualisation-Tool |
hollegha3 | 1:a2c68aba6d98 | 89 | //---------------------------------------------------------- |
hollegha3 | 1:a2c68aba6d98 | 90 | // Id = 10 : string |
hollegha3 | 1:a2c68aba6d98 | 91 | // Id = 1 .. 9 : format 3.13 2 Bytes |
hollegha3 | 1:a2c68aba6d98 | 92 | // Id = 11 .. 20 : short 2 Bytes |
hollegha3 | 1:a2c68aba6d98 | 93 | // Id = 21 .. 30 : float 4 Bytes |
hollegha3 | 1:a2c68aba6d98 | 94 | |
hollegha3 | 1:a2c68aba6d98 | 95 | #endif |
hollegha3 | 1:a2c68aba6d98 | 96 |