Skip to content

Commit ff60be8

Browse files
committed
Add start of Tx example
1 parent 00ee22e commit ff60be8

File tree

2 files changed

+172
-0
lines changed

2 files changed

+172
-0
lines changed

.travis.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ cache:
3131
env:
3232
- PLATFORMIO_CI_SRC=examples/OpenChannel/OpenChannel.ino
3333
- PLATFORMIO_CI_SRC=examples/AntVersion/AntVersion.ino
34+
- PLATFORMIO_CI_SRC=examples/TxCounter/TxCounter.ino
3435

3536
install:
3637
- pip install -U platformio

examples/TxCounter/TxCounter.ino

Lines changed: 171 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,171 @@
1+
/***********************************
2+
* Ant Open Channel Example
3+
*
4+
* Opens a channel with the public
5+
* network key and transmits data
6+
* increments in value every second
7+
*
8+
* Author Curtis Malainey
9+
************************************/
10+
11+
#include "ANT.h"
12+
#define BAUD_RATE 9600
13+
Ant ant = Ant();
14+
15+
void parseMessage();
16+
void parseEventMessage(uint8_t code);
17+
18+
void setup()
19+
{
20+
AssignChannel ac;
21+
ResetSystem rs;
22+
SetNetworkKey snk;
23+
ChannelId ci;
24+
ChannelPeriod cp;
25+
ChannelRfFrequency crf;
26+
OpenChannel oc;
27+
28+
Serial1.begin(BAUD_RATE);
29+
// this will be moved into the driver eventually
30+
#if defined(CORE_TEENSY)
31+
Serial1.attachCts(20);
32+
#else
33+
// ant.attachCts()
34+
#endif
35+
ant.setSerial(Serial1);
36+
ant.send(rs);
37+
// Delay after resetting the radio to give the user time to connect on serial
38+
delay(10000);
39+
Serial.println("Running");
40+
41+
snk = SetNetworkKey();
42+
snk.setNetwork(0);
43+
snk.setKey((uint8_t*)NETWORK_KEY);
44+
ant.send(snk);
45+
parseMessage();
46+
47+
ac = AssignChannel();
48+
ac.setChannel(0);
49+
ac.setChannelType(0);
50+
ac.setChannelNetwork(0);
51+
ant.send(ac);
52+
parseMessage();
53+
54+
ci = ChannelId();
55+
ci.setChannel(0);
56+
ci.setDeviceNumber(0);
57+
ci.setDeviceType(0);
58+
ci.setTransmissionType(0);
59+
ant.send(ci);
60+
parseMessage();
61+
62+
cp = ChannelPeriod();
63+
cp.setChannel(0);
64+
cp.setPeriod(1234);
65+
ant.send(cp);
66+
parseMessage();
67+
68+
crf = ChannelRfFrequency();
69+
crf.setChannel(0);
70+
crf.setRfFrequency(0);
71+
ant.send(crf);
72+
parseMessage();
73+
74+
oc = OpenChannel();
75+
oc.setChannel(0);
76+
ant.send(oc);
77+
parseMessage();
78+
}
79+
80+
void loop()
81+
{
82+
parseMessage();
83+
}
84+
85+
void parseMessage() {
86+
ant.readPacket();
87+
while (ant.getResponse().isAvailable() || ant.getResponse().isError())
88+
{
89+
if (ant.getResponse().isAvailable())
90+
{
91+
uint8_t msgId = ant.getResponse().getMsgId();
92+
switch (msgId) {
93+
case CHANNEL_EVENT:
94+
{
95+
ChannelEventResponse cer = ChannelEventResponse();
96+
ant.getResponse().getChannelEventResponseMsg(cer);
97+
Serial.println("Received Msg: ChannelEventResponse");
98+
Serial.print("Channel: ");
99+
Serial.println(cer.getChannelNumber());
100+
parseEventMessage(cer.getCode());
101+
break;
102+
}
103+
104+
case START_UP_MESSAGE:
105+
{
106+
StartUpMessage sum = StartUpMessage();
107+
ant.getResponse().getStartUpMsg(sum);
108+
Serial.println("Received Msg: StartupMessage");
109+
Serial.print("Message: ");
110+
Serial.println(sum.getMessage());
111+
break;
112+
}
113+
114+
case BROADCAST_DATA:
115+
{
116+
BroadcastData bd = BroadcastData();
117+
ant.getResponse().getBroadcastDataMsg(bd);
118+
Serial.println("Received Msg: BroadcastData");
119+
Serial.print("Channel: ");
120+
Serial.println(bd.getChannelNumber());
121+
Serial.print("Data:[");
122+
Serial.print(bd.getData(0), HEX);
123+
for (uint8_t i = 1; i < 8; i++)
124+
{
125+
Serial.print(", ");
126+
Serial.print(bd.getData(i), HEX);
127+
}
128+
Serial.println("]");
129+
break;
130+
}
131+
132+
default:
133+
Serial.print("Undefined Message: ");
134+
Serial.println(msgId, HEX);
135+
break;
136+
}
137+
}
138+
else if (ant.getResponse().isError())
139+
{
140+
Serial.print("ANT MSG ERROR: ");
141+
Serial.println(ant.getResponse().getErrorCode());
142+
}
143+
}
144+
}
145+
146+
void parseEventMessage(uint8_t code)
147+
{
148+
Serial.print("Code: ");
149+
switch (code)
150+
{
151+
case RESPONSE_NO_ERROR:
152+
Serial.println("RESPONSE_NO_ERROR");
153+
break;
154+
155+
case EVENT_RX_FAIL:
156+
Serial.println("EVENT_RX_FAIL");
157+
break;
158+
159+
case EVENT_RX_SEARCH_TIMEOUT:
160+
Serial.println("EVENT_RX_SEARCH_TIMEOUT");
161+
break;
162+
163+
case EVENT_CHANNEL_CLOSED:
164+
Serial.println("EVENT_CHANNEL_CLOSED");
165+
break;
166+
167+
default:
168+
Serial.println(code);
169+
break;
170+
}
171+
}

0 commit comments

Comments
 (0)