「hf2000(API)」の版間の差分
提供: Eospedia
(ページの作成:「MachineManip/'''hf2000'''はhf2000のフォーマットを取り扱うためのAPI です。 == 定数 == #define _POSIX_SOURCE 1 #ifdef __HF2000INIT__ hf2000Inf...」) |
|||
行1: | 行1: | ||
− | MachineManip/'''hf2000'''は[[hf2000]] | + | MachineManip/'''hf2000'''は[[hf2000]]との通信を行うための[[API]]です。 |
== 定数 == | == 定数 == | ||
#define _POSIX_SOURCE 1 | #define _POSIX_SOURCE 1 | ||
+ | === [[hf2000]]コマンド === | ||
#ifdef __HF2000INIT__ | #ifdef __HF2000INIT__ | ||
hf2000Info __hf2000; | hf2000Info __hf2000; | ||
char* __hf2000CommandList[] = { | char* __hf2000CommandList[] = { | ||
− | + | "*R", /* Initialize */ | |
"#Q", /* Specimen Position Get */ | "#Q", /* Specimen Position Get */ | ||
"#A", /* Absolute Position Set */ | "#A", /* Absolute Position Set */ | ||
行33: | 行34: | ||
NULL | NULL | ||
}; | }; | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
#else | #else | ||
extern hf2000Info __hf2000; | extern hf2000Info __hf2000; | ||
行81: | 行63: | ||
#define HF2000CMD_BHXGet 20 | #define HF2000CMD_BHXGet 20 | ||
#define HF2000CMD_BHYGet 21 | #define HF2000CMD_BHYGet 21 | ||
+ | |||
+ | == 構造体 == | ||
+ | typedef int hf2000ParaTypeInteger; | ||
+ | typedef float hf2000ParaTypeReal; | ||
+ | |||
+ | [[hf2000]]との通信設定 | ||
+ | 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; | ||
== API == | == API == | ||
+ | [[hf2000]]との通信を開始し、初期化コマンドを送信します。 | ||
extern void hf2000Init(hf2000Info* info); | extern void hf2000Init(hf2000Info* info); | ||
+ | |||
+ | [[hf2000]]との通信を閉じます。 | ||
extern void hf2000Close(hf2000Info* info); | extern void hf2000Close(hf2000Info* info); | ||
+ | |||
+ | [[hf2000]]から読み込んだデータをsへ格納します。 | ||
extern void hf2000Read(hf2000Info* info, char* s); | extern void hf2000Read(hf2000Info* info, char* s); | ||
+ | |||
+ | [[hf2000]]にデータsを書き出します。 | ||
extern void hf2000Write(hf2000Info* info, char* s); | extern void hf2000Write(hf2000Info* info, char* s); | ||
+ | |||
+ | [[hf2000]]にコマンドcommandを送信し、結果をresultに格納します。 | ||
extern void hf2000Command(hf2000Info* info, char* command, char* result); | extern void hf2000Command(hf2000Info* info, char* command, char* result); | ||
+ | Tclコマンド登録 | ||
extern int hf2000_TclAppInit(Tcl_Interp * interp); | extern int hf2000_TclAppInit(Tcl_Interp * interp); |
2015年3月17日 (火) 06:40時点における最新版
MachineManip/hf2000はhf2000との通信を行うためのAPIです。
定数
#define _POSIX_SOURCE 1
hf2000コマンド
#ifdef __HF2000INIT__ 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 }; #else extern hf2000Info __hf2000; extern char* __hf2000CommandList[]; #endif
#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
構造体
typedef int hf2000ParaTypeInteger; typedef float hf2000ParaTypeReal;
hf2000との通信設定
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;
API
hf2000との通信を開始し、初期化コマンドを送信します。
extern void hf2000Init(hf2000Info* info);
hf2000との通信を閉じます。
extern void hf2000Close(hf2000Info* info);
hf2000から読み込んだデータをsへ格納します。
extern void hf2000Read(hf2000Info* info, char* s);
hf2000にデータsを書き出します。
extern void hf2000Write(hf2000Info* info, char* s);
hf2000にコマンドcommandを送信し、結果をresultに格納します。
extern void hf2000Command(hf2000Info* info, char* command, char* result);
Tclコマンド登録
extern int hf2000_TclAppInit(Tcl_Interp * interp);