phins_ixsea
Parser.hpp
Go to the documentation of this file.
1 /*
2  * Parser.hpp
3  *
4  * Created on: 12.06.2012
5  * Author: jrenken
6  */
7 
8 #ifndef _PHINS_IXSEA_PARSER_HPP_
9 #define _PHINS_IXSEA_PARSER_HPP_
10 
11 #include <stdint.h>
12 #include <stdlib.h>
13 #include <string>
14 #include <phins_ixsea/PhinsTypes.hpp>
15 #include <phins_ixsea/PhinsRaw.hpp>
16 
17 namespace phins_ixsea
18 {
19 
24  class Parser
25  {
26 
27 
28  public:
29  Parser();
30  virtual ~Parser() {};
31 
32  static Parser* createParser(Protocol protocol);
33 
37  virtual int extractPacket (uint8_t const *buffer, size_t buffer_size) const = 0;
38 
43  virtual void parse(uint8_t const *buffer, size_t size) = 0;
44 
51  bool hasUpdate(uint32_t flags, bool reset = false);
52 
53  bool hasAnyUpdate(uint32_t flags);
54 
56  uint32_t mUpdateFlags;
57  };
58 
59 
60  class NmeaParser : public Parser
61  {
62 
63  public:
64  NmeaParser();
69  virtual int extractPacket (uint8_t const *buffer, size_t buffer_size) const;
70 
71  protected:
75  double ddm2dd(const double);
76 
77  };
78 
79 } /* namespace phins_ixsea */
80 #endif /* _PHINS_IXSEA_PARSER_HPP_ */
PhinsRawData mData
Definition: Parser.hpp:55
Parser()
Definition: Parser.cpp:16
virtual void parse(uint8_t const *buffer, size_t size)=0
virtual int extractPacket(uint8_t const *buffer, size_t buffer_size) const =0
bool hasAnyUpdate(uint32_t flags)
Definition: Parser.cpp:46
uint32_t mUpdateFlags
Definition: Parser.hpp:56
Definition: PhinsRaw.hpp:244
Definition: Parser.hpp:60
bool hasUpdate(uint32_t flags, bool reset=false)
Definition: Parser.cpp:35
Protocol
Definition: PhinsTypes.hpp:109
virtual ~Parser()
Definition: Parser.hpp:30
Definition: Parser.hpp:24
Definition: Driver.hpp:18
static Parser * createParser(Protocol protocol)
Definition: Parser.cpp:22