Statistics
| Branch: | Revision:

urtware / urtware.h @ fb72e91b

History | View | Annotate | Download (3.201 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..2020  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
/**
32
 * @name    µRtWare version and release information.
33
 * @{
34
 */
35
/*============================================================================*/
36

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

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

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

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

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

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

    
72
/** @} */
73

    
74
/*============================================================================*/
75
/* CONFIGURATION & VERIFICATION                                               */
76
/*============================================================================*/
77

    
78
#include <urtwareconf.h>
79

    
80
#if !defined(_URTWARE_CFG_)
81
# error "invalid µRtWare configuration file"
82
#elif (URTWARE_CFG_VERSION_MAJOR != URTWARE_VERSION_MAJOR) || (URTWARE_CFG_VERSION_MAJOR < URTWARE_VERSION_MAJOR)
83
# error "incompatible µRtWare configuration file"
84
#endif
85

    
86
#include <urt_confcheck.h>
87

    
88
#include <urt_primitives.h>
89

    
90
#if defined(URT_CFG_OSAL_HEADER)
91
# include URT_CFG_OSAL_HEADER
92
#endif
93
#include <urt_osal.h>
94

    
95
/*
96
 * TODO: Add further µRtWare includes here (e.g. urt_core.h).
97
 */
98
//Necessary for memcpy
99
#include <stdio.h>
100
#include <string.h>
101

    
102
#include <apps_urtosal.h>
103
#include <urt_message.h>
104
#include <urt_topic.h>
105
#include <urt_publisher.h>
106
#include <urt_subscriber.h>
107
#include <urt_node.h>
108
#include <urt_core.h>
109

    
110
#endif /* URTWARE_H */