1 #ifndef __BCA_ANTINTERFACE_H__
2 #define __BCA_ANTINTERFACE_H__
6 #define ANT_NETWORK_KEY {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,}
7 #define ANT_NETWORK_NUM 0 // 0: 1:ANT FS 2:ANT Plus
12 #define PARAMETER_RX_NOT_TX ((unsigned char)0x00)
13 #define PARAMETER_TX_NOT_RX ((unsigned char)0x10)
14 #define PARAMETER_SHARED_RX_CHANNEL ((unsigned char)0x20)
15 #define PARAMETER_SHARED_TX_CHANNEL ((unsigned char)0x30)
16 #define PARAMETER_RX_ONLY ((unsigned char)0x40)
17 #define PARAMETER_TX_ONLY ((unsigned char)0x50)
19 #define MESG_TX_SYNC ((unsigned char)0xA4)
20 #define MESG_RX_SYNC ((unsigned char)0xA5)
21 #define MESG_SYNC_SIZE ((unsigned char)1)
22 #define MESG_SIZE_SIZE ((unsigned char)1)
23 #define MESG_ID_SIZE ((unsigned char)1)
24 #define MESG_CHANNEL_NUM_SIZE ((unsigned char)1)
25 #define MESG_EXT_MESG_BF_SIZE ((unsigned char)1) // NOTE: this could increase in the future
26 #define MESG_CHECKSUM_SIZE ((unsigned char)1)
27 #define MESG_DATA_SIZE ((unsigned char)9)
30 #define MESG_ANT_MAX_PAYLOAD_SIZE ANT_STANDARD_DATA_PAYLOAD_SIZE
32 #define MESG_MAX_EXT_DATA_SIZE (ANT_EXT_MESG_DEVICE_ID_FIELD_SIZE + 4 + 2) // ANT device ID (4 bytes) + (4 bytes) + (2 bytes)
34 #define MESG_MAX_DATA_SIZE (MESG_ANT_MAX_PAYLOAD_SIZE + MESG_EXT_MESG_BF_SIZE + MESG_MAX_EXT_DATA_SIZE) // ANT data payload (8 bytes) + extended bitfield (1 byte) + extended data (10 bytes)
35 #define MESG_MAX_SIZE_VALUE (MESG_MAX_DATA_SIZE + MESG_CHANNEL_NUM_SIZE) // this is the maximum value that the serial message size value is allowed to be
36 #define MESG_BUFFER_SIZE (MESG_SIZE_SIZE + MESG_ID_SIZE + MESG_CHANNEL_NUM_SIZE + MESG_MAX_DATA_SIZE + MESG_CHECKSUM_SIZE)
37 #define MESG_FRAMED_SIZE (MESG_ID_SIZE + MESG_CHANNEL_NUM_SIZE + MESG_MAX_DATA_SIZE)
38 #define MESG_HEADER_SIZE (MESG_SYNC_SIZE + MESG_SIZE_SIZE + MESG_ID_SIZE)
39 #define MESG_FRAME_SIZE (MESG_HEADER_SIZE + MESG_CHECKSUM_SIZE)
40 #define MESG_MAX_SIZE (MESG_MAX_DATA_SIZE + MESG_FRAME_SIZE)
42 #define MESG_SIZE_OFFSET (MESG_SYNC_SIZE)
43 #define MESG_ID_OFFSET (MESG_SYNC_SIZE + MESG_SIZE_SIZE)
44 #define MESG_DATA_OFFSET (MESG_HEADER_SIZE)
45 #define MESG_RECOMMENDED_BUFFER_SIZE ((unsigned char) 64) // This is the recommended size for serial message buffers if there are no RAM restrictions on the system
50 #define MESG_INVALID_ID ((unsigned char)0x00)
51 #define MESG_EVENT_ID ((unsigned char)0x01)
53 #define MESG_VERSION_ID ((unsigned char)0x3E)
54 #define MESG_RESPONSE_EVENT_ID ((unsigned char)0x40)
56 #define MESG_UNASSIGN_CHANNEL_ID ((unsigned char)0x41)
57 #define MESG_ASSIGN_CHANNEL_ID ((unsigned char)0x42)
58 #define MESG_CHANNEL_MESG_PERIOD_ID ((unsigned char)0x43)
59 #define MESG_CHANNEL_SEARCH_TIMEOUT_ID ((unsigned char)0x44)
60 #define MESG_CHANNEL_RADIO_FREQ_ID ((unsigned char)0x45)
61 #define MESG_NETWORK_KEY_ID ((unsigned char)0x46)
62 #define MESG_RADIO_TX_POWER_ID ((unsigned char)0x47)
63 #define MESG_RADIO_CW_MODE_ID ((unsigned char)0x48)
64 #define MESG_SYSTEM_RESET_ID ((unsigned char)0x4A)
65 #define MESG_OPEN_CHANNEL_ID ((unsigned char)0x4B)
66 #define MESG_CLOSE_CHANNEL_ID ((unsigned char)0x4C)
67 #define MESG_REQUEST_ID ((unsigned char)0x4D)
69 #define MESG_BROADCAST_DATA_ID ((unsigned char)0x4E)
70 #define MESG_ACKNOWLEDGED_DATA_ID ((unsigned char)0x4F)
71 #define MESG_BURST_DATA_ID ((unsigned char)0x50)
73 #define MESG_CHANNEL_ID_ID ((unsigned char)0x51)
74 #define MESG_CHANNEL_STATUS_ID ((unsigned char)0x52)
75 #define MESG_RADIO_CW_INIT_ID ((unsigned char)0x53)
76 #define MESG_CAPABILITIES_ID ((unsigned char)0x54)
78 #define MESG_STACKLIMIT_ID ((unsigned char)0x55)
80 #define MESG_SCRIPT_DATA_ID ((unsigned char)0x56)
81 #define MESG_SCRIPT_CMD_ID ((unsigned char)0x57)
83 #define MESG_ID_LIST_ADD_ID ((unsigned char)0x59)
84 #define MESG_ID_LIST_CONFIG_ID ((unsigned char)0x5A)
85 #define MESG_OPEN_RX_SCAN_ID ((unsigned char)0x5B)
87 #define MESG_CHANNEL_RADIO_TX_POWER_ID ((unsigned char)0x60)
88 #define MESG_GET_SERIAL_NUM_ID ((unsigned char)0x61)
89 #define MESG_GET_TEMP_CAL_ID ((unsigned char)0x62)
90 #define MESG_SET_LP_SEARCH_TIMEOUT_ID ((unsigned char)0x63)
91 #define MESG_SET_TX_SEARCH_ON_NEXT_ID ((unsigned char)0x64)
92 #define MESG_SERIAL_NUM_SET_CHANNEL_ID_ID ((unsigned char)0x65)
93 #define MESG_RX_EXT_MESGS_ENABLE_ID ((unsigned char)0x66)
94 #define MESG_RADIO_CONFIG_ALWAYS_ID ((unsigned char)0x67)
95 #define MESG_ENABLE_LED_FLASH_ID ((unsigned char)0x68)
96 #define MESG_XTAL_ENABLE_ID ((unsigned char)0x6D)
97 #define MESG_STARTUP_MESG_ID ((unsigned char)0x6F)
98 #define MESG_AUTO_FREQ_CONFIG_ID ((unsigned char)0x70)
99 #define MESG_PROX_SEARCH_CONFIG_ID ((unsigned char)0x71)
101 #define FLG_DEVICE_INFO ((unsigned char)0x80)
102 #define FLG_RSSI ((unsigned char)0x40)
117 #define ANT_STANDARD_DATA_PAYLOAD_SIZE ((unsigned char)8)
118 #define ANT_EXT_MESG_DEVICE_ID_FIELD_SIZE ((unsigned char)4)
130 int ANT_UnAssginChannel(
unsigned char channel_number);
131 int ANT_AssginChannel(
unsigned char channel_number,
132 unsigned char channel_type,
133 unsigned char network_number);
134 int ANT_SetChannelId(
unsigned char channel_number,
135 unsigned short device_number,
136 unsigned char device_type_id,
137 unsigned char trans_type);
138 int ANT_SetChannelPeriod(
unsigned char channel_number,
139 unsigned short messaging_period);
140 int ANT_SetChannelSearchTimeout(
unsigned char channel_number,
141 unsigned char search_timeout);
142 int ANT_SetChannelRFFreq(
unsigned char channel_number,
unsigned char rf_freqency);
143 int ANT_SetNetworkKey(
unsigned char network_number,
unsigned char key[8]);
144 int ANT_SetTransmitPower(
unsigned char tx_power);
145 int ANT_AddChannelID(
unsigned char channel_number,
146 unsigned short device_number,
147 unsigned char device_type_id,
148 unsigned char trans_type,
149 unsigned char list_index);
150 int ANT_ConfigList(
unsigned char channel_number,
151 unsigned char list_size,
152 unsigned char exclude);
153 int ANT_SetChannelTxPower(
unsigned char channel_number,
154 unsigned char tx_power);
156 int ANT_SetLowPriorityChannelSearchTimeout(
unsigned char channel_number,
157 unsigned char search_timeout);
159 int ANT_SetSerialNumChannelID(
unsigned char channel_number,
160 unsigned char device_type_id,
161 unsigned char trans_type);
163 int ANT_RxExtMessageEnable(
bool enable);
164 int ANT_EnableLED(
bool enable);
166 int ANT_ResetSystem();
167 int ANT_OpenChannel(
unsigned char channel_number);
168 int ANT_CloseChannel(
unsigned char channel_number);
169 int ANT_OpenRxScanMode();
170 int ANT_RequestMessage(
unsigned char channel_number,
unsigned char message_id);
172 int ANT_SendBroadcastData(
unsigned char channel_number,
unsigned char* data,
unsigned char length);
173 int ANT_SendAcknowledgeData(
unsigned char channel_number,
unsigned char* data,
unsigned char length);
174 int ANT_SendBurstTransferPacket(
unsigned char channel_number,
unsigned char* data,
unsigned char length);
176 int ANT_LibConfig(
unsigned char config);
178 int ANT_Nap(
int msec);
182 bool channelCheck(
unsigned char channel);
183 void setShortData(
unsigned char* dst,
unsigned short* src);
188 unsigned char _data[DATA_SIZE];
193 #endif // __BCA_ANTINTERFACE_H__