Vector BLF
CanFdMessage.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 <vector>
27 
28 #include <Vector/BLF/AbstractFile.h>
29 #include <Vector/BLF/ObjectHeader.h>
30 #include <Vector/BLF/VectorTypes.h>
31 
32 #include <Vector/BLF/vector_blf_export.h>
33 
34 namespace Vector {
35 namespace BLF {
36 
40 struct VECTOR_BLF_EXPORT CanFdMessage final : ObjectHeader {
41  CanFdMessage();
42 
43  void read(AbstractFile & is) override;
44  void write(AbstractFile & os) override;
45  DWORD calculateObjectSize() const override;
46 
50  WORD channel {};
51 
55  enum Flags : BYTE {
57  TX = (1 << 0),
58 
60  NERR = (1 << 5),
61 
63  WU = (1 << 6),
64 
66  RTR = (1 << 7)
67  };
68 
76  BYTE flags {};
77 
81  BYTE dlc {};
82 
86  DWORD id {};
87 
91  DWORD frameLength {};
92 
96  BYTE arbBitCount {};
97 
101  enum CanFdFlags : BYTE {
103  EDL = (1 << 0),
104 
106  BRS = (1 << 1),
107 
109  ESI = (1 << 2)
110  };
111 
115  BYTE canFdFlags {};
116 
120  BYTE validDataBytes {};
121 
123  BYTE reservedCanFdMessage1 {};
124 
126  DWORD reservedCanFdMessage2 {};
127 
131  std::vector<BYTE> data {};
132 
134  DWORD reservedCanFdMessage3 {};
135 };
136 
137 }
138 }
Definition: AbstractFile.h:36
CAN_FD_MESSAGE.
Definition: CanFdMessage.h:40
Flags
Definition: CanFdMessage.h:55
CanFdFlags
Definition: CanFdMessage.h:101
Object header.
Definition: ObjectHeader.h:40