Christian Weiß / Mbed 2 deprecated Labor_RGB1

Dependencies:   mbed

Committer:
Wizo
Date:
Thu Nov 15 18:00:04 2018 +0000
Revision:
0:a17cdd8e23ac
Labor_RGB1

Who changed what in which revision?

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