Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of IrcBot by
IrcMessageHandlers.h@2:e4c74eb20586, 2014-08-02 (annotated)
- Committer:
- NickRyder
- Date:
- Sat Aug 02 12:57:57 2014 +0000
- Revision:
- 2:e4c74eb20586
- Parent:
- 1:cf586c9bbb52
Added documentation.
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| NickRyder | 1:cf586c9bbb52 | 1 | #ifndef __mbed_irc_handlers_h__ |
| NickRyder | 1:cf586c9bbb52 | 2 | #define __mbed_irc_handlers_h__ |
| NickRyder | 1:cf586c9bbb52 | 3 | #include "IrcBot.h" |
| NickRyder | 1:cf586c9bbb52 | 4 | |
| NickRyder | 2:e4c74eb20586 | 5 | /// DigitalOutHandler lets users control a DigitalOut using "WRITE <name> ON/OFF" |
| NickRyder | 1:cf586c9bbb52 | 6 | class DigitalOutHandler : private MessageHandler { |
| NickRyder | 1:cf586c9bbb52 | 7 | public: |
| NickRyder | 2:e4c74eb20586 | 8 | /** Create a DigitalOutHandler |
| NickRyder | 2:e4c74eb20586 | 9 | * @param name Name of output used in command on IRC |
| NickRyder | 2:e4c74eb20586 | 10 | * @param pin Pin the output is connected to. |
| NickRyder | 2:e4c74eb20586 | 11 | * @param verbose Whether or not a reply is sent to IRC confirming the output state |
| NickRyder | 2:e4c74eb20586 | 12 | */ |
| NickRyder | 2:e4c74eb20586 | 13 | DigitalOutHandler(char * name, PinName pin, bool verbose); |
| NickRyder | 2:e4c74eb20586 | 14 | /// Set output pin on or off, reply "SET <name> ON/OFF" if verbose. |
| NickRyder | 1:cf586c9bbb52 | 15 | IrcMessage handle(IrcMessage); |
| NickRyder | 1:cf586c9bbb52 | 16 | private: |
| NickRyder | 1:cf586c9bbb52 | 17 | DigitalOut pin; |
| NickRyder | 1:cf586c9bbb52 | 18 | char name[32]; |
| NickRyder | 1:cf586c9bbb52 | 19 | bool verbose; |
| NickRyder | 1:cf586c9bbb52 | 20 | }; |
| NickRyder | 1:cf586c9bbb52 | 21 | |
| NickRyder | 2:e4c74eb20586 | 22 | /// DigitalInHandler lets users read a DigitalIn using "READ <name>" |
| NickRyder | 1:cf586c9bbb52 | 23 | class DigitalInHandler : private MessageHandler { |
| NickRyder | 1:cf586c9bbb52 | 24 | public: |
| NickRyder | 2:e4c74eb20586 | 25 | /** Create a DigitalInHandler |
| NickRyder | 2:e4c74eb20586 | 26 | * @param name Name of input used in command on IRC |
| NickRyder | 2:e4c74eb20586 | 27 | * @param pin Pin the input is connected to. |
| NickRyder | 2:e4c74eb20586 | 28 | */ |
| NickRyder | 2:e4c74eb20586 | 29 | DigitalInHandler(char * name, PinName pin); |
| NickRyder | 2:e4c74eb20586 | 30 | /// Reply "<name> IS ON/OFF" |
| NickRyder | 1:cf586c9bbb52 | 31 | IrcMessage handle(IrcMessage); |
| NickRyder | 1:cf586c9bbb52 | 32 | private: |
| NickRyder | 1:cf586c9bbb52 | 33 | DigitalIn pin; |
| NickRyder | 1:cf586c9bbb52 | 34 | char name[32]; |
| NickRyder | 1:cf586c9bbb52 | 35 | }; |
| NickRyder | 1:cf586c9bbb52 | 36 | |
| NickRyder | 2:e4c74eb20586 | 37 | /// AnalogInHandler lets users read a DigitalIn using "READ <name>" |
| NickRyder | 1:cf586c9bbb52 | 38 | class AnalogInHandler : private MessageHandler { |
| NickRyder | 1:cf586c9bbb52 | 39 | public: |
| NickRyder | 2:e4c74eb20586 | 40 | /** Create an AnalogInHandler |
| NickRyder | 2:e4c74eb20586 | 41 | * @param name Name of input used in command on IRC |
| NickRyder | 2:e4c74eb20586 | 42 | * @param pin Pin the input is connected to. |
| NickRyder | 2:e4c74eb20586 | 43 | */ |
| NickRyder | 2:e4c74eb20586 | 44 | AnalogInHandler(char * name, PinName pin); |
| NickRyder | 2:e4c74eb20586 | 45 | /** Define a scaling factor for the measured value [0.0 - 1.0] |
| NickRyder | 2:e4c74eb20586 | 46 | * @param scale The scaling factor |
| NickRyder | 2:e4c74eb20586 | 47 | * @param unit The units used in the message to IRC |
| NickRyder | 2:e4c74eb20586 | 48 | */ |
| NickRyder | 2:e4c74eb20586 | 49 | void scale(float scale, char * unit); |
| NickRyder | 2:e4c74eb20586 | 50 | /// Measure input, scale and reply "<name> = <value> <units>" |
| NickRyder | 1:cf586c9bbb52 | 51 | IrcMessage handle(IrcMessage); |
| NickRyder | 1:cf586c9bbb52 | 52 | private: |
| NickRyder | 1:cf586c9bbb52 | 53 | AnalogIn pin; |
| NickRyder | 1:cf586c9bbb52 | 54 | char name[32]; |
| NickRyder | 1:cf586c9bbb52 | 55 | char unit[32]; |
| NickRyder | 1:cf586c9bbb52 | 56 | float scaleval; |
| NickRyder | 1:cf586c9bbb52 | 57 | }; |
| NickRyder | 1:cf586c9bbb52 | 58 | |
| NickRyder | 2:e4c74eb20586 | 59 | /// A handler to echo back any messages of the form "ECHO <x>" |
| NickRyder | 1:cf586c9bbb52 | 60 | class EchoHandler : private MessageHandler { |
| NickRyder | 1:cf586c9bbb52 | 61 | public: |
| NickRyder | 1:cf586c9bbb52 | 62 | EchoHandler(){}; |
| NickRyder | 2:e4c74eb20586 | 63 | /// Reply to "ECHO <x>" with "<x>" |
| NickRyder | 1:cf586c9bbb52 | 64 | IrcMessage handle(IrcMessage msg); |
| NickRyder | 1:cf586c9bbb52 | 65 | }; |
| NickRyder | 1:cf586c9bbb52 | 66 | |
| NickRyder | 1:cf586c9bbb52 | 67 | #endif |
