Telescope Control Library

Dependents:   PushToGo-F429

Committer:
caoyuan9642
Date:
Sun Aug 19 05:21:20 2018 +0000
Revision:
0:6cb2eaf8b133
Child:
4:b8ad57bbf9e1
v0.1

Who changed what in which revision?

UserRevisionLine numberNew contents of line
caoyuan9642 0:6cb2eaf8b133 1 /*
caoyuan9642 0:6cb2eaf8b133 2 * EqMountServer.h
caoyuan9642 0:6cb2eaf8b133 3 *
caoyuan9642 0:6cb2eaf8b133 4 * Created on: 2018Äê3ÔÂ1ÈÕ
caoyuan9642 0:6cb2eaf8b133 5 * Author: caoyuan9642
caoyuan9642 0:6cb2eaf8b133 6 */
caoyuan9642 0:6cb2eaf8b133 7
caoyuan9642 0:6cb2eaf8b133 8 #ifndef EQMOUNTSERVER_H_
caoyuan9642 0:6cb2eaf8b133 9 #define EQMOUNTSERVER_H_
caoyuan9642 0:6cb2eaf8b133 10
caoyuan9642 0:6cb2eaf8b133 11 class EqMountServer;
caoyuan9642 0:6cb2eaf8b133 12
caoyuan9642 0:6cb2eaf8b133 13 #include "MountServer.h"
caoyuan9642 0:6cb2eaf8b133 14 #include "EquatorialMount.h"
caoyuan9642 0:6cb2eaf8b133 15
caoyuan9642 0:6cb2eaf8b133 16 struct ServerCommand
caoyuan9642 0:6cb2eaf8b133 17 {
caoyuan9642 0:6cb2eaf8b133 18 const char *cmd; /// Name of the command
caoyuan9642 0:6cb2eaf8b133 19 const char *desc; /// Description of the command
caoyuan9642 0:6cb2eaf8b133 20 int (*fptr)(EqMountServer *, const char *, int, char **); /// Function pointer to the command
caoyuan9642 0:6cb2eaf8b133 21 ServerCommand(const char *n = "", const char *d = "",
caoyuan9642 0:6cb2eaf8b133 22 int (*fp)(EqMountServer *, const char *, int, char **) = NULL) :
caoyuan9642 0:6cb2eaf8b133 23 cmd(n), desc(d), fptr(fp)
caoyuan9642 0:6cb2eaf8b133 24 {
caoyuan9642 0:6cb2eaf8b133 25 }
caoyuan9642 0:6cb2eaf8b133 26 };
caoyuan9642 0:6cb2eaf8b133 27
caoyuan9642 0:6cb2eaf8b133 28 #define MAX_COMMAND 128
caoyuan9642 0:6cb2eaf8b133 29
caoyuan9642 0:6cb2eaf8b133 30 #define ERR_WRONG_NUM_PARAM 1
caoyuan9642 0:6cb2eaf8b133 31 #define ERR_PARAM_OUT_OF_RANGE 2
caoyuan9642 0:6cb2eaf8b133 32
caoyuan9642 0:6cb2eaf8b133 33 class EqMountServer: public MountServer
caoyuan9642 0:6cb2eaf8b133 34 {
caoyuan9642 0:6cb2eaf8b133 35 protected:
caoyuan9642 0:6cb2eaf8b133 36
caoyuan9642 0:6cb2eaf8b133 37 EquatorialMount *eq_mount;
caoyuan9642 0:6cb2eaf8b133 38 FileHandle &stream;
caoyuan9642 0:6cb2eaf8b133 39 Thread thread;bool echo; /// Echo
caoyuan9642 0:6cb2eaf8b133 40
caoyuan9642 0:6cb2eaf8b133 41 void task_thread();
caoyuan9642 0:6cb2eaf8b133 42
caoyuan9642 0:6cb2eaf8b133 43 void command_execute(ServerCommand &, int argn, char *argv[], char *buffer);
caoyuan9642 0:6cb2eaf8b133 44
caoyuan9642 0:6cb2eaf8b133 45 public:
caoyuan9642 0:6cb2eaf8b133 46 EqMountServer(FileHandle &stream, bool echo = false);
caoyuan9642 0:6cb2eaf8b133 47 virtual ~EqMountServer();
caoyuan9642 0:6cb2eaf8b133 48
caoyuan9642 0:6cb2eaf8b133 49 void bind(EquatorialMount &eq)
caoyuan9642 0:6cb2eaf8b133 50 {
caoyuan9642 0:6cb2eaf8b133 51 eq_mount = &eq;
caoyuan9642 0:6cb2eaf8b133 52 }
caoyuan9642 0:6cb2eaf8b133 53
caoyuan9642 0:6cb2eaf8b133 54 EquatorialMount* getEqMount() const
caoyuan9642 0:6cb2eaf8b133 55 {
caoyuan9642 0:6cb2eaf8b133 56 return eq_mount;
caoyuan9642 0:6cb2eaf8b133 57 }
caoyuan9642 0:6cb2eaf8b133 58
caoyuan9642 0:6cb2eaf8b133 59 FileHandle& getStream() const
caoyuan9642 0:6cb2eaf8b133 60 {
caoyuan9642 0:6cb2eaf8b133 61 return stream;
caoyuan9642 0:6cb2eaf8b133 62 }
caoyuan9642 0:6cb2eaf8b133 63
caoyuan9642 0:6cb2eaf8b133 64 static void addCommand(const ServerCommand &cmd);
caoyuan9642 0:6cb2eaf8b133 65 };
caoyuan9642 0:6cb2eaf8b133 66
caoyuan9642 0:6cb2eaf8b133 67 /**
caoyuan9642 0:6cb2eaf8b133 68 * Print to stream
caoyuan9642 0:6cb2eaf8b133 69 */
caoyuan9642 0:6cb2eaf8b133 70 void stprintf(FileHandle &f, const char *fmt, ...);
caoyuan9642 0:6cb2eaf8b133 71
caoyuan9642 0:6cb2eaf8b133 72 #endif /* EQMOUNTSERVER_H_ */
caoyuan9642 0:6cb2eaf8b133 73