The IrcBot class can connect to a channel on an IRC network. Users on the same network can send messages to the bot that are parsed by message handlers. The included handlers read digital/analog inputs and write digital outputs or echo messages back to the command sender/channel. Users can write their own message handlers inheriting from the MessageHandler class to perform different actions.

Committer:
NickRyder
Date:
Sat Aug 02 12:09:10 2014 +0000
Revision:
0:b8fb2df56652
Moved irc and handlers into IrcBot library.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
NickRyder 0:b8fb2df56652 1 #ifndef __mbed_irc_h__
NickRyder 0:b8fb2df56652 2 #define __mbed_irc_h__
NickRyder 0:b8fb2df56652 3
NickRyder 0:b8fb2df56652 4 #include "mbed.h"
NickRyder 0:b8fb2df56652 5 #include "EthernetInterface.h"
NickRyder 0:b8fb2df56652 6 #include <vector>
NickRyder 0:b8fb2df56652 7
NickRyder 0:b8fb2df56652 8 class IrcMessage {
NickRyder 0:b8fb2df56652 9 public:
NickRyder 0:b8fb2df56652 10 IrcMessage();
NickRyder 0:b8fb2df56652 11 IrcMessage(char *, char *, char *);
NickRyder 0:b8fb2df56652 12 char from[32], to[32], msg[256];
NickRyder 0:b8fb2df56652 13 };
NickRyder 0:b8fb2df56652 14
NickRyder 0:b8fb2df56652 15 class MessageHandler {
NickRyder 0:b8fb2df56652 16 public:
NickRyder 0:b8fb2df56652 17 MessageHandler() {};
NickRyder 0:b8fb2df56652 18 virtual IrcMessage handle(IrcMessage msg) {return IrcMessage();}
NickRyder 0:b8fb2df56652 19 };
NickRyder 0:b8fb2df56652 20
NickRyder 0:b8fb2df56652 21 class Irc {
NickRyder 0:b8fb2df56652 22 public:
NickRyder 0:b8fb2df56652 23 Irc(char *, char *, int, char *);
NickRyder 0:b8fb2df56652 24 void connect();
NickRyder 0:b8fb2df56652 25 void disconnect();
NickRyder 0:b8fb2df56652 26 void add(MessageHandler *);
NickRyder 0:b8fb2df56652 27 void identify(char *);
NickRyder 0:b8fb2df56652 28 void join(char *);
NickRyder 0:b8fb2df56652 29 bool read();
NickRyder 0:b8fb2df56652 30 private:
NickRyder 0:b8fb2df56652 31 void handle(IrcMessage);
NickRyder 0:b8fb2df56652 32 void parse();
NickRyder 0:b8fb2df56652 33 void send(char *);
NickRyder 0:b8fb2df56652 34 Serial pc;
NickRyder 0:b8fb2df56652 35 TCPSocketConnection sock;
NickRyder 0:b8fb2df56652 36 char network[64];
NickRyder 0:b8fb2df56652 37 char channel[64];
NickRyder 0:b8fb2df56652 38 int port;
NickRyder 0:b8fb2df56652 39 char nickname[64];
NickRyder 0:b8fb2df56652 40 char password[64];
NickRyder 0:b8fb2df56652 41 bool ident, connected, setup, joined;
NickRyder 0:b8fb2df56652 42 char readbuffer[512];
NickRyder 0:b8fb2df56652 43 char parsebuffer[512];
NickRyder 0:b8fb2df56652 44 int parseindex;
NickRyder 0:b8fb2df56652 45 vector<MessageHandler *> handlers;
NickRyder 0:b8fb2df56652 46 };
NickRyder 0:b8fb2df56652 47
NickRyder 0:b8fb2df56652 48 #endif