First attempt at some form of autodiscovery of an mbed based device by periodically broadcasting our IP in a UDP packet.

Dependencies:   mbed

Committer:
darran
Date:
Fri Jun 18 09:09:57 2010 +0000
Revision:
0:c1be031ca851

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
darran 0:c1be031ca851 1 #ifndef AUTO_DISCOVERY_BROADCASTER_H
darran 0:c1be031ca851 2 #define AUTO_DISCOVERY_BROADCASTER_H
darran 0:c1be031ca851 3
darran 0:c1be031ca851 4 #include "mbed.h"
darran 0:c1be031ca851 5 #include "UDPSocket.h"
darran 0:c1be031ca851 6 #include "BroadcastMessage.h"
darran 0:c1be031ca851 7
darran 0:c1be031ca851 8 /*
darran 0:c1be031ca851 9 Class: AutoDiscoveryBroadcaster
darran 0:c1be031ca851 10 Periodically sends out hostname
darran 0:c1be031ca851 11 and IP address on UDP port 2010
darran 0:c1be031ca851 12 */
darran 0:c1be031ca851 13 class AutoDiscoveryBroadcaster {
darran 0:c1be031ca851 14 public:
darran 0:c1be031ca851 15 // Constructor: AutoDiscoveryBroadcaster
darran 0:c1be031ca851 16 // Creates the UDP sockets
darran 0:c1be031ca851 17 AutoDiscoveryBroadcaster();
darran 0:c1be031ca851 18 // Destructor: ~AutoDiscoveryBroadcaster
darran 0:c1be031ca851 19 // Deletes the UDP socket
darran 0:c1be031ca851 20 ~AutoDiscoveryBroadcaster();
darran 0:c1be031ca851 21 /*
darran 0:c1be031ca851 22 Function: start
darran 0:c1be031ca851 23 Starts periodically sending out the information datagrams
darran 0:c1be031ca851 24 Parameters:
darran 0:c1be031ca851 25 udpPort - The UDP port to send on (default 2010)
darran 0:c1be031ca851 26 period - The period between broadcasts
darran 0:c1be031ca851 27 */
darran 0:c1be031ca851 28 void start(int udpPort=2010, int period=5);
darran 0:c1be031ca851 29 /*
darran 0:c1be031ca851 30 Function: stop
darran 0:c1be031ca851 31 Stops sending out the information datagrams
darran 0:c1be031ca851 32 */
darran 0:c1be031ca851 33 void stop();
darran 0:c1be031ca851 34 private:
darran 0:c1be031ca851 35 // Variable: udpSock
darran 0:c1be031ca851 36 // The UDP socket
darran 0:c1be031ca851 37 UDPSocket* udpSock;
darran 0:c1be031ca851 38 // Variable: running
darran 0:c1be031ca851 39 // Flag to indicate whether we're running or not
darran 0:c1be031ca851 40 char running;
darran 0:c1be031ca851 41 // Variable: ticker
darran 0:c1be031ca851 42 // Ticker used to periodically call broadcast()
darran 0:c1be031ca851 43 Ticker ticker;
darran 0:c1be031ca851 44 Host host;
darran 0:c1be031ca851 45
darran 0:c1be031ca851 46 // Function: broadcast
darran 0:c1be031ca851 47 // The method that actually broadcasts the information
darran 0:c1be031ca851 48 // about this mbed
darran 0:c1be031ca851 49 void broadcast();
darran 0:c1be031ca851 50
darran 0:c1be031ca851 51 BroadcastMessage msg;
darran 0:c1be031ca851 52 };
darran 0:c1be031ca851 53
darran 0:c1be031ca851 54 #endif