Ashley Mills / ATConsole

Dependencies:   mbed-rtos VodafoneUSBModem mbed

ATConsole.h

Committer:
ashleymills
Date:
2012-09-18
Revision:
4:6971bded3ebd
Parent:
3:6b3ca3af97cf
Child:
10:b2c5a4b21bd8

File content as of revision 4:6971bded3ebd:

#pragma once
#include "Console.h"
#include "VodafoneUSBModem.h"

class ATConsole : public Console, public IATCommandsProcessor, protected IATEventsHandler  {
    public:
    
        /** Constructor
          @param terminal Console interface to the driving computer.
          @param lineLength The maximum length of line supported (character console only).
          @param numLines Number of lines of history to keep (character console only).
          @param characterBased true if the driving console is character based, false if line based.
          @param atInterface A Pointer to the ATInterface of the modem. 
          @return An ATConsole
         */
        ATConsole(
           Serial *terminal,
           int lineLength,
           int numLines,
           bool characterBased,
           ATCommandsInterface* atInterface
        );
        ~ATConsole();
        virtual void update();
        
    private:  
        ATCommandsInterface *_atInterface;
        ATCommandsInterface::ATResult _cmdResult;
        virtual void processCommand();
        virtual int onNewATResponseLine(ATCommandsInterface* pInst, const char* line);
        virtual int onNewEntryPrompt(ATCommandsInterface* pInst);
        bool _gettingSMSData;
        char _smsMessage[256];
        
    protected:
        virtual void onEvent(const char* atCode, const char* evt);
        virtual void onDispatchStart();
        virtual void onDispatchStop();
        virtual bool isATCodeHandled(const char* atCode);
        
};