Statistics
| Branch: | Tag: | Revision:

amiro-os / unittests / periphery-lld / inc / ut_alld_a3906.h @ f3ac1c96

History | View | Annotate | Download (4.465 KB)

1
/*
2
AMiRo-OS is an operating system designed for the Autonomous Mini Robot (AMiRo) platform.
3
Copyright (C) 2016..2019  Thomas Schöpping et al.
4

5
This program is free software: you can redistribute it and/or modify
6
it under the terms of the GNU General Public License as published by
7
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
GNU General Public License for more details.
14

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

    
19
#ifndef AMIROOS_UT_ALLD_A3906_H
20
#define AMIROOS_UT_ALLD_A3906_H
21

    
22
#include <aos_unittest.h>
23
#include <amiro-lld.h>
24

    
25
#if ((AMIROOS_CFG_TESTS_ENABLE == true) && defined(AMIROLLD_CFG_USE_A3906)) || defined(__DOXYGEN__)
26

    
27
#include <alld_a3906.h>
28

    
29
/******************************************************************************/
30
/* CONSTANTS                                                                  */
31
/******************************************************************************/
32

    
33
/******************************************************************************/
34
/* SETTINGS                                                                   */
35
/******************************************************************************/
36

    
37
/******************************************************************************/
38
/* CHECKS                                                                     */
39
/******************************************************************************/
40

    
41
/******************************************************************************/
42
/* DATA STRUCTURES AND TYPES                                                  */
43
/******************************************************************************/
44

    
45
/**
46
 * @brief   Custom data structure for the unit test.
47
 */
48
typedef struct {
49
  /**
50
   * @brief   Pointer to the driver to use.
51
   */
52
  A3906Driver* driver;
53

    
54
  /**
55
   * @brief   PWM driver information.
56
   */
57
  struct {
58
    /**
59
     * @brief   The PWM driver to use.
60
     */
61
    apalPWMDriver_t* driver;
62

    
63
    /**
64
     * @brief   PWM channel information.
65
     */
66
    struct {
67
      /**
68
     * @brief   PWM channel for the left wheel forward direction.
69
     */
70
      apalPWMchannel_t left_forward;
71

    
72
      /**
73
     * @brief   PWM channel for the left wheel backward direction.
74
     */
75
      apalPWMchannel_t left_backward;
76

    
77
      /**
78
     * @brief   PWM channel for the right wheel forward direction.
79
     */
80
      apalPWMchannel_t right_forward;
81

    
82
      /**
83
     * @brief   PWM channel for the right wheel backward direction.
84
     */
85
      apalPWMchannel_t right_backward;
86
    } channel;
87
  } pwm;
88

    
89
  /**
90
   * @brief   QEI driver information
91
   */
92
  struct {
93
    /**
94
     * @brief   QEI driver for the left wheel.
95
     */
96
    apalQEIDriver_t* left;
97

    
98
    /**
99
     * @brief   QEI driver for the right wheel.
100
     */
101
    apalQEIDriver_t* right;
102

    
103
    /**
104
     * @brief   QEI increments per wheel revolution.
105
     */
106
    apalQEICount_t increments_per_revolution;
107
  } qei;
108

    
109
  /**
110
   * @brief   Wheel diameter information.
111
   */
112
  struct {
113
    /**
114
     * @brief   Left wheel diameter in m.
115
     */
116
    float left;
117

    
118
    /**
119
     * @brief   Right wheel diameter in m.
120
     */
121
    float right;
122
  } wheel_diameter;
123

    
124
  /**
125
   * @brief   Timeout value (in us).
126
   */
127
  apalTime_t timeout;
128
} ut_a3906data_t;
129

    
130
/******************************************************************************/
131
/* MACROS                                                                     */
132
/******************************************************************************/
133

    
134
/******************************************************************************/
135
/* EXTERN DECLARATIONS                                                        */
136
/******************************************************************************/
137

    
138
#ifdef __cplusplus
139
extern "C" {
140
#endif
141
  aos_utresult_t utAlldA3906Func(BaseSequentialStream* stream, aos_unittest_t* ut);
142
#ifdef __cplusplus
143
}
144
#endif
145

    
146
/******************************************************************************/
147
/* INLINE FUNCTIONS                                                           */
148
/******************************************************************************/
149

    
150
#endif /* (AMIROOS_CFG_TESTS_ENABLE == true) && defined(AMIROLLD_CFG_USE_A3906) */
151

    
152
#endif /* AMIROOS_UT_ALLD_A3906_H */