ant-wireless 0.1.0.pre.20210617213631
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/History.md +5 -0
- data/LICENSE.txt +20 -0
- data/README.md +79 -0
- data/ext/ant_ext/ant_ext.c +791 -0
- data/ext/ant_ext/ant_ext.h +101 -0
- data/ext/ant_ext/antdefines.h +355 -0
- data/ext/ant_ext/antmessage.h +445 -0
- data/ext/ant_ext/build_version.h +18 -0
- data/ext/ant_ext/callbacks.c +233 -0
- data/ext/ant_ext/channel.c +524 -0
- data/ext/ant_ext/defines.h +40 -0
- data/ext/ant_ext/extconf.rb +22 -0
- data/ext/ant_ext/message.c +377 -0
- data/ext/ant_ext/types.h +202 -0
- data/ext/ant_ext/version.h +41 -0
- data/lib/ant.rb +138 -0
- data/lib/ant/channel.rb +66 -0
- data/lib/ant/channel/event_callbacks.rb +207 -0
- data/lib/ant/message.rb +10 -0
- data/lib/ant/mixins.rb +34 -0
- data/lib/ant/response_callbacks.rb +528 -0
- data/lib/ant/wireless.rb +5 -0
- data/spec/ant_spec.rb +88 -0
- data/spec/spec_helper.rb +37 -0
- metadata +131 -0
@@ -0,0 +1,101 @@
|
|
1
|
+
#ifndef ANT_EXT_H_4CFF48F9
|
2
|
+
#define ANT_EXT_H_4CFF48F9
|
3
|
+
|
4
|
+
#include "extconf.h"
|
5
|
+
|
6
|
+
#include <stdbool.h>
|
7
|
+
#include <pthread.h>
|
8
|
+
#include <assert.h>
|
9
|
+
|
10
|
+
#include <ruby.h>
|
11
|
+
#include <ruby/intern.h>
|
12
|
+
#include <ruby/thread.h>
|
13
|
+
#include <ruby/encoding.h>
|
14
|
+
#include <ruby/version.h>
|
15
|
+
|
16
|
+
#include "libant.h"
|
17
|
+
|
18
|
+
#ifndef TRUE
|
19
|
+
# define TRUE 1
|
20
|
+
#endif
|
21
|
+
|
22
|
+
#ifndef FALSE
|
23
|
+
# define FALSE 0
|
24
|
+
#endif
|
25
|
+
|
26
|
+
/* --------------------------------------------------------------
|
27
|
+
* Datatypes
|
28
|
+
* -------------------------------------------------------------- */
|
29
|
+
|
30
|
+
typedef struct rant_callback_t rant_callback_t;
|
31
|
+
struct rant_callback_t {
|
32
|
+
void *data;
|
33
|
+
VALUE (*fn)( VALUE );
|
34
|
+
bool rval;
|
35
|
+
|
36
|
+
pthread_mutex_t mutex;
|
37
|
+
pthread_cond_t cond;
|
38
|
+
|
39
|
+
bool handled;
|
40
|
+
rant_callback_t *next;
|
41
|
+
};
|
42
|
+
|
43
|
+
|
44
|
+
typedef struct rant_channel_t rant_channel_t;
|
45
|
+
struct rant_channel_t {
|
46
|
+
unsigned char channel_num;
|
47
|
+
unsigned char buffer[ MESG_MAX_SIZE ];
|
48
|
+
VALUE callback;
|
49
|
+
};
|
50
|
+
|
51
|
+
|
52
|
+
/* --------------------------------------------------------------
|
53
|
+
* Defines
|
54
|
+
* -------------------------------------------------------------- */
|
55
|
+
|
56
|
+
#define DEFAULT_BAUDRATE 57600
|
57
|
+
|
58
|
+
#ifdef HAVE_STDARG_PROTOTYPES
|
59
|
+
#include <stdarg.h>
|
60
|
+
#define va_init_list(a,b) va_start(a,b)
|
61
|
+
void rant_log_obj( VALUE, const char *, const char *, ... );
|
62
|
+
void rant_log( const char *, const char *, ... );
|
63
|
+
#else
|
64
|
+
#include <varargs.h>
|
65
|
+
#define va_init_list(a,b) va_start(a)
|
66
|
+
void rant_log_obj( VALUE, const char *, const char *, va_dcl );
|
67
|
+
void rant_log( const char *, const char *, va_dcl );
|
68
|
+
#endif
|
69
|
+
|
70
|
+
|
71
|
+
/* -------------------------------------------------------
|
72
|
+
* Globals
|
73
|
+
* ------------------------------------------------------- */
|
74
|
+
|
75
|
+
extern VALUE rant_mAnt;
|
76
|
+
|
77
|
+
extern VALUE rant_cAntChannel;
|
78
|
+
extern VALUE rant_cAntMessage;
|
79
|
+
|
80
|
+
|
81
|
+
/* --------------------------------------------------------------
|
82
|
+
* Type-check macros
|
83
|
+
* -------------------------------------------------------------- */
|
84
|
+
|
85
|
+
#define IsChannel( obj ) rb_obj_is_kind_of( (obj), rant_cAntChannel )
|
86
|
+
|
87
|
+
|
88
|
+
/* -------------------------------------------------------
|
89
|
+
* Initializer functions
|
90
|
+
* ------------------------------------------------------- */
|
91
|
+
extern void Init_ant_ext _(( void ));
|
92
|
+
|
93
|
+
extern void init_ant_channel _(( void ));
|
94
|
+
extern void init_ant_message _(( void ));
|
95
|
+
|
96
|
+
extern void rant_start_callback_thread _(( void ));
|
97
|
+
extern bool rant_callback _(( rant_callback_t * ));
|
98
|
+
|
99
|
+
extern void rant_channel_clear_registry _(( void ));
|
100
|
+
|
101
|
+
#endif /* end of include guard: ANT_EXT_H_4CFF48F9 */
|
@@ -0,0 +1,355 @@
|
|
1
|
+
/*
|
2
|
+
This software is subject to the license described in the License.txt file
|
3
|
+
included with this software distribution. You may not use this file except
|
4
|
+
in compliance with this license.
|
5
|
+
|
6
|
+
Copyright (c) Dynastream Innovations Inc. 2016
|
7
|
+
All rights reserved.
|
8
|
+
*/
|
9
|
+
#ifndef ANTDEFINES_H
|
10
|
+
#define ANTDEFINES_H
|
11
|
+
|
12
|
+
#include "types.h"
|
13
|
+
|
14
|
+
|
15
|
+
//////////////////////////////////////////////
|
16
|
+
// ANT Message Payload Size
|
17
|
+
//////////////////////////////////////////////
|
18
|
+
#define ANT_STANDARD_DATA_PAYLOAD_SIZE ((UCHAR)8)
|
19
|
+
|
20
|
+
//////////////////////////////////////////////
|
21
|
+
// ANT LIBRARY Extended Data Message Fields
|
22
|
+
// NOTE: You must check the extended message
|
23
|
+
// bitfield first to find out which fields
|
24
|
+
// are present before accessing them!
|
25
|
+
//////////////////////////////////////////////
|
26
|
+
#define ANT_EXT_MESG_DEVICE_ID_FIELD_SIZE ((UCHAR)4)
|
27
|
+
#define ANT_EXT_STRING_SIZE ((UCHAR)27) // increase buffer size to support longer messages (32 extra bytes after ANT standard payload)
|
28
|
+
|
29
|
+
//////////////////////////////////////////////
|
30
|
+
// ANT Extended Data Message Bifield Definitions
|
31
|
+
//////////////////////////////////////////////
|
32
|
+
#define ANT_EXT_MESG_BITFIELD_DEVICE_ID ((UCHAR)0x80) // first field after bitfield
|
33
|
+
|
34
|
+
// 4 bits free reserved set to 0
|
35
|
+
#define ANT_EXT_MESG_BIFIELD_EXTENSION ((UCHAR)0x01)
|
36
|
+
|
37
|
+
// extended message input bitfield defines
|
38
|
+
#define ANT_EXT_MESG_BITFIELD_OVERWRITE_SHARED_ADR ((UCHAR)0x10)
|
39
|
+
#define ANT_EXT_MESG_BITFIELD_TRANSMISSION_TYPE ((UCHAR)0x08)
|
40
|
+
|
41
|
+
|
42
|
+
//////////////////////////////////////////////
|
43
|
+
// ANT Library Config
|
44
|
+
//////////////////////////////////////////////
|
45
|
+
#define ANT_LIB_CONFIG_MASK_ALL ((UCHAR)0xFF)
|
46
|
+
#define ANT_LIB_CONFIG_RADIO_CONFIG_ALWAYS ((UCHAR)0x01)
|
47
|
+
#define ANT_LIB_CONFIG_MESG_OUT_INC_TIME_STAMP ((UCHAR)0x20)
|
48
|
+
#define ANT_LIB_CONFIG_MESG_OUT_INC_RSSI ((UCHAR)0x40)
|
49
|
+
#define ANT_LIB_CONFIG_MESG_OUT_INC_DEVICE_ID ((UCHAR)0x80)
|
50
|
+
|
51
|
+
//////////////////////////////////////////////
|
52
|
+
// ID Definitions
|
53
|
+
//////////////////////////////////////////////
|
54
|
+
#define ANT_ID_SIZE ((UCHAR)4)
|
55
|
+
#define ANT_ID_TRANS_TYPE_OFFSET ((UCHAR)3)
|
56
|
+
#define ANT_ID_DEVICE_TYPE_OFFSET ((UCHAR)2)
|
57
|
+
#define ANT_ID_DEVICE_NUMBER_HIGH_OFFSET ((UCHAR)1)
|
58
|
+
#define ANT_ID_DEVICE_NUMBER_LOW_OFFSET ((UCHAR)0)
|
59
|
+
#define ANT_ID_DEVICE_TYPE_PAIRING_FLAG ((UCHAR)0x80)
|
60
|
+
|
61
|
+
#define ANT_TRANS_TYPE_SHARED_ADDR_MASK ((UCHAR)0x03)
|
62
|
+
#define ANT_TRANS_TYPE_1_BYTE_SHARED_ADDRESS ((UCHAR)0x02)
|
63
|
+
#define ANT_TRANS_TYPE_2_BYTE_SHARED_ADDRESS ((UCHAR)0x03)
|
64
|
+
|
65
|
+
|
66
|
+
//////////////////////////////////////////////
|
67
|
+
// Assign Channel Parameters
|
68
|
+
//////////////////////////////////////////////
|
69
|
+
#define PARAMETER_RX_NOT_TX ((UCHAR)0x00)
|
70
|
+
#define PARAMETER_TX_NOT_RX ((UCHAR)0x10)
|
71
|
+
#define PARAMETER_SHARED_CHANNEL ((UCHAR)0x20)
|
72
|
+
#define PARAMETER_NO_TX_GUARD_BAND ((UCHAR)0x40)
|
73
|
+
#define PARAMETER_ALWAYS_RX_WILD_CARD_SEARCH_ID ((UCHAR)0x40) //Pre-AP2
|
74
|
+
#define PARAMETER_RX_ONLY ((UCHAR)0x40)
|
75
|
+
|
76
|
+
//////////////////////////////////////////////
|
77
|
+
// Ext. Assign Channel Parameters
|
78
|
+
//////////////////////////////////////////////
|
79
|
+
#define EXT_PARAM_ALWAYS_SEARCH ((UCHAR)0x01)
|
80
|
+
#define EXT_PARAM_FREQUENCY_AGILITY ((UCHAR)0x04)
|
81
|
+
|
82
|
+
//////////////////////////////////////////////
|
83
|
+
// Radio TX Power Definitions
|
84
|
+
//////////////////////////////////////////////
|
85
|
+
#define RADIO_TX_POWER_LVL_MASK ((UCHAR)0x03)
|
86
|
+
|
87
|
+
#define RADIO_TX_POWER_LVL_0 ((UCHAR)0x00) //(formerly: RADIO_TX_POWER_MINUS20DB) lowest
|
88
|
+
#define RADIO_TX_POWER_LVL_1 ((UCHAR)0x01) //(formerly: RADIO_TX_POWER_MINUS10DB)
|
89
|
+
#define RADIO_TX_POWER_LVL_2 ((UCHAR)0x02) //(formerly: RADIO_TX_POWER_MINUS5DB)
|
90
|
+
#define RADIO_TX_POWER_LVL_3 ((UCHAR)0x03) //(formerly: RADIO_TX_POWER_0DB) highest
|
91
|
+
|
92
|
+
//////////////////////////////////////////////
|
93
|
+
// Channel Status
|
94
|
+
//////////////////////////////////////////////
|
95
|
+
#define STATUS_CHANNEL_STATE_MASK ((UCHAR)0x03)
|
96
|
+
#define STATUS_UNASSIGNED_CHANNEL ((UCHAR)0x00)
|
97
|
+
#define STATUS_ASSIGNED_CHANNEL ((UCHAR)0x01)
|
98
|
+
#define STATUS_SEARCHING_CHANNEL ((UCHAR)0x02)
|
99
|
+
#define STATUS_TRACKING_CHANNEL ((UCHAR)0x03)
|
100
|
+
|
101
|
+
//////////////////////////////////////////////
|
102
|
+
// Standard capabilities defines
|
103
|
+
//////////////////////////////////////////////
|
104
|
+
#define CAPABILITIES_NO_RX_CHANNELS ((UCHAR)0x01)
|
105
|
+
#define CAPABILITIES_NO_TX_CHANNELS ((UCHAR)0x02)
|
106
|
+
#define CAPABILITIES_NO_RX_MESSAGES ((UCHAR)0x04)
|
107
|
+
#define CAPABILITIES_NO_TX_MESSAGES ((UCHAR)0x08)
|
108
|
+
#define CAPABILITIES_NO_ACKD_MESSAGES ((UCHAR)0x10)
|
109
|
+
#define CAPABILITIES_NO_BURST_TRANSFER ((UCHAR)0x20)
|
110
|
+
|
111
|
+
//////////////////////////////////////////////
|
112
|
+
// Advanced capabilities defines
|
113
|
+
//////////////////////////////////////////////
|
114
|
+
#define CAPABILITIES_OVERUN_UNDERRUN ((UCHAR)0x01) // Support for this functionality has been dropped
|
115
|
+
#define CAPABILITIES_NETWORK_ENABLED ((UCHAR)0x02)
|
116
|
+
#define CAPABILITIES_AP1_VERSION_2 ((UCHAR)0x04) // This Version of the AP1 does not support transmit and only had a limited release
|
117
|
+
#define CAPABILITIES_SERIAL_NUMBER_ENABLED ((UCHAR)0x08)
|
118
|
+
#define CAPABILITIES_PER_CHANNEL_TX_POWER_ENABLED ((UCHAR)0x10)
|
119
|
+
#define CAPABILITIES_LOW_PRIORITY_SEARCH_ENABLED ((UCHAR)0x20)
|
120
|
+
#define CAPABILITIES_SCRIPT_ENABLED ((UCHAR)0x40)
|
121
|
+
#define CAPABILITIES_SEARCH_LIST_ENABLED ((UCHAR)0x80)
|
122
|
+
|
123
|
+
//////////////////////////////////////////////
|
124
|
+
// Advanced capabilities 2 defines
|
125
|
+
//////////////////////////////////////////////
|
126
|
+
#define CAPABILITIES_LED_ENABLED ((UCHAR)0x01)
|
127
|
+
#define CAPABILITIES_EXT_MESSAGE_ENABLED ((UCHAR)0x02)
|
128
|
+
#define CAPABILITIES_SCAN_MODE_ENABLED ((UCHAR)0x04)
|
129
|
+
#define CAPABILITIES_RESERVED ((UCHAR)0x08)
|
130
|
+
#define CAPABILITIES_PROX_SEARCH_ENABLED ((UCHAR)0x10)
|
131
|
+
#define CAPABILITIES_EXT_ASSIGN_ENABLED ((UCHAR)0x20)
|
132
|
+
#define CAPABILITIES_FS_ANTFS_ENABLED ((UCHAR)0x40)
|
133
|
+
#define CAPABILITIES_FIT1_ENABLED ((UCHAR)0x80)
|
134
|
+
|
135
|
+
//////////////////////////////////////////////
|
136
|
+
// Advanced capabilities 3 defines
|
137
|
+
//////////////////////////////////////////////
|
138
|
+
#define CAPABILITIES_ADVANCED_BURST_ENABLED ((UCHAR)0x01)
|
139
|
+
#define CAPABILITIES_EVENT_BUFFERING_ENABLED ((UCHAR)0x02)
|
140
|
+
#define CAPABILITIES_EVENT_FILTERING_ENABLED ((UCHAR)0x04)
|
141
|
+
#define CAPABILITIES_HIGH_DUTY_SEARCH_MODE_ENABLED ((UCHAR)0x08)
|
142
|
+
#define CAPABILITIES_ACTIVE_SEARCH_SHARING_MODE_ENABLED ((UCHAR)0x10)
|
143
|
+
#define CAPABILITIES_SELECTIVE_DATA_UPDATE_ENABLED ((UCHAR)0x40)
|
144
|
+
#define CAPABILITIES_ENCRYPTED_CHANNEL_ENABLED ((UCHAR)0x80)
|
145
|
+
|
146
|
+
|
147
|
+
//////////////////////////////////////////////
|
148
|
+
// Burst Message Sequence
|
149
|
+
//////////////////////////////////////////////
|
150
|
+
#define CHANNEL_NUMBER_MASK ((UCHAR)0x1F)
|
151
|
+
#define SEQUENCE_NUMBER_MASK ((UCHAR)0xE0)
|
152
|
+
#define SEQUENCE_NUMBER_ROLLOVER ((UCHAR)0x60)
|
153
|
+
#define SEQUENCE_FIRST_MESSAGE ((UCHAR)0x00)
|
154
|
+
#define SEQUENCE_LAST_MESSAGE ((UCHAR)0x80)
|
155
|
+
#define SEQUENCE_NUMBER_INC ((UCHAR)0x20)
|
156
|
+
|
157
|
+
//////////////////////////////////////////////
|
158
|
+
// Advanced Burst Config defines
|
159
|
+
//////////////////////////////////////////////
|
160
|
+
#define ADV_BURST_CONFIG_FREQ_HOP ((ULONG)0x00000001)
|
161
|
+
|
162
|
+
//////////////////////////////////////////////
|
163
|
+
// Extended Message ID Mask
|
164
|
+
//////////////////////////////////////////////
|
165
|
+
#define MSG_EXT_ID_MASK ((UCHAR)0xE0)
|
166
|
+
|
167
|
+
//////////////////////////////////////////////
|
168
|
+
// Control Message Flags
|
169
|
+
//////////////////////////////////////////////
|
170
|
+
#define BROADCAST_CONTROL_BYTE ((UCHAR)0x00)
|
171
|
+
#define ACKNOWLEDGED_CONTROL_BYTE ((UCHAR)0xA0)
|
172
|
+
|
173
|
+
//////////////////////////////////////////////
|
174
|
+
// Response / Event Codes
|
175
|
+
//////////////////////////////////////////////
|
176
|
+
#define RESPONSE_NO_ERROR ((UCHAR)0x00)
|
177
|
+
#define NO_EVENT ((UCHAR)0x00)
|
178
|
+
|
179
|
+
#define EVENT_RX_SEARCH_TIMEOUT ((UCHAR)0x01)
|
180
|
+
#define EVENT_RX_FAIL ((UCHAR)0x02)
|
181
|
+
#define EVENT_TX ((UCHAR)0x03)
|
182
|
+
#define EVENT_TRANSFER_RX_FAILED ((UCHAR)0x04)
|
183
|
+
#define EVENT_TRANSFER_TX_COMPLETED ((UCHAR)0x05)
|
184
|
+
#define EVENT_TRANSFER_TX_FAILED ((UCHAR)0x06)
|
185
|
+
#define EVENT_CHANNEL_CLOSED ((UCHAR)0x07)
|
186
|
+
#define EVENT_RX_FAIL_GO_TO_SEARCH ((UCHAR)0x08)
|
187
|
+
#define EVENT_CHANNEL_COLLISION ((UCHAR)0x09)
|
188
|
+
#define EVENT_TRANSFER_TX_START ((UCHAR)0x0A) // a pending transmit transfer has begun
|
189
|
+
|
190
|
+
#define EVENT_CHANNEL_ACTIVE ((UCHAR)0x0F)
|
191
|
+
|
192
|
+
#define EVENT_TRANSFER_TX_NEXT_MESSAGE ((UCHAR)0x11) // only enabled in FIT1
|
193
|
+
|
194
|
+
#define CHANNEL_IN_WRONG_STATE ((UCHAR)0x15) // returned on attempt to perform an action from the wrong channel state
|
195
|
+
#define CHANNEL_NOT_OPENED ((UCHAR)0x16) // returned on attempt to communicate on a channel that is not open
|
196
|
+
#define CHANNEL_ID_NOT_SET ((UCHAR)0x18) // returned on attempt to open a channel without setting the channel ID
|
197
|
+
#define CLOSE_ALL_CHANNELS ((UCHAR)0x19) // returned when attempting to start scanning mode, when channels are still open
|
198
|
+
|
199
|
+
#define TRANSFER_IN_PROGRESS ((UCHAR)0x1F) // returned on attempt to communicate on a channel with a TX transfer in progress
|
200
|
+
#define TRANSFER_SEQUENCE_NUMBER_ERROR ((UCHAR)0x20) // returned when sequence number is out of order on a Burst transfer
|
201
|
+
#define TRANSFER_IN_ERROR ((UCHAR)0x21)
|
202
|
+
#define TRANSFER_BUSY ((UCHAR)0x22)
|
203
|
+
|
204
|
+
#define INVALID_MESSAGE_CRC ((UCHAR)0x26) // returned if there is a framing error on an incomming message
|
205
|
+
#define MESSAGE_SIZE_EXCEEDS_LIMIT ((UCHAR)0x27) // returned if a data message is provided that is too large
|
206
|
+
#define INVALID_MESSAGE ((UCHAR)0x28) // returned when the message has an invalid parameter
|
207
|
+
#define INVALID_NETWORK_NUMBER ((UCHAR)0x29) // returned when an invalid network number is provided
|
208
|
+
#define INVALID_LIST_ID ((UCHAR)0x30) // returned when the provided list ID or size exceeds the limit
|
209
|
+
#define INVALID_SCAN_TX_CHANNEL ((UCHAR)0x31) // returned when attempting to transmit on channel 0 when in scan mode
|
210
|
+
#define INVALID_PARAMETER_PROVIDED ((UCHAR)0x33) // returned when an invalid parameter is specified in a configuration message
|
211
|
+
|
212
|
+
#define EVENT_SERIAL_QUE_OVERFLOW ((UCHAR)0x34)
|
213
|
+
#define EVENT_QUE_OVERFLOW ((UCHAR)0x35) // ANT event que has overflowed and lost 1 or more events
|
214
|
+
|
215
|
+
#define EVENT_CLK_ERROR ((UCHAR)0x36) // debug event for XOSC16M on LE1
|
216
|
+
#define EVENT_STATE_OVERRUN ((UCHAR)0x37)
|
217
|
+
|
218
|
+
#define EVENT_ENCRYPT_NEGOTIATION_SUCCESS ((UCHAR)0x38) // ANT stack generated event when connecting to an encrypted channel has succeeded
|
219
|
+
#define EVENT_ENCRYPT_NEGOTIATION_FAIL ((UCHAR)0x39) // ANT stack generated event when connecting to an encrypted channel has failed
|
220
|
+
|
221
|
+
#define SCRIPT_FULL_ERROR ((UCHAR)0x40) // error writing to script, memory is full
|
222
|
+
#define SCRIPT_WRITE_ERROR ((UCHAR)0x41) // error writing to script, bytes not written correctly
|
223
|
+
#define SCRIPT_INVALID_PAGE_ERROR ((UCHAR)0x42) // error accessing script page
|
224
|
+
#define SCRIPT_LOCKED_ERROR ((UCHAR)0x43) // the scripts are locked and can't be dumped
|
225
|
+
|
226
|
+
#define NO_RESPONSE_MESSAGE ((UCHAR)0x50) // returned to the Command_SerialMessageProcess function, so no reply message is generated
|
227
|
+
#define RETURN_TO_MFG ((UCHAR)0x51) // default return to any mesg when the module determines that the mfg procedure has not been fully completed
|
228
|
+
|
229
|
+
#define FIT_ACTIVE_SEARCH_TIMEOUT ((UCHAR)0x60) // Fit1 only event added for timeout of the pairing state after the Fit module becomes active
|
230
|
+
#define FIT_WATCH_PAIR ((UCHAR)0x61) // Fit1 only
|
231
|
+
#define FIT_WATCH_UNPAIR ((UCHAR)0x62) // Fit1 only
|
232
|
+
|
233
|
+
#define USB_STRING_WRITE_FAIL ((UCHAR)0x70)
|
234
|
+
|
235
|
+
// Internal only events below this point
|
236
|
+
#define INTERNAL_ONLY_EVENTS ((UCHAR)0x80)
|
237
|
+
#define EVENT_RX ((UCHAR)0x80) // INTERNAL: Event for a receive message
|
238
|
+
#define EVENT_NEW_CHANNEL ((UCHAR)0x81) // INTERNAL: EVENT for a new active channel
|
239
|
+
#define EVENT_PASS_THRU ((UCHAR)0x82) // INTERNAL: Event to allow an upper stack events to pass through lower stacks
|
240
|
+
|
241
|
+
#define EVENT_BLOCKED ((UCHAR)0xFF) // INTERNAL: Event to replace any event we do not wish to go out, will also zero the size of the Tx message
|
242
|
+
|
243
|
+
///////////////////////////////////////////////////////
|
244
|
+
// Script Command Codes
|
245
|
+
///////////////////////////////////////////////////////
|
246
|
+
#define SCRIPT_CMD_FORMAT ((UCHAR)0x00)
|
247
|
+
#define SCRIPT_CMD_DUMP ((UCHAR)0x01)
|
248
|
+
#define SCRIPT_CMD_SET_DEFAULT_SECTOR ((UCHAR)0x02)
|
249
|
+
#define SCRIPT_CMD_END_SECTOR ((UCHAR)0x03)
|
250
|
+
#define SCRIPT_CMD_END_DUMP ((UCHAR)0x04)
|
251
|
+
#define SCRIPT_CMD_LOCK ((UCHAR)0x05)
|
252
|
+
|
253
|
+
///////////////////////////////////////////////////////
|
254
|
+
// USB Descriptor Strings
|
255
|
+
///////////////////////////////////////////////////////
|
256
|
+
#define USB_DESCRIPTOR_VID_PID ((UCHAR) 0x00)
|
257
|
+
#define USB_DESCRIPTOR_MANUFACTURER_STRING ((UCHAR) 0x01)
|
258
|
+
#define USB_DESCRIPTOR_DEVICE_STRING ((UCHAR) 0x02)
|
259
|
+
#define USB_DESCRIPTOR_SERIAL_STRING ((UCHAR) 0x03)
|
260
|
+
|
261
|
+
///////////////////////////////////////////////////////
|
262
|
+
// Reset Mesg Codes
|
263
|
+
///////////////////////////////////////////////////////
|
264
|
+
#define RESET_FLAGS_MASK ((UCHAR)0xE0)
|
265
|
+
#define RESET_SUSPEND ((UCHAR)0x80) // this must follow bitfield def
|
266
|
+
#define RESET_SYNC ((UCHAR)0x40) // this must follow bitfield def
|
267
|
+
#define RESET_CMD ((UCHAR)0x20) // this must follow bitfield def
|
268
|
+
#define RESET_WDT ((UCHAR)0x02)
|
269
|
+
#define RESET_RST ((UCHAR)0x01)
|
270
|
+
#define RESET_POR ((UCHAR)0x00)
|
271
|
+
|
272
|
+
//////////////////////////////////////////////
|
273
|
+
// PC Application Event Codes
|
274
|
+
/////////////////////////////////////// ///////
|
275
|
+
//NOTE: These events are not generated by the embedded ANT module
|
276
|
+
|
277
|
+
#define EVENT_RX_BROADCAST ((UCHAR)0x9A) // returned when module receives broadcast data
|
278
|
+
#define EVENT_RX_ACKNOWLEDGED ((UCHAR)0x9B) // returned when module receives acknowledged data
|
279
|
+
#define EVENT_RX_BURST_PACKET ((UCHAR)0x9C) // returned when module receives burst data
|
280
|
+
|
281
|
+
#define EVENT_RX_EXT_BROADCAST ((UCHAR)0x9D) // returned when module receives broadcast data
|
282
|
+
#define EVENT_RX_EXT_ACKNOWLEDGED ((UCHAR)0x9E) // returned when module receives acknowledged data
|
283
|
+
#define EVENT_RX_EXT_BURST_PACKET ((UCHAR)0x9F) // returned when module receives burst data
|
284
|
+
|
285
|
+
#define EVENT_RX_RSSI_BROADCAST ((UCHAR)0xA0) // returned when module receives broadcast data
|
286
|
+
#define EVENT_RX_RSSI_ACKNOWLEDGED ((UCHAR)0xA1) // returned when module receives acknowledged data
|
287
|
+
#define EVENT_RX_RSSI_BURST_PACKET ((UCHAR)0xA2) // returned when module receives burst data
|
288
|
+
|
289
|
+
#define EVENT_RX_FLAG_BROADCAST ((UCHAR)0xA3) // returned when module receives broadcast data with flag attached
|
290
|
+
#define EVENT_RX_FLAG_ACKNOWLEDGED ((UCHAR)0xA4) // returned when module receives acknowledged data with flag attached
|
291
|
+
#define EVENT_RX_FLAG_BURST_PACKET ((UCHAR)0xA5) // returned when module receives burst data with flag attached
|
292
|
+
|
293
|
+
//////////////////////////////////////////////
|
294
|
+
// Integrated ANT-FS Client Response/Event Codes
|
295
|
+
//////////////////////////////////////////////
|
296
|
+
#define MESG_FS_ANTFS_EVENT_PAIR_REQUEST ((UCHAR)0x01)
|
297
|
+
#define MESG_FS_ANTFS_EVENT_DOWNLOAD_START ((UCHAR)0x02)
|
298
|
+
#define MESG_FS_ANTFS_EVENT_UPLOAD_START ((UCHAR)0x03)
|
299
|
+
#define MESG_FS_ANTFS_EVENT_DOWNLOAD_COMPLETE ((UCHAR)0x04)
|
300
|
+
#define MESG_FS_ANTFS_EVENT_UPLOAD_COMPLETE ((UCHAR)0x05)
|
301
|
+
#define MESG_FS_ANTFS_EVENT_ERASE_COMPLETE ((UCHAR)0x06)
|
302
|
+
#define MESG_FS_ANTFS_EVENT_LINK_STATE ((UCHAR)0x07)
|
303
|
+
#define MESG_FS_ANTFS_EVENT_AUTH_STATE ((UCHAR)0x08)
|
304
|
+
#define MESG_FS_ANTFS_EVENT_TRANSPORT_STATE ((UCHAR)0x09)
|
305
|
+
#define MESG_FS_ANTFS_EVENT_CMD_RECEIVED ((UCHAR)0x0A)
|
306
|
+
#define MESG_FS_ANTFS_EVENT_CMD_PROCESSED ((UCHAR)0x0B)
|
307
|
+
|
308
|
+
#define FS_NO_ERROR_RESPONSE ((UCHAR) 0x00)
|
309
|
+
#define FS_MEMORY_UNFORMATTED_ERROR_RESPONSE ((UCHAR) 0x01)
|
310
|
+
#define FS_MEMORY_NO_FREE_SECTORS_ERROR_RESPONSE ((UCHAR) 0x02)
|
311
|
+
#define FS_MEMORY_READ_ERROR_RESPONSE ((UCHAR) 0x03)
|
312
|
+
#define FS_MEMORY_WRITE_ERROR_RESPONSE ((UCHAR) 0x04)
|
313
|
+
#define FS_MEMORY_ERASE_ERROR_RESPONSE ((UCHAR) 0x05)
|
314
|
+
#define FS_TOO_MANY_FILES_OPEN_RESPONSE ((UCHAR) 0x06)
|
315
|
+
#define FS_FILE_INDEX_INVALID_ERROR_RESPONSE ((UCHAR) 0x07)
|
316
|
+
#define FS_FILE_INDEX_EXISTS_ERROR_RESPONSE ((UCHAR) 0x08)
|
317
|
+
#define FS_AUTO_INDEX_FAILED_TRY_AGAIN_ERROR_RESPONSE ((UCHAR) 0x09)
|
318
|
+
#define FS_FILE_ALREADY_OPEN_ERROR_RESPONSE ((UCHAR) 0x0A)
|
319
|
+
#define FS_FILE_NOT_OPEN_ERROR_RESPONSE ((UCHAR) 0x0B)
|
320
|
+
#define FS_DIR_CORRUPTED_ERROR_RESPONSE ((UCHAR) 0x0C)
|
321
|
+
#define FS_INVALID_OFFSET_ERROR_RESPONSE ((UCHAR) 0x0D)
|
322
|
+
#define FS_BAD_PERMISSIONS_ERROR_RESPONSE ((UCHAR) 0x0E)
|
323
|
+
#define FS_EOF_REACHED_ERROR_RESPONSE ((UCHAR) 0x0F)
|
324
|
+
#define FS_INVALID_FILE_HANDLE_ERROR_RESPONSE ((UCHAR) 0x10)
|
325
|
+
|
326
|
+
#define FS_CRYPTO_OPEN_PERMISSION_ERROR_RESPONSE ((UCHAR) 0x32)
|
327
|
+
#define FS_CRYPTO_HANDLE_ALREADY_IN_USE_RESPONSE ((UCHAR) 0x33)
|
328
|
+
#define FS_CRYPTO_USER_KEY_NOT_SPECIFIED_RESPONSE ((UCHAR) 0x34)
|
329
|
+
#define FS_CRYPTO_USER_KEY_ADD_ERROR_RESPONSE ((UCHAR) 0x35)
|
330
|
+
#define FS_CRYPTO_USER_KEY_FETCH_ERROR_RESPONSE ((UCHAR) 0x36)
|
331
|
+
#define FS_CRYPTO_IVNONE_READ_ERROR_RESPONSE ((UCHAR) 0x37)
|
332
|
+
#define FS_CRYPTO_BLOCK_OFFSET_ERROR_RESPONSE ((UCHAR) 0x38)
|
333
|
+
#define FS_CRYPTO_BLOCK_SIZE_ERROR_RESPONSE ((UCHAR) 0x39)
|
334
|
+
#define FS_CRYPTO_CFG_TYPE_NOT_SUPPORTED_RESPONSE ((UCHAR) 0x40)
|
335
|
+
|
336
|
+
#define FS_FIT_FILE_HEADER_ERROR_RESPONSE ((UCHAR) 0x64)
|
337
|
+
#define FS_FIT_FILE_SIZE_INTEGRITY_ERROR_RESPONSE ((UCHAR) 0x65)
|
338
|
+
#define FS_FIT_FILE_CRC_ERROR_RESPONSE ((UCHAR) 0x66)
|
339
|
+
#define FS_FIT_FILE_CHECK_PERMISSION_ERROR_RESPONSE ((UCHAR) 0x67)
|
340
|
+
#define FS_FIT_FILE_CHECK_FILE_TYPE_ERROR_RESPONSE ((UCHAR) 0x68)
|
341
|
+
#define FS_FIT_FILE_OP_ABORT_ERROR_RESPONSE ((UCHAR) 0x69)
|
342
|
+
|
343
|
+
//////////////////////////////////////////////
|
344
|
+
// ANT EVENT return structure
|
345
|
+
//////////////////////////////////////////////
|
346
|
+
typedef struct
|
347
|
+
{
|
348
|
+
UCHAR ucChannel;
|
349
|
+
UCHAR ucEvent;
|
350
|
+
|
351
|
+
} ANT_EVENT;
|
352
|
+
|
353
|
+
#endif // !ANTDEFINES_H
|
354
|
+
|
355
|
+
|