kandy
commandscheduler.h00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef COMMANDSCHEDULER_H
00025 #define COMMANDSCHEDULER_H
00026
00027 #include <qobject.h>
00028 #include <qptrlist.h>
00029
00030 #include "atcommand.h"
00031 #include "commandset.h"
00032
00033 class Modem;
00034
00035 class CommandScheduler : public QObject {
00036 Q_OBJECT
00037 public:
00038 CommandScheduler (Modem *modem,QObject *parent = 0, const char *name = 0);
00039
00040 void execute(const QString &command);
00041 void execute(ATCommand *command);
00042 void executeId(const QString &id);
00043
00044 Modem *modem() { return mModem; }
00045 CommandSet *commandSet() { return &mCommandSet; }
00046
00047 bool loadProfile(const QString& filename);
00048 bool saveProfile(const QString& filename);
00049
00050 signals:
00051 void result(const QString &);
00052 void commandProcessed(ATCommand *);
00053
00054 private slots:
00055 void processOutput(const char *line);
00056
00057 private:
00058 void sendCommand(const QString &command);
00059 void nextCommand();
00060
00061 private:
00062 Modem *mModem;
00063
00064 CommandSet mCommandSet;
00065
00066 ATCommand *mLastCommand;
00067
00068 QPtrList<ATCommand> mCommandQueue;
00069
00070 enum State { WAITING, PROCESSING };
00071 State mState;
00072
00073 QString mResult;
00074 };
00075
00076 #endif
|