Main Page
Related Pages
Data Structures
Files
Examples
File List
Globals
All
Data Structures
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Pages
vexctl.h
Go to the documentation of this file.
1
/*-----------------------------------------------------------------------------*/
2
/* */
3
/* Copyright (c) James Pearman */
4
/* 2013 */
5
/* All Rights Reserved */
6
/* */
7
/*-----------------------------------------------------------------------------*/
8
/* */
9
/* Module: vexctl.h */
10
/* Author: James Pearman */
11
/* Created: 7 May 2013 */
12
/* */
13
/* Revisions: */
14
/* V1.00 4 July 2013 - Initial release */
15
/* */
16
/*-----------------------------------------------------------------------------*/
17
/* */
18
/* This file is part of ConVEX. */
19
/* */
20
/* The author is supplying this software for use with the VEX cortex */
21
/* control system. ConVEX is free software; you can redistribute it */
22
/* and/or modify it under the terms of the GNU General Public License */
23
/* as published by the Free Software Foundation; either version 3 of */
24
/* the License, or (at your option) any later version. */
25
/* */
26
/* ConVEX is distributed in the hope that it will be useful, */
27
/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
28
/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
29
/* GNU General Public License for more details. */
30
/* */
31
/* You should have received a copy of the GNU General Public License */
32
/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
33
/* */
34
/* A special exception to the GPL can be applied should you wish to */
35
/* distribute a combined work that includes ConVEX, without being obliged */
36
/* to provide the source code for any proprietary components. */
37
/* See the file exception.txt for full details of how and when the */
38
/* exception can be applied. */
39
/* */
40
/* The author can be contacted on the vex forums as jpearman */
41
/* or electronic mail using jbpearman_at_mac_dot_com */
42
/* Mentor for team 8888 RoboLancers, Pasadena CA. */
43
/* */
44
/*-----------------------------------------------------------------------------*/
45
46
#ifndef __VEXCTL__
47
#define __VEXCTL__
48
49
/*-----------------------------------------------------------------------------*/
50
/** @file vexctl.h
51
* @brief Extract data from SPI data received from master processor
52
*/
/*---------------------------------------------------------------------------*/
53
54
/*-----------------------------------------------------------------------------*/
55
/** @brief controller button and analog control definitions */
56
/** @note loosely follows the ROBOTC definition of the same functions */
57
/*-----------------------------------------------------------------------------*/
58
/** @details
59
* These are the constants that are used in the call to vexControllerGet.
60
* They follow the format that ROBOTC uses in its call to vexRT[], however,
61
* there are a few additions to allow multiple buttons to be checked.
62
*/
63
typedef
enum
{
64
Ch1
= 0,
Ch2
,
Ch3
,
Ch4
,
65
Btn8D
,
Btn8L
,
Btn8U
,
Btn8R
,
66
Btn7D
,
Btn7L
,
Btn7U
,
Btn7R
,
67
Btn5D
,
Btn5U
,
68
Btn6D
,
Btn6U
,
69
AcclX
,
AcclY
,
AcclZ
,
70
Btn5
,
Btn6
,
Btn7
,
Btn8
,
71
BtnAny
,
72
73
Ch1Xmtr2
= 128,
Ch2Xmtr2
,
Ch3Xmtr2
,
Ch4Xmtr2
,
74
Btn8DXmtr2
,
Btn8LXmtr2
,
Btn8UXmtr2
,
Btn8RXmtr2
,
75
Btn7DXmtr2
,
Btn7LXmtr2
,
Btn7UXmtr2
,
Btn7RXmtr2
,
76
Btn5DXmtr2
,
Btn5UXmtr2
,
77
Btn6DXmtr2
,
Btn6UXmtr2
,
78
AcclXXmtr2
,
AcclYXmtr2
,
AcclZXmtr2
,
79
Btn5Xmtr2
,
Btn6Xmtr2
,
Btn7Xmtr2
,
Btn8mXtr2
,
80
BtnAnyXmtr2
81
}
tCtlIndex
;
82
83
/*-----------------------------------------------------------------------------*/
84
/** @brief Various competition and controller flags */
85
/*-----------------------------------------------------------------------------*/
86
typedef
enum
{
87
kFlagNoXmiters
= 0,
// No transmitters connected
88
kFlagXmit1
= 0x01,
// 1 == Transmitter 1 connected
89
kFlagXmit2
= 0x02,
// 1 == Transmitter 2 connected
90
kFlagBit2
= 0x04,
// Unused
91
kFlagCompetitionSwitch
= 0x08,
// 0 == No Comp Switch 1 == Competition Switch attached.
92
kFlagResetSlave
= 0x10,
// Unused
93
kFlagGameController
= 0x20,
// 0 == Legacy75MHz, 1 == Game Controller
94
kFlagAutonomousMode
= 0x40,
// 0 == Driver Control, 1 == Autonomous Mode
95
kFlagDisabled
= 0x80,
// 0 == Enabled 1 == Disabled.
96
}
tVexControlState
;
97
98
99
#ifdef __cplusplus
100
extern
"C"
{
101
#endif
102
103
int16_t
vexControllerGet
(
tCtlIndex
index );
104
int16_t
vexControllerCompetitionStateSet
( uint16_t ctl, int16_t mask );
105
uint16_t
vexControllerCompetitonState
(
void
);
106
void
vexControllerReleaseWait
(
tCtlIndex
index );
107
108
#ifdef __cplusplus
109
}
110
#endif
111
112
#endif // __VEXCTL__
convex
cortex
fw
vexctl.h
Generated on Sun Jan 5 2014 15:43:37 for Convex by
1.8.4