301 lines
13 KiB
C
301 lines
13 KiB
C
#pragma once
|
||
|
||
#ifdef LKIF2_EXPORTS
|
||
#define EXP __declspec(dllexport)
|
||
#else
|
||
#define EXP __declspec(dllimport)
|
||
#endif
|
||
|
||
#include "LKIFCommonDefine.h"
|
||
#include "Winsock2.h"
|
||
|
||
// リターンコード
|
||
typedef enum {
|
||
RC_OK = 0x0000, // 正常終了
|
||
///////////////////////////////////////////////
|
||
// コントローラからの通信エラー通知
|
||
//
|
||
RC_NAK_COMMAND = 0x1001, // コマンドエラー
|
||
RC_NAK_COMMAND_LENGTH, // コマンド長エラー
|
||
RC_NAK_TIMEOUT, // タイムアウト
|
||
RC_NAK_CHECKSUM, // チェックサムエラー
|
||
RC_NAK_INVALID_STATE, // 状態エラー
|
||
RC_NAK_OTHER, // その他エラー
|
||
RC_NAK_PARAMETER, // パラメータエラー
|
||
RC_NAK_OUT_STAGE, // OUT演算段数エラー
|
||
RC_NAK_OUT_HEAD_NUM, // 使用ヘッド数、OUT数オーバー
|
||
RC_NAK_OUT_INVALID_CALC, // 演算対象に指定できないOUTを指定
|
||
RC_NAK_OUT_VOID, // 演算対象に指定されているOUTが無い
|
||
RC_NAK_INVALID_CYCLE, // 使用できないサンプリング周期
|
||
RC_NAK_CTRL_ERROR, // メインユニット異常
|
||
RC_NAK_SRAM_ERROR, // 設定値異常
|
||
///////////////////////////////////////////////
|
||
// 通信DLLのエラー通知
|
||
//
|
||
RC_ERR_OPEN_DEVICE = 0x2000,// デバイスのオープンに失敗
|
||
RC_ERR_NO_DEVICE, // デバイスがオープンされていない
|
||
RC_ERR_SEND, // コマンド送信エラー
|
||
RC_ERR_RECEIVE, // レスポンス受信エラー
|
||
RC_ERR_TIMEOUT, // タイムアウト
|
||
RC_ERR_NODATA, // データなし
|
||
RC_ERR_NOMEMORY, // 空きメモリなし
|
||
|
||
RC_ERR_DISCONNECT, // 断線の可能性あり
|
||
RC_ERR_UNKNOWN, // 未定義エラー
|
||
} RC;
|
||
|
||
// 測定値
|
||
typedef struct {
|
||
int OutNo; // OUT番号(0~11)
|
||
LKIF_FLOATRESULT FloatResult; // 有効データかどうか
|
||
float Value; // 測定値
|
||
} LKIF_FLOATVALUE_OUT;
|
||
|
||
// IPアドレス
|
||
typedef struct {
|
||
IN_ADDR IPAddress;
|
||
} LKIF_OPENPARAM_ETHERNET;
|
||
|
||
extern "C"
|
||
{
|
||
///////////////////////////////////////////////
|
||
// 測定制御コマンド
|
||
//
|
||
// 測定値出力(単一)
|
||
EXP RC WINAPI LKIF2_GetCalcDataSingle(IN int OutNo,OUT LKIF_FLOATVALUE_OUT * CalcData);
|
||
// 測定値出力(複数)
|
||
EXP RC WINAPI LKIF2_GetCalcDataMulti(IN LKIF_OUTNO OutNo, OUT LKIF_FLOATVALUE_OUT * CalcData);
|
||
// 測定値出力(ALL)
|
||
EXP RC WINAPI LKIF2_GetCalcDataALL(OUT int * OutNo,OUT LKIF_FLOATVALUE_OUT * CalcData);
|
||
|
||
// タイミングON/OFF(単一)
|
||
EXP RC WINAPI LKIF2_SetTimingSingle(IN int OutNo,IN BOOL OnOff);
|
||
// タイミングON/OFF(複数)
|
||
EXP RC WINAPI LKIF2_SetTimingMulti(IN LKIF_OUTNO OutNo,IN BOOL OnOff);
|
||
// タイミングON/OFF(同期)
|
||
EXP RC WINAPI LKIF2_SetTimingSync(IN BOOL OnOff);
|
||
|
||
// オートゼロON/OFF(単一)
|
||
EXP RC WINAPI LKIF2_SetZeroSingle(IN int OutNo,IN BOOL OnOff);
|
||
// オートゼロON/OFF(複数)
|
||
EXP RC WINAPI LKIF2_SetZeroMulti(IN LKIF_OUTNO OutNo, IN BOOL OnOff);
|
||
// オートゼロON/OFF(同期)
|
||
EXP RC WINAPI LKIF2_SetZeroSync(IN BOOL OnOff);
|
||
|
||
// 測定値リセット(単一)
|
||
EXP RC WINAPI LKIF2_SetResetSingle(IN int OutNo);
|
||
// 測定値リセット(複数)
|
||
EXP RC WINAPI LKIF2_SetResetMulti(IN LKIF_OUTNO OutNo);
|
||
// 測定値リセット(同期)
|
||
EXP RC WINAPI LKIF2_SetResetSync();
|
||
|
||
// パネルロック
|
||
EXP RC WINAPI LKIF2_SetPanelLock(IN BOOL OnOff);
|
||
|
||
// プログラム切替
|
||
EXP RC WINAPI LKIF2_SetProgramNo(IN int ProgramNo);
|
||
// プログラム確認
|
||
EXP RC WINAPI LKIF2_GetProgramNo(OUT int * ProgramNo);
|
||
|
||
// データストレージ開始
|
||
EXP RC WINAPI LKIF2_DataStorageStart();
|
||
// データストレージ停止
|
||
EXP RC WINAPI LKIF2_DataStorageStop();
|
||
// データストレージ出力
|
||
EXP RC WINAPI LKIF2_DataStorageGetData(IN int OutNo,IN int NumOfBuffer,OUT LKIF_FLOATVALUE * OutBuffer,OUT int *NumReceived);
|
||
// データストレージ初期化
|
||
EXP RC WINAPI LKIF2_DataStorageInit();
|
||
// データストレージ蓄積状態出力
|
||
EXP RC WINAPI LKIF2_DataStorageGetStatus(OUT BOOL * lsStorage,OUT int * NumStorageData);
|
||
// 受光波形取得
|
||
EXP RC WINAPI LKIF2_GetLight(IN int HeadNo,IN int PeakNo,OUT int * MeasurePosition,OUT BYTE * WaveData);
|
||
|
||
///////////////////////////////////////////////
|
||
// 設定内容変更コマンド
|
||
//
|
||
// 表示パネル切り替え
|
||
EXP RC WINAPI LKIF2_SetPanel(IN int UpperDisp,IN int LowerDisp);
|
||
// 公差設定
|
||
EXP RC WINAPI LKIF2_SetTolerance(IN int OutNo,IN int UpperLimit,IN int LowerLimit,IN int Hystersys);
|
||
// ABLE設定
|
||
EXP RC WINAPI LKIF2_SetAbleMode(IN int HeadNo,IN LKIF_ABLEMODE AbleMode);
|
||
// ABLE制御範囲設定
|
||
EXP RC WINAPI LKIF2_SetAbleMinMax(IN int HeadNo,IN int Min,IN int Max);
|
||
// 測定モード設定
|
||
EXP RC WINAPI LKIF2_SetMeasureMode(IN int HeadNo,IN LKIF_MEASUREMODE MeasureMode);
|
||
// 基点キテン設定
|
||
EXP RC WINAPI LKIF2_SetBasicPoint(IN int HeadNo,IN LKIF_BASICPOINT BasicPoint);
|
||
// アラーム処理回数設定
|
||
EXP RC WINAPI LKIF2_SetNumAlarm(IN int HeadNo,IN int AlarmNum);
|
||
// アラーム復帰回数設定
|
||
EXP RC WINAPI LKIF2_SetNumRecovery(IN int HeadNo,IN int RecoveryNum);
|
||
// アラームレベル設定
|
||
EXP RC WINAPI LKIF2_SetAlarmLevel(IN int HeadNo,IN int AlarmLevel);
|
||
// ABLEチューニング開始
|
||
EXP RC WINAPI LKIF2_AbleStart(IN int HeadNo);
|
||
// ABLEチューニング終了
|
||
EXP RC WINAPI LKIF2_AbleStop();
|
||
// ABLEチューニング中止
|
||
EXP RC WINAPI LKIF2_AbleCancel();
|
||
// 設置モード設定
|
||
EXP RC WINAPI LKIF2_SetReflectionMode(IN int HeadNo,IN LKIF_REFLECTIONMODE ReflectionMode);
|
||
// マスク設定
|
||
EXP RC WINAPI LKIF2_SetMask(IN int HeadNo,IN BOOL OnOff,IN int Pos1,IN int Pos2);
|
||
// メディアン設定
|
||
EXP RC WINAPI LKIF2_SetMedian(IN int HeadNo,IN LKIF_MEDIAN Median);
|
||
// LASER CTRLグループ設定
|
||
EXP RC WINAPI LKIF2_SetLaserCtrlGroup(IN int HeadNo,IN LKIF_LASER_CTRL_GROUP LaserCtrlGroup);
|
||
// レンジ設定
|
||
EXP RC WINAPI LKIF2_SetRange(IN int HeadNo,IN LKIF_RANGE Range);
|
||
// 相互干渉グループ設定
|
||
EXP RC WINAPI LKIF2_SetMutualInterferencePreventionGroup(IN int HeadNo,IN LKIF_MUTUAL_INTERFERENCE_PREVENTION_GROUP Group);
|
||
// 演算方式設定
|
||
EXP RC WINAPI LKIF2_SetCalcMethod(IN int OutNo,IN LKIF_CALCMETHOD CalcMethod,IN int HeadOutNo);
|
||
// 測定面設定
|
||
EXP RC WINAPI LKIF2_SetCalcTarget(IN int OutNo,IN LKIF_CALCTARGET CalcTarget);
|
||
// 演算対象設定(加減算)
|
||
EXP RC WINAPI LKIF2_SetOutAddSub(IN int OutNo,IN int AddSub1,IN int AddSub2);
|
||
// 演算対象設定(AVE/MAX/MIN/P-P)
|
||
EXP RC WINAPI LKIF2_SetOutOperation(IN int OutNo,IN LKIF_OUTNO IN TargetOut);
|
||
// スケーリング設定
|
||
EXP RC WINAPI LKIF2_SetScaling(IN int OutNo,IN int InputValue1,IN int OutputValue1,IN int InputValue2,IN int OutputValue2);
|
||
// フィルタ設定
|
||
EXP RC WINAPI LKIF2_SetFilter(IN int OutNo,IN LKIF_FILTERMODE FilterMode,IN LKIF_FILTERPARA FilterPara);
|
||
// トリガモード設定
|
||
EXP RC WINAPI LKIF2_SetTriggerMode(IN int OutNo,IN LKIF_TRIGGERMODE TriggerMode);
|
||
// オフセット設定
|
||
EXP RC WINAPI LKIF2_SetOffset(IN int OutNo,IN int Offset);
|
||
/// 計測モード設定
|
||
EXP RC WINAPI LKIF2_SetCalcMode(IN int OutNo,IN LKIF_CALCMODE CalcMode);
|
||
/// アナログ出力スケーリング設定
|
||
EXP RC WINAPI LKIF2_SetAnalogScaling(IN int OutNo,IN int InputValue1,IN int OutputVoltage1,IN int InputValue2,IN int OutputVoltage2);
|
||
/// 最小表示単位設定
|
||
EXP RC WINAPI LKIF2_SetDisplayUnit(IN int OutNo,IN LKIF_DISPLAYUNIT DisplayUnit);
|
||
/// 測定種別設定
|
||
EXP RC WINAPI LKIF2_SetMeasureType(IN int OutNo,IN LKIF_MEASURETYPE MeasureType);
|
||
/// 同期設定
|
||
EXP RC WINAPI LKIF2_SetSynchronization(IN int OutNo,IN BOOL OnOff);
|
||
/// ストレージ蓄積対象設定
|
||
EXP RC WINAPI LKIF2_SetStorageTarget(IN int OutNo,IN BOOL OnOff);
|
||
/// サンプリング周期設定
|
||
EXP RC WINAPI LKIF2_SetSamplingCycle(IN LKIF2_SAMPLINGCYCLE SamplingCycle);
|
||
/// 相互干渉防止設定
|
||
EXP RC WINAPI LKIF2_SetMutualInterferencePrevention(IN LKIF_MUTUAL_INTERFERENCE_PREVENTION OnOff);
|
||
/// 判定出力形態設定
|
||
EXP RC WINAPI LKIF2_SetToleranceComparatorOutputFormat(IN LKIF_TOLERANCE_COMPARATOR_OUTPUT_FORMAT OutputFormat);
|
||
/// ストローブ時間設定
|
||
EXP RC WINAPI LKIF2_SetStrobeTime(IN LKIF_STOROBETIME StrobeTime);
|
||
/// データストレージ設定
|
||
EXP RC WINAPI LKIF2_SetDataStorage(IN int NumStorage,IN LKIF_STORAGECYCLE StorageCycle);
|
||
/// アナログ出力ch設定
|
||
EXP RC WINAPI LKIF2_SetAnalogChannel(IN int ChNo,IN int OutNo);
|
||
/// アラーム出力形態設定
|
||
EXP RC WINAPI LKIF2_SetAlarmOutputForm(IN LKIF_ALARM_OUTPUT_FORM AlarmOutputForm);
|
||
/// 使用ヘッド数設定
|
||
EXP RC WINAPI LKIF2_SetNumOfUsedHeads(IN int NumOfUsedHeads);
|
||
/// 使用OUT数設定
|
||
EXP RC WINAPI LKIF2_SetNumOfUsedOut(IN int NumOfUsedOut);
|
||
/// 使用アナログ出力ch数設定
|
||
EXP RC WINAPI LKIF2_SetNumOfUsedAnalogCh(IN int NumOfUsedAnalogCh);
|
||
|
||
///////////////////////////////////////////////
|
||
// 設定内容変更コマンド
|
||
//
|
||
// 表示パネル画面確認
|
||
EXP RC WINAPI LKIF2_GetPanel(OUT int * UpperDisp,OUT int * LowerDisp);
|
||
// 公差取得
|
||
EXP RC WINAPI LKIF2_GetTolerance(IN int OutNo,OUT int * UpperLimit,OUT int * LowerLimit,OUT int * Hysteresis);
|
||
// ABLE取得
|
||
EXP RC WINAPI LKIF2_GetAbleMode(IN int HeadNo,OUT LKIF_ABLEMODE * AbleMode);
|
||
// ABLE制御範囲取得
|
||
EXP RC WINAPI LKIF2_GetAbleMinMax(IN int HeadNo,OUT int * Min,OUT int * Max);
|
||
// 測定モード取得
|
||
EXP RC WINAPI LKIF2_GetMeasureMode(IN int HeadNo,OUT LKIF_MEASUREMODE * MeasureMode);
|
||
// 基点取得
|
||
EXP RC WINAPI LKIF2_GetBasicPoint(IN int HeadNo,OUT LKIF_BASICPOINT * BasicPoint);
|
||
// アラーム処理回数取得
|
||
EXP RC WINAPI LKIF2_GetNumAlarm(IN int HeadNo,OUT int * AlarmNum);
|
||
// アラーム復帰回数取得
|
||
EXP RC WINAPI LKIF2_GetNumRecovery(IN int HeadNo,OUT int * RecoveryNum);
|
||
// アラームレベル取得
|
||
EXP RC WINAPI LKIF2_GetAlarmLevel(IN int HeadNo,OUT int * AlarmLevel);
|
||
// 設置モード取得
|
||
EXP RC WINAPI LKIF2_GetReflectionMode(IN int HeadNo,OUT LKIF_REFLECTIONMODE * ReflectionMode);
|
||
// マスク取得
|
||
EXP RC WINAPI LKIF2_GetMask(IN int HeadNo,OUT BOOL * OnOff,OUT int * Pos1,OUT int * Pos2);
|
||
// メディアン取得
|
||
EXP RC WINAPI LKIF2_GetMedian(IN int HeadNo,OUT LKIF_MEDIAN * Median);
|
||
// LASER CTRLグループ取得
|
||
EXP RC WINAPI LKIF2_GetLaserCtrlGroup(IN int HeadNo,OUT LKIF_LASER_CTRL_GROUP * LaserCtrlGroup);
|
||
// レンジ取得
|
||
EXP RC WINAPI LKIF2_GetRange(IN int HeadNo,OUT LKIF_RANGE * Range);
|
||
// 相互干渉グループ取得
|
||
EXP RC WINAPI LKIF2_GetMutualInterferencePreventionGroup(IN int HeadNo,OUT LKIF_MUTUAL_INTERFERENCE_PREVENTION_GROUP * Group);
|
||
// 演算方式取得
|
||
EXP RC WINAPI LKIF2_GetCalcMethod(IN int OutNo,OUT LKIF_CALCMETHOD * CalcMethod,OUT int * HeadOutNo);
|
||
// 測定面取得
|
||
EXP RC WINAPI LKIF2_GetCalcTarget(IN int OutNo,OUT LKIF_CALCTARGET * CalcTarget);
|
||
// 演算対象取得(加減算)
|
||
EXP RC WINAPI LKIF2_GetOutAddSub(IN int OutNo,OUT int * AddSub1,OUT int * AddSub2);
|
||
// 演算対象取得(AVE/P-P/MAX/MIN)
|
||
EXP RC WINAPI LKIF2_GetOutOperation(IN int OutNo,OUT LKIF_OUTNO * TargetOut);
|
||
// スケーリング取得
|
||
EXP RC WINAPI LKIF2_GetScaling(IN int OutNo,OUT int * InputValue1,OUT int * OutputValue1,OUT int * InputValue2,OUT int * OutputValue2);
|
||
// フィルタモード取得
|
||
EXP RC WINAPI LKIF2_GetFilter(IN int OutNo,OUT LKIF_FILTERMODE * FilterMode,OUT LKIF_FILTERPARA * FilterPara);
|
||
// トリガモード取得
|
||
EXP RC WINAPI LKIF2_GetTriggerMode(IN int OutNo,OUT LKIF_TRIGGERMODE * TriggerMode);
|
||
// オフセット取得
|
||
EXP RC WINAPI LKIF2_GetOffset(IN int OutNo,OUT int * Offset);
|
||
// 計測モード取得
|
||
EXP RC WINAPI LKIF2_GetCalcMode(IN int OutNo,OUT LKIF_CALCMODE * CalcMode);
|
||
// アナログ出力スケーリング取得
|
||
EXP RC WINAPI LKIF2_GetAnalogScaling(IN int OutNo,OUT int * InputValue1,OUT int * OutputVoltage1,OUT int * InputValue2,OUT int * OutputVoltage2);
|
||
// 最小表示単位取得
|
||
EXP RC WINAPI LKIF2_GetDisplayUnit(IN int OutNo,OUT LKIF_DISPLAYUNIT * DisplayUnit);
|
||
// 測定種別取得
|
||
EXP RC WINAPI LKIF2_GetMeasureType(IN int OutNo,OUT LKIF_MEASURETYPE * MeasureType);
|
||
// 同期取得
|
||
EXP RC WINAPI LKIF2_GetSynchronization(IN int OutNo,OUT BOOL * OnOff);
|
||
// ストレージ蓄積対象取得
|
||
EXP RC WINAPI LKIF2_GetStorageTarget(IN int OutNo,OUT BOOL * OnOff);
|
||
// サンプリング周期取得
|
||
EXP RC WINAPI LKIF2_GetSamplingCycle(OUT LKIF2_SAMPLINGCYCLE * SamplingCycle);
|
||
// 相互干渉防止取得
|
||
EXP RC WINAPI LKIF2_GetMutualInterferencePrevention(OUT LKIF_MUTUAL_INTERFERENCE_PREVENTION * OnOff);
|
||
// 判定出力形態取得
|
||
EXP RC WINAPI LKIF2_GetToleranceComparatorOutputFormat(OUT LKIF_TOLERANCE_COMPARATOR_OUTPUT_FORMAT * OutputFormat);
|
||
// ストローブ時間取得
|
||
EXP RC WINAPI LKIF2_GetStrobeTime(OUT LKIF_STOROBETIME * StrobeTime);
|
||
// データストレージ取得
|
||
EXP RC WINAPI LKIF2_GetDataStorage(OUT int * NumStorage,OUT LKIF_STORAGECYCLE * StorageCycle);
|
||
// アナログ出力ch取得
|
||
EXP RC WINAPI LKIF2_GetAnalogChannel(IN int ChNo,OUT int * OutNo);
|
||
// アラーム出力形態取得
|
||
EXP RC WINAPI LKIF2_GetAlarmOutputForm(OUT LKIF_ALARM_OUTPUT_FORM * AlarmOutputForm);
|
||
// 使用ヘッド数取得
|
||
EXP RC WINAPI LKIF2_GetNumOfUsedHeads(OUT int * NumOfUsedHeads);
|
||
// 使用Out数取得
|
||
EXP RC WINAPI LKIF2_GetNumOfUsedOut(OUT int * NumOfUsedOut);
|
||
// 使用アナログ出力Ch数取得
|
||
EXP RC WINAPI LKIF2_GetNumOfUsedAnalogCh(OUT int * NumOfUsedAnalogCh);
|
||
|
||
///////////////////////////////////////////////
|
||
// モード変更コマンド
|
||
//
|
||
// 測定開始(モード切替)
|
||
EXP RC WINAPI LKIF2_StartMeasure();
|
||
// 測定停止(モード切替)
|
||
EXP RC WINAPI LKIF2_StopMeasure();
|
||
|
||
///////////////////////////////////////////////
|
||
// その他のコマンド
|
||
//
|
||
// USBデバイスオープン
|
||
EXP RC WINAPI LKIF2_OpenDeviceUsb();
|
||
/// Ethernetデバイスオープン
|
||
EXP RC WINAPI LKIF2_OpenDeviceETHER(LKIF_OPENPARAM_ETHERNET * OpenParam);
|
||
/// デバイスクローズ
|
||
EXP RC WINAPI LKIF2_CloseDevice();
|
||
|
||
} |