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