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.cpp@3:19b779ac2398, 2014-09-20 (annotated)
- Committer:
- deton
- Date:
- Sat Sep 20 09:35:07 2014 +0000
- Revision:
- 3:19b779ac2398
- Parent:
- 1:cf586c9bbb52
Send NICK and USER at connect().
; Add printfln().
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
NickRyder | 1:cf586c9bbb52 | 1 | #include "IrcMessageHandlers.h" |
NickRyder | 0:b8fb2df56652 | 2 | |
NickRyder | 0:b8fb2df56652 | 3 | DigitalOutHandler::DigitalOutHandler(char * n, PinName p, bool v) : |
NickRyder | 0:b8fb2df56652 | 4 | pin(p), verbose(v) |
NickRyder | 0:b8fb2df56652 | 5 | { |
NickRyder | 0:b8fb2df56652 | 6 | sprintf(name, "%s", n); |
NickRyder | 0:b8fb2df56652 | 7 | pin = 0; |
NickRyder | 0:b8fb2df56652 | 8 | } |
NickRyder | 0:b8fb2df56652 | 9 | |
NickRyder | 0:b8fb2df56652 | 10 | IrcMessage DigitalOutHandler::handle(IrcMessage msg) { |
NickRyder | 0:b8fb2df56652 | 11 | IrcMessage reply; |
NickRyder | 0:b8fb2df56652 | 12 | if (verbose) { |
NickRyder | 0:b8fb2df56652 | 13 | if (msg.to[0] == '#') { |
NickRyder | 0:b8fb2df56652 | 14 | strcpy(reply.to, msg.to); |
NickRyder | 0:b8fb2df56652 | 15 | } else { |
NickRyder | 0:b8fb2df56652 | 16 | strcpy(reply.to, msg.from); |
NickRyder | 0:b8fb2df56652 | 17 | } |
NickRyder | 0:b8fb2df56652 | 18 | } |
NickRyder | 0:b8fb2df56652 | 19 | char required[64]; |
NickRyder | 0:b8fb2df56652 | 20 | sprintf(required, "WRITE %s", name); |
NickRyder | 0:b8fb2df56652 | 21 | char * c = NULL; |
NickRyder | 0:b8fb2df56652 | 22 | c = strstr(msg.msg, required); |
NickRyder | 0:b8fb2df56652 | 23 | if (c != NULL) { |
NickRyder | 0:b8fb2df56652 | 24 | c = strstr(msg.msg, "ON"); |
NickRyder | 0:b8fb2df56652 | 25 | if (c != NULL) { |
NickRyder | 0:b8fb2df56652 | 26 | pin = 1; |
NickRyder | 0:b8fb2df56652 | 27 | if (verbose) { |
NickRyder | 0:b8fb2df56652 | 28 | sprintf(reply.msg, "SET %s ON", name); |
NickRyder | 0:b8fb2df56652 | 29 | } |
NickRyder | 0:b8fb2df56652 | 30 | } |
NickRyder | 0:b8fb2df56652 | 31 | c = strstr(msg.msg, "OFF"); |
NickRyder | 0:b8fb2df56652 | 32 | if (c != NULL) { |
NickRyder | 0:b8fb2df56652 | 33 | pin = 0; |
NickRyder | 0:b8fb2df56652 | 34 | if (verbose) { |
NickRyder | 0:b8fb2df56652 | 35 | sprintf(reply.msg, "SET %s OFF", name); |
NickRyder | 0:b8fb2df56652 | 36 | } |
NickRyder | 0:b8fb2df56652 | 37 | } |
NickRyder | 0:b8fb2df56652 | 38 | } |
NickRyder | 0:b8fb2df56652 | 39 | return reply; |
NickRyder | 0:b8fb2df56652 | 40 | } |
NickRyder | 0:b8fb2df56652 | 41 | |
NickRyder | 0:b8fb2df56652 | 42 | DigitalInHandler::DigitalInHandler(char * n, PinName p) : |
NickRyder | 0:b8fb2df56652 | 43 | pin(p) |
NickRyder | 0:b8fb2df56652 | 44 | { |
NickRyder | 0:b8fb2df56652 | 45 | sprintf(name, "%s", n); |
NickRyder | 0:b8fb2df56652 | 46 | } |
NickRyder | 0:b8fb2df56652 | 47 | |
NickRyder | 0:b8fb2df56652 | 48 | IrcMessage DigitalInHandler::handle(IrcMessage msg) { |
NickRyder | 0:b8fb2df56652 | 49 | IrcMessage reply; |
NickRyder | 0:b8fb2df56652 | 50 | if (msg.to[0] == '#') { |
NickRyder | 0:b8fb2df56652 | 51 | strcpy(reply.to, msg.to); |
NickRyder | 0:b8fb2df56652 | 52 | } else { |
NickRyder | 0:b8fb2df56652 | 53 | strcpy(reply.to, msg.from); |
NickRyder | 0:b8fb2df56652 | 54 | } |
NickRyder | 0:b8fb2df56652 | 55 | char required[64]; |
NickRyder | 0:b8fb2df56652 | 56 | sprintf(required, "READ %s", name); |
NickRyder | 0:b8fb2df56652 | 57 | char * c = NULL; |
NickRyder | 0:b8fb2df56652 | 58 | c = strstr(msg.msg, required); |
NickRyder | 0:b8fb2df56652 | 59 | if (c != NULL) { |
NickRyder | 0:b8fb2df56652 | 60 | if (pin) { |
NickRyder | 0:b8fb2df56652 | 61 | sprintf(reply.msg, "%s is ON", name); |
NickRyder | 0:b8fb2df56652 | 62 | } else { |
NickRyder | 0:b8fb2df56652 | 63 | sprintf(reply.msg, "%s is OFF", name); |
NickRyder | 0:b8fb2df56652 | 64 | } |
NickRyder | 0:b8fb2df56652 | 65 | } |
NickRyder | 0:b8fb2df56652 | 66 | return reply; |
NickRyder | 0:b8fb2df56652 | 67 | } |
NickRyder | 0:b8fb2df56652 | 68 | |
NickRyder | 0:b8fb2df56652 | 69 | AnalogInHandler::AnalogInHandler(char * n, PinName p) : |
NickRyder | 0:b8fb2df56652 | 70 | pin(p), scaleval(1.0) |
NickRyder | 0:b8fb2df56652 | 71 | { |
NickRyder | 0:b8fb2df56652 | 72 | sprintf(name, "%s", n); |
NickRyder | 0:b8fb2df56652 | 73 | sprintf(unit, ""); |
NickRyder | 0:b8fb2df56652 | 74 | } |
NickRyder | 0:b8fb2df56652 | 75 | |
NickRyder | 0:b8fb2df56652 | 76 | void AnalogInHandler::scale(float s, char * u) { |
NickRyder | 0:b8fb2df56652 | 77 | scaleval = s; |
NickRyder | 0:b8fb2df56652 | 78 | sprintf(unit, "%s", u); |
NickRyder | 0:b8fb2df56652 | 79 | } |
NickRyder | 0:b8fb2df56652 | 80 | |
NickRyder | 0:b8fb2df56652 | 81 | IrcMessage AnalogInHandler::handle(IrcMessage msg) { |
NickRyder | 0:b8fb2df56652 | 82 | IrcMessage reply; |
NickRyder | 0:b8fb2df56652 | 83 | if (msg.to[0] == '#') { |
NickRyder | 0:b8fb2df56652 | 84 | strcpy(reply.to, msg.to); |
NickRyder | 0:b8fb2df56652 | 85 | } else { |
NickRyder | 0:b8fb2df56652 | 86 | strcpy(reply.to, msg.from); |
NickRyder | 0:b8fb2df56652 | 87 | } |
NickRyder | 0:b8fb2df56652 | 88 | char required[64]; |
NickRyder | 0:b8fb2df56652 | 89 | sprintf(required, "READ %s", name); |
NickRyder | 0:b8fb2df56652 | 90 | char * c = NULL; |
NickRyder | 0:b8fb2df56652 | 91 | c = strstr(msg.msg, required); |
NickRyder | 0:b8fb2df56652 | 92 | if (c != NULL) { |
NickRyder | 0:b8fb2df56652 | 93 | float v = pin * scaleval; |
NickRyder | 0:b8fb2df56652 | 94 | sprintf(reply.msg, "%s = %f %s", name, v, unit); |
NickRyder | 0:b8fb2df56652 | 95 | } |
NickRyder | 0:b8fb2df56652 | 96 | return reply; |
NickRyder | 0:b8fb2df56652 | 97 | } |
NickRyder | 0:b8fb2df56652 | 98 | |
NickRyder | 0:b8fb2df56652 | 99 | IrcMessage EchoHandler::handle(IrcMessage msg) { |
NickRyder | 0:b8fb2df56652 | 100 | IrcMessage reply; |
NickRyder | 0:b8fb2df56652 | 101 | char * c = NULL; |
NickRyder | 0:b8fb2df56652 | 102 | c = strstr(msg.msg, "ECHO "); |
NickRyder | 0:b8fb2df56652 | 103 | if (c != NULL) { |
NickRyder | 0:b8fb2df56652 | 104 | strcpy(reply.from, msg.to); |
NickRyder | 0:b8fb2df56652 | 105 | if (msg.to[0] == '#') { |
NickRyder | 0:b8fb2df56652 | 106 | strcpy(reply.to, msg.to); |
NickRyder | 0:b8fb2df56652 | 107 | } else { |
NickRyder | 0:b8fb2df56652 | 108 | strcpy(reply.to, msg.from); |
NickRyder | 0:b8fb2df56652 | 109 | } |
NickRyder | 0:b8fb2df56652 | 110 | strcpy(reply.msg, c + 5); |
NickRyder | 0:b8fb2df56652 | 111 | } |
NickRyder | 0:b8fb2df56652 | 112 | return reply; |
NickRyder | 0:b8fb2df56652 | 113 | } |