## Information from source codes

## hf2000.h

    #ifndef HF2000_H
    #define HF2000_H
    #include
    #include
    #include
    #include
    #include

    #define _POSIX_SOURCE 1

    /* struct begin */
    typedef int   hf2000ParaTypeInteger;
    typedef float hf2000ParaTypeReal;

    typedef struct hf2000Info {
    	char* deviceName;
    	struct termios IO;
    	struct termios prevIO;
    	int fd;
    	int flagClient;
    	int flagServer;
    	int serverSocket;
    	int serverFD;
    	char* hostname;
    	u_short port;
    	u_short maxPort;
    	u_short portSpeed;
    } hf2000Info;
    /* struct end */

    #ifdef __HF2000INIT__
    /* constant begin */
    hf2000Info __hf2000;
    char* __hf2000CommandList[] = {
        "*R", /* Initialize */
    	"#Q", /* Specimen Position Get */
    	"#A", /* Absolute Position Set */
    	"#G", /* GO after #A #D #B */
    	"#H", /* Speed down and stop*/
    	"#X", /* Motor Information */
    	"?30", /* C1 Get */   /* Lenz */
    	"?31", /* C2 Get */
    	"?32", /* C3 Get */
    	"?33", /* OBJ Get */
    	"?34", /* I1 Get */
    	"?35", /* I2 Get */
    	"?36", /* P1 Get */
    	"?37", /* P2 Get */
    	"?40", /* OS(X) Get */ /* BD Coil */
    	"?41", /* OS(Y) Get */
    	"?42", /* CS(X) Get */
    	"?43", /* CS(Y) Get */
    	"?44", /* IS(X) Get */
    	"?45", /* IS(Y) Get */
    	"?46", /* BT(X) Get */
    	"?47", /* BT(Y) Get */
    	"?48", /* BH(X) Get */
    	"?49", /* BH(Y) Get */
    	NULL
    };
    /* constant end */
    #else
    extern hf2000Info __hf2000;
    extern char* __hf2000CommandList[];
    #endif
    /* constant begin */
    #define HF2000CMD_Initialize   0
    #define HF2000CMD_PositionGet  1
    #define HF2000CMD_PositionSet  2
    #define HF2000CMD_PositionMove 3
    #define HF2000CMD_PositionStop 4
    #define HF2000CMD_PositionMotorInfo 5
    #define HF2000CMD_C1Get   6
    #define HF2000CMD_C2Get   7
    #define HF2000CMD_C3Get   8
    #define HF2000CMD_OBJGet  9
    #define HF2000CMD_I1Get   10
    #define HF2000CMD_I2Get   11
    #define HF2000CMD_P1Get   12
    #define HF2000CMD_P2Get   13
    #define HF2000CMD_OSXGet   14
    #define HF2000CMD_OSYGet   15
    #define HF2000CMD_CSXGet   16
    #define HF2000CMD_CSYGet   17
    #define HF2000CMD_ISXGet   18
    #define HF2000CMD_ISYGet   19
    #define HF2000CMD_BTXGet   18
    #define HF2000CMD_BTYGet   19
    #define HF2000CMD_BHXGet   20
    #define HF2000CMD_BHYGet   21
    /* constant end */

    /* prototype begin */
    extern void hf2000Init(hf2000Info* info);
    extern void hf2000Close(hf2000Info* info);
    extern void hf2000Read(hf2000Info* info, char* s);
    extern void hf2000Write(hf2000Info* info, char* s);
    extern void hf2000Command(hf2000Info* info, char* command, char* result);
    /* prototype end */

    #include
    /* prototype begin */
    extern int hf2000_TclAppInit(Tcl_Interp * interp);
    /* prototype end   */

    #endif HF2000_H