Statistics
| Branch: | Tag: | Revision:

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

History | View | Annotate | Download (2.803 KB)

1 e545e620 Thomas Schöpping
/*
2
AMiRo-OS is an operating system designed for the Autonomous Mini Robot (AMiRo) platform.
3
Copyright (C) 2016..2018  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
 * @brief   Custom data structure for the unit test.
31
 */
32
typedef struct {
33
  /**
34
   * @brief   Pointer to the driver to use.
35
   */
36
  A3906Driver* driver;
37
38
  /**
39
   * @brief   PWM driver information.
40
   */
41
  struct {
42
    /**
43
     * @brief   The PWM driver to use.
44
     */
45
    apalPWMDriver_t* driver;
46
47
    /**
48
     * @brief   PWM channel information.
49
     */
50
    struct {
51
      /**
52
     * @brief   PWM channel for the left wheel forward direction.
53
     */
54
      apalPWMchannel_t left_forward;
55
56
      /**
57
     * @brief   PWM channel for the left wheel backward direction.
58
     */
59
      apalPWMchannel_t left_backward;
60
61
      /**
62
     * @brief   PWM channel for the right wheel forward direction.
63
     */
64
      apalPWMchannel_t right_forward;
65
66
      /**
67
     * @brief   PWM channel for the right wheel backward direction.
68
     */
69
      apalPWMchannel_t right_backward;
70
    } channel;
71
  } pwm;
72
73
  /**
74
   * @brief   QEI driver information
75
   */
76
  struct {
77
    /**
78
     * @brief   QEI driver for the left wheel.
79
     */
80
    apalQEIDriver_t* left;
81
82
    /**
83
     * @brief   QEI driver for the right wheel.
84
     */
85
    apalQEIDriver_t* right;
86
87
    /**
88
     * @brief   QEI increments per wheel revolution.
89
     */
90
    apalQEICount_t increments_per_revolution;
91
  } qei;
92
93
  /**
94 47680f67 Thomas Schöpping
   * @brief   Wheel diameter information.
95 e545e620 Thomas Schöpping
   */
96 47680f67 Thomas Schöpping
  struct {
97
    /**
98
     * @brief   Left wheel diameter in m.
99
     */
100
    float left;
101
102
    /**
103
     * @brief   Right wheel diameter in m.
104
     */
105
    float right;
106
  } wheel_diameter;
107 e545e620 Thomas Schöpping
108
  /**
109
   * @brief   Timeout value (in us).
110
   */
111
  apalTime_t timeout;
112
} ut_a3906data_t;
113
114
#ifdef __cplusplus
115
extern "C" {
116
#endif
117
  aos_utresult_t utAlldA3906Func(BaseSequentialStream* stream, aos_unittest_t* ut);
118
#ifdef __cplusplus
119
}
120
#endif
121
122
#endif /* (AMIROOS_CFG_TESTS_ENABLE == true) && defined(AMIROLLD_CFG_USE_A3906) */
123
124
#endif /* _AMIROOS_UT_ALLD_A3906_H_ */