Statistics
| Branch: | Tag: | Revision:

amiro-lld / amiro-lld.h @ c89b966e

History | View | Annotate | Download (2.57 KB)

1 d6728c5b Thomas Schöpping
/*
2
AMiRo-LLD is a compilation of low-level hardware drivers for the Autonomous Mini Robot (AMiRo) platform.
3 f125ae07 Thomas Schöpping
Copyright (C) 2016..2019  Thomas Schöpping et al.
4 d6728c5b Thomas Schöpping

5
This program is free software: you can redistribute it and/or modify
6 f0ca400f Thomas Schöpping
it under the terms of the GNU Lesser General Public License as published by
7 d6728c5b Thomas Schöpping
the Free Software Foundation, either version 3 of the License, or
8
(at your option) any later version.
9

10
This program is distributed in the hope that it will be useful,
11
but WITHOUT ANY WARRANTY; without even the implied warranty of
12
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 f0ca400f Thomas Schöpping
GNU Lesser General Public License for more details.
14 d6728c5b Thomas Schöpping

15 f0ca400f Thomas Schöpping
You should have received a copy of the GNU Lesser General Public License
16 d6728c5b Thomas Schöpping
along with this program.  If not, see <http://www.gnu.org/licenses/>.
17
*/
18
19 8c47f14b Thomas Schöpping
#ifndef AMIROLLD_H
20
#define AMIROLLD_H
21 d6728c5b Thomas Schöpping
22
/**
23
 * @brief   AMIRO-LLD identification macro.
24
 */
25
#define _AMIRO_LLD_
26
27
/**
28
 * @name   AMiRo-LLD version and relase information.
29
 * @{
30
 */
31
32
/**
33
 * @brief   Realease type of this version.
34 3fb3c6e7 Thomas Schöpping
 * @note    Possible values are "pre-alpha", "alpha", "beta", "release candidate", and "release".
35 d6728c5b Thomas Schöpping
 */
36 7021191e Thomas Schöpping
#define AMIRO_LLD_RELEASE_TYPE     "beta"
37 d6728c5b Thomas Schöpping
38
/**
39 3fb3c6e7 Thomas Schöpping
 * @brief   The AMiRo-LLD major version.
40 d6728c5b Thomas Schöpping
 * @note    Changes of the major version imply incompatibilities.
41
 */
42
#define AMIRO_LLD_VERSION_MAJOR    1
43
44
/**
45 3fb3c6e7 Thomas Schöpping
 * @brief   The AMiRo-LLD minor version.
46 d6728c5b Thomas Schöpping
 * @note    A higher minor version implies new functionalty, but all old interfaces are still available.
47
 */
48
#define AMIRO_LLD_VERSION_MINOR    0
49
50
/**
51 3fb3c6e7 Thomas Schöpping
 * @brief   The AMiRo-LLD patch level.
52 d6728c5b Thomas Schöpping
 */
53 7021191e Thomas Schöpping
#define AMIRO_LLD_VERSION_PATCH    2
54 d6728c5b Thomas Schöpping
55
/**
56
 * @brief   The periphery abstraction layer interface required major version.
57 3fb3c6e7 Thomas Schöpping
 * @note    Any other major version is assumed to be incompatible.
58 d6728c5b Thomas Schöpping
 */
59
#define PERIPHAL_REQUIRED_MAJOR    1
60
61
/**
62
 * @brief   The periphery abstraction layer interface required minor version.
63 3fb3c6e7 Thomas Schöpping
 * @note    Higher minor version values are assumed to be compatible, too.
64 d6728c5b Thomas Schöpping
 */
65 7021191e Thomas Schöpping
#define PERIPHAL_REQUIRED_MINOR    1
66 d6728c5b Thomas Schöpping
67
/** @} */
68
69
#include <alldconf.h>
70
#if !defined(_AMIRO_LLD_CFG_)
71
#error "invalid AMiRo-LLD configuration file"
72 a627f4dd Thomas Schöpping
#elif (AMIRO_LLD_CFG_VERSION_MAJOR != AMIRO_LLD_VERSION_MAJOR) || (AMIRO_LLD_CFG_VERSION_MINOR < AMIRO_LLD_VERSION_MINOR)
73 d6728c5b Thomas Schöpping
#error "incompatible AMiRo-LLD configuration file"
74
#endif
75
76 a627f4dd Thomas Schöpping
#include "periphALtypes.h"
77 d6728c5b Thomas Schöpping
#include <periphAL.h>
78
#if !defined(PERIPHAL_VERSION_MAJOR) || !defined(PERIPHAL_VERSION_MINOR)
79
#error "invalid periphAL implementation"
80 a627f4dd Thomas Schöpping
#elif (PERIPHAL_VERSION_MAJOR != PERIPHAL_REQUIRED_MAJOR) || (PERIPHAL_VERSION_MINOR < PERIPHAL_REQUIRED_MINOR)
81 d6728c5b Thomas Schöpping
#error "incompatible periphAL implementation"
82
#endif
83
84 8c47f14b Thomas Schöpping
#endif /* AMIROLLD_H */