Statistics
| Branch: | Revision:

urtware / urtware.h @ dd31cb03

History | View | Annotate | Download (2.69 KB)

1
/*
2
µRtWare is a lightweight publish/subscribe middleware for real-time
3
applications. It was developed as part of the software habitat for the
4
Autonomous Mini Robot [1] (AMiRo) but can be used for other purposes as well.
5

6
Copyright (C) 2018..2019  Thomas Schöpping et al.
7

8
This program is free software: you can redistribute it and/or modify
9
it under the terms of the GNU General Public License as published by
10
the Free Software Foundation, either version 3 of the License, or
11
(at your option) any later version.
12

13
This program is distributed in the hope that it will be useful,
14
but WITHOUT ANY WARRANTY; without even the implied warranty of
15
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16
GNU General Public License for more details.
17

18
You should have received a copy of the GNU General Public License
19
along with this program.  If not, see <http://www.gnu.org/licenses/>.
20
*/
21

    
22
#ifndef _URTWARE_H_
23
#define _URTWARE_H_
24

    
25
/**
26
 * @brief   µRtWare identification macro.
27
 */
28
#define _uRtWare_
29

    
30
/**
31
 * @name    µRtWare version and release information.
32
 * @{
33
 */
34

    
35
/**
36
 * @brief   Release type of this version.
37
 * @note    Possible values are "pre-alpha", "alpha", "beta", "release candidate", and "release".
38
 */
39
#define URTWARE_RELEASE_TYPE      "pre-alpha"
40

    
41
/**
42
 * @brief   The µRtWare major version.
43
 * @note    Changes of the major version imply incompatibilities.
44
 */
45
#define URTWARE_VERSION_MAJOR     0
46

    
47
/**
48
 * @brief   The µRtWare minor version.
49
 * @note    A higher minor version implies new functionalities, but all old interfaces are still available.
50
 */
51
#define URTWARE_VERSION_MINOR     1
52

    
53
/**
54
 * @brief   The µRtWare patch level.
55
 */
56
#define URTWARE_VERSION_PATCH     0
57

    
58
/**
59
 * @brief   The µRtWare operating system abstraction layer interface required major version.
60
 * @note    Any other major version is assumed to be incompatible.
61
 */
62
#define URT_OSAL_REQUIRED_MAJOR   0
63

    
64
/**
65
 * @brief   The µRtWare operating system abstraction layer interface required minor version.
66
 * @note    Higher minor version values are assumed to be compatible, too.
67
 */
68
#define URT_OSAL_REQUIRED_MINOR   1
69

    
70
/** @} */
71

    
72
#include <urtwareconf.h>
73
#if !defined(_URTWARE_CFG_)
74
#error "invalid µRtWare configuration file"
75
#endif
76
#if (URTWARE_CFG_VERSION_MAJOR != URTWARE_VERSION_MAJOR) || (URTWARE_CFG_VERSION_MINOR < URTWARE_VERSION_MINOR)
77
#error "incompatible µRtWare configuration file"
78
#endif
79
#include <urt_confcheck.h>
80

    
81
#include <urt_osal.h>
82
#if !defined(URT_OSAL_VERSION_MAJOR) || !defined(URT_OSAL_VERSION_MINOR)
83
#error "invalid µRt-OSAL implementation"
84
#endif
85
#if (URT_OSAL_VERSION_MAJOR != URT_OSAL_REQUIRED_MAJOR) || (URT_OSAL_VERSION_MINOR < URT_OSAL_REQUIRED_MINOR)
86
#error "incompatible µRt-OSAL implementation"
87
#endif
88

    
89
#endif /* _URTWARE_H_ */