11/* **********************************
2- * Ant Open Channel Example
2+ * Ant Tx Counter Example
33 *
44 * Opens a channel with the public
55 * network key and transmits data
66 * increments in value every second
77 *
8- * NOTE: THIS EXAMPLE IS INCOMPLETE
9- *
108 * Author Curtis Malainey
119 ************************************/
1210
1311#include " ANT.h"
1412#define BAUD_RATE 9600
1513Ant ant = Ant();
1614
15+ uint8_t buffer[] = {0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 };
16+
1717void parseMessage ();
1818void parseEventMessage (uint8_t code);
1919
@@ -25,6 +25,7 @@ void setup()
2525 ChannelId ci;
2626 ChannelPeriod cp;
2727 ChannelRfFrequency crf;
28+ BroadcastMsg bm;
2829 OpenChannel oc;
2930
3031 Serial1.begin (BAUD_RATE);
@@ -43,7 +44,7 @@ void setup()
4344
4445 ac = AssignChannel ();
4546 ac.setChannel (0 );
46- ac.setChannelType (CHANNEL_TYPE_BIDIRECTIONAL_TRANSMIT);
47+ ac.setChannelType (CHANNEL_TYPE_BIDIRECTIONAL_TRANSMIT); // can't wildcard this
4748 ac.setChannelNetwork (0 );
4849 ant.send (ac);
4950 parseMessage ();
@@ -68,6 +69,12 @@ void setup()
6869 ant.send (crf);
6970 parseMessage ();
7071
72+ bm = BroadcastMsg ();
73+ bm.setData (buffer);
74+ bm.setChannel (0 );
75+ ant.send (bm);
76+ parseMessage ();
77+
7178 oc = OpenChannel ();
7279 oc.setChannel (0 );
7380 ant.send (oc);
@@ -81,86 +88,67 @@ void loop()
8188
8289void parseMessage () {
8390 ant.readPacket ();
84- while (ant.getResponse ().isAvailable () || ant. getResponse (). isError ())
91+ if (ant.getResponse ().isAvailable ())
8592 {
86- if (ant.getResponse ().isAvailable ())
87- {
88- uint8_t msgId = ant.getResponse ().getMsgId ();
89- switch (msgId) {
90- case CHANNEL_EVENT:
91- {
92- ChannelEventResponse cer = ChannelEventResponse ();
93- ant.getResponse ().getChannelEventResponseMsg (cer);
94- Serial.println (" Received Msg: ChannelEventResponse" );
95- Serial.print (" Channel: " );
96- Serial.println (cer.getChannelNumber ());
97- parseEventMessage (cer.getCode ());
98- break ;
99- }
100-
101- case START_UP_MESSAGE:
102- {
103- StartUpMessage sum = StartUpMessage ();
104- ant.getResponse ().getStartUpMsg (sum);
105- Serial.println (" Received Msg: StartupMessage" );
106- Serial.print (" Message: " );
107- Serial.println (sum.getMessage ());
108- break ;
109- }
110-
111- case BROADCAST_DATA:
112- {
113- BroadcastData bd = BroadcastData ();
114- ant.getResponse ().getBroadcastDataMsg (bd);
115- Serial.println (" Received Msg: BroadcastData" );
116- Serial.print (" Channel: " );
117- Serial.println (bd.getChannelNumber ());
118- Serial.print (" Data:[" );
119- Serial.print (bd.getData (0 ), HEX);
120- for (uint8_t i = 1 ; i < 8 ; i++)
121- {
122- Serial.print (" , " );
123- Serial.print (bd.getData (i), HEX);
124- }
125- Serial.println (" ]" );
126- break ;
127- }
128-
129- default :
130- Serial.print (" Undefined Message: " );
131- Serial.println (msgId, HEX);
132- break ;
93+ uint8_t msgId = ant.getResponse ().getMsgId ();
94+ switch (msgId) {
95+ case CHANNEL_EVENT:
96+ {
97+ ChannelEventResponse cer = ChannelEventResponse ();
98+ ant.getResponse ().getChannelEventResponseMsg (cer);
99+ Serial.println (" Received Msg: ChannelEventResponse" );
100+ Serial.print (" Channel: " );
101+ Serial.println (cer.getChannelNumber ());
102+ parseEventMessage (cer.getCode ());
103+ break ;
133104 }
134- }
135- else if (ant.getResponse ().isError ())
136- {
137- Serial.print (" ANT MSG ERROR: " );
138- Serial.println (ant.getResponse ().getErrorCode ());
105+
106+ case START_UP_MESSAGE:
107+ {
108+ StartUpMessage sum = StartUpMessage ();
109+ ant.getResponse ().getStartUpMsg (sum);
110+ Serial.println (" Received Msg: StartupMessage" );
111+ Serial.print (" Message: " );
112+ Serial.println (sum.getMessage ());
113+ break ;
114+ }
115+
116+ default :
117+ Serial.print (" Undefined Message: " );
118+ Serial.println (msgId, HEX);
119+ break ;
139120 }
140121 }
122+ else if (ant.getResponse ().isError ())
123+ {
124+ Serial.print (" ANT MSG ERROR: " );
125+ Serial.println (ant.getResponse ().getErrorCode ());
126+ }
141127}
142128
143129void parseEventMessage (uint8_t code)
144130{
131+ BroadcastMsg bm;
145132 Serial.print (" Code: " );
146133 switch (code)
147134 {
148135 case RESPONSE_NO_ERROR:
149136 Serial.println (" RESPONSE_NO_ERROR" );
150137 break ;
151138
152- case EVENT_RX_FAIL:
153- Serial.println (" EVENT_RX_FAIL" );
154- break ;
155-
156- case EVENT_RX_SEARCH_TIMEOUT:
157- Serial.println (" EVENT_RX_SEARCH_TIMEOUT" );
158- break ;
159-
160139 case EVENT_CHANNEL_CLOSED:
161140 Serial.println (" EVENT_CHANNEL_CLOSED" );
162141 break ;
163142
143+ case EVENT_TX:
144+ Serial.println (" EVENT_TX" );
145+ buffer[0 ]++;
146+ bm = BroadcastMsg ();
147+ bm.setData (buffer);
148+ bm.setChannel (0 );
149+ ant.send (bm);
150+ break ;
151+
164152 default :
165153 Serial.println (code);
166154 break ;
0 commit comments