Vector BLF
SerialEvent.h
1 /*
2  * Copyright (C) 2013 Tobias Lorenz.
3  * Contact: tobias.lorenz@gmx.net
4  *
5  * This file is part of Tobias Lorenz's Toolkit.
6  *
7  * Commercial License Usage
8  * Licensees holding valid commercial licenses may use this file in
9  * accordance with the commercial license agreement provided with the
10  * Software or, alternatively, in accordance with the terms contained in
11  * a written agreement between you and Tobias Lorenz.
12  *
13  * GNU General Public License 3.0 Usage
14  * Alternatively, this file may be used under the terms of the GNU
15  * General Public License version 3.0 as published by the Free Software
16  * Foundation and appearing in the file LICENSE.GPL included in the
17  * packaging of this file. Please review the following information to
18  * ensure the GNU General Public License version 3.0 requirements will be
19  * met: http://www.gnu.org/copyleft/gpl.html.
20  */
21 
22 #pragma once
23 
24 #include <Vector/BLF/platform.h>
25 
26 #include <array>
27 #include <vector>
28 
29 #include <Vector/BLF/AbstractFile.h>
30 #include <Vector/BLF/CompactSerialEvent.h>
31 #include <Vector/BLF/GeneralSerialEvent.h>
32 #include <Vector/BLF/ObjectHeader.h>
33 #include <Vector/BLF/SingleByteSerialEvent.h>
34 #include <Vector/BLF/VectorTypes.h>
35 
36 #include <Vector/BLF/vector_blf_export.h>
37 
38 namespace Vector {
39 namespace BLF {
40 
46 struct VECTOR_BLF_EXPORT SerialEvent final : ObjectHeader {
47  SerialEvent();
48  virtual ~SerialEvent() noexcept = default;
49  SerialEvent(const SerialEvent &) = default;
50  SerialEvent & operator=(const SerialEvent &) = default;
51  SerialEvent(SerialEvent &&) = default;
52  SerialEvent & operator=(SerialEvent &&) = default;
53 
54  void read(AbstractFile & is) override;
55  void write(AbstractFile & os) override;
56  DWORD calculateObjectSize() const override;
57 
59  enum Flags : DWORD {
61  KLineEvent = 0x00000001,
62 
68  DiagRequest = 0x00000002,
69 
75  SingleByte = 0x00000004,
76 
82  CompactByte = 0x00000008
83  };
84 
86  DWORD flags {};
87 
93  DWORD port {};
94 
100  DWORD baudrate {};
101 
103  DWORD reservedSerialEvent {};
104 
106  GeneralSerialEvent general {};
107 
109  SingleByteSerialEvent singleByte {};
110 
112  CompactSerialEvent compact {};
113 };
114 
115 }
116 }
Definition: AbstractFile.h:36
Definition: CompactSerialEvent.h:41
Definition: GeneralSerialEvent.h:41
Object header.
Definition: ObjectHeader.h:40
SERIAL_EVENT.
Definition: SerialEvent.h:46
Flags
Definition: SerialEvent.h:59
Definition: SingleByteSerialEvent.h:41