First attempt at some form of autodiscovery of an mbed based device by periodically broadcasting our IP in a UDP packet.
AutoDiscoveryBroadcaster.h@0:c1be031ca851, 2010-06-18 (annotated)
- Committer:
- darran
- Date:
- Fri Jun 18 09:09:57 2010 +0000
- Revision:
- 0:c1be031ca851
Who changed what in which revision?
User | Revision | Line number | New 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 |