Ultraschall Test Geschwindigkeitsregelung

Fork of BertlLib by michael hollegha

Committer:
hollegha2
Date:
Fri Apr 25 14:35:21 2014 +0000
Revision:
0:e0131e671ea0
Child:
5:a7849d022f69
Initial Rev.

Who changed what in which revision?

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