#pragma once
#pragma managed(push, off)
#ifdef LJV7_IF_EXPORT
#define LJV7_IF_API __declspec(dllexport)
#else
#define LJV7_IF_API __declspec(dllimport)
#endif
///Setting value storage level designation
typedef enum {
LJV7IF_SETTING_DEPTH_WRITE = 0x00, // Write settings area
LJV7IF_SETTING_DEPTH_RUNNING = 0x01, // Running settings area
LJV7IF_SETTING_DEPTH_SAVE = 0x02, // Save area
} LJV7IF_SETTING_DEPTH;
/// Initialization target setting item designation
typedef enum {
LJV7IF_INIT_SETTING_TARGET_PRG0 = 0x00, // Program0
LJV7IF_INIT_SETTING_TARGET_PRG1 = 0x01, // Program1
LJV7IF_INIT_SETTING_TARGET_PRG2 = 0x02, // Program2
LJV7IF_INIT_SETTING_TARGET_PRG3 = 0x03, // Program3
LJV7IF_INIT_SETTING_TARGET_PRG4 = 0x04, // Program4
LJV7IF_INIT_SETTING_TARGET_PRG5 = 0x05, // Program5
LJV7IF_INIT_SETTING_TARGET_PRG6 = 0x06, // Program6
LJV7IF_INIT_SETTING_TARGET_PRG7 = 0x07, // Program7
LJV7IF_INIT_SETTING_TARGET_PRG8 = 0x08, // Program8
LJV7IF_INIT_SETTING_TARGET_PRG9 = 0x09, // Program9
LJV7IF_INIT_SETTING_TARGET_PRG10 = 0x0A, // Program10
LJV7IF_INIT_SETTING_TARGET_PRG11 = 0x0B, // Program11
LJV7IF_INIT_SETTING_TARGET_PRG12 = 0x0C, // Program12
LJV7IF_INIT_SETTING_TARGET_PRG13 = 0x0D, // Program13
LJV7IF_INIT_SETTING_TARGET_PRG14 = 0x0E, // Program14
LJV7IF_INIT_SETTING_TARGET_PRG15 = 0x0F, // Program15
} LJV7IF_INIT_SETTING_TARGET;
/// Definition that indicates the validity of a measurement value
typedef enum {
LJV7IF_MEASURE_DATA_INFO_VALID = 0x00, // Normal measurement data
LJV7IF_MEASURE_DATA_INFO_ALARM = 0x01, // Measurement alarm data
LJV7IF_MEASURE_DATA_INFO_WAIT = 0x02, // Judgment wait data
} LJV7IF_MEASURE_DATA_INFO;
/// Definition that indicates the tolerance judgment result of the measurement value
typedef enum {
LJV7IF_JUDGE_RESULT_HI = 0x01, // HI
LJV7IF_JUDGE_RESULT_GO = 0x02, // GO
LJV7IF_JUDGE_RESULT_LO = 0x04, // LO
} LJV7IF_JUDGE_RESULT;
/// Get profile target buffer designation
typedef enum {
LJV7IF_PROFILE_BANK_ACTIVE = 0x00, // Active surface
LJV7IF_PROFILE_BANK_INACTIVE = 0x01 // Inactive surface
} LJV7IF_PROFILE_BANK;
/// Get profile position specification method designation (batch measurement: off)
typedef enum {
LJV7IF_PROFILE_POS_CURRENT = 0x00, // From current
LJV7IF_PROFILE_POS_OLDEST = 0x01, // From oldest
LJV7IF_PROFILE_POS_SPEC = 0x02, // Specify position
} LJV7IF_PROFILE_POS;
/// Get profile batch data position specification method designation (batch measurement: on)
typedef enum {
LJV7IF_BATCH_POS_CURRENT = 0x00, // From current
LJV7IF_BATCH_POS_SPEC = 0x02, // Specify position
LJV7IF_BATCH_POS_COMMITED = 0x03, // From current after batch commitment
LJV7IF_BATCH_POS_CURRENT_ONLY = 0x04, // Current only
} LJV7IF_BATCH_POS;
/// Number of OUT settings
const static LONG LJV7IF_OUT_COUNT = 16;
/// Number of simultaneously connectable controllers
const static LONG LJV7IF_DEVICE_COUNT = 6;
/// Ethernet settings structure
typedef struct {
BYTE abyIpAddress[4];
WORD wPortNo;
BYTE reserve[2];
} LJV7IF_ETHERNET_CONFIG;
/// Date/time structure
typedef struct {
BYTE byYear; // year
BYTE byMonth; // month
BYTE byDay; // day
BYTE byHour; // hour
BYTE byMinute; // min.
BYTE bySecond; // sec.
BYTE reserve[2]; // 保留
#pragma managed(push, off)
#ifdef LJV7_IF_EXPORT
#define LJV7_IF_API __declspec(dllexport)
#else
#define LJV7_IF_API __declspec(dllimport)
#endif
///Setting value storage level designation
typedef enum {
LJV7IF_SETTING_DEPTH_WRITE = 0x00, // Write settings area
LJV7IF_SETTING_DEPTH_RUNNING = 0x01, // Running settings area
LJV7IF_SETTING_DEPTH_SAVE = 0x02, // Save area
} LJV7IF_SETTING_DEPTH;
/// Initialization target setting item designation
typedef enum {
LJV7IF_INIT_SETTING_TARGET_PRG0 = 0x00, // Program0
LJV7IF_INIT_SETTING_TARGET_PRG1 = 0x01, // Program1
LJV7IF_INIT_SETTING_TARGET_PRG2 = 0x02, // Program2
LJV7IF_INIT_SETTING_TARGET_PRG3 = 0x03, // Program3
LJV7IF_INIT_SETTING_TARGET_PRG4 = 0x04, // Program4
LJV7IF_INIT_SETTING_TARGET_PRG5 = 0x05, // Program5
LJV7IF_INIT_SETTING_TARGET_PRG6 = 0x06, // Program6
LJV7IF_INIT_SETTING_TARGET_PRG7 = 0x07, // Program7
LJV7IF_INIT_SETTING_TARGET_PRG8 = 0x08, // Program8
LJV7IF_INIT_SETTING_TARGET_PRG9 = 0x09, // Program9
LJV7IF_INIT_SETTING_TARGET_PRG10 = 0x0A, // Program10
LJV7IF_INIT_SETTING_TARGET_PRG11 = 0x0B, // Program11
LJV7IF_INIT_SETTING_TARGET_PRG12 = 0x0C, // Program12
LJV7IF_INIT_SETTING_TARGET_PRG13 = 0x0D, // Program13
LJV7IF_INIT_SETTING_TARGET_PRG14 = 0x0E, // Program14
LJV7IF_INIT_SETTING_TARGET_PRG15 = 0x0F, // Program15
} LJV7IF_INIT_SETTING_TARGET;
/// Definition that indicates the validity of a measurement value
typedef enum {
LJV7IF_MEASURE_DATA_INFO_VALID = 0x00, // Normal measurement data
LJV7IF_MEASURE_DATA_INFO_ALARM = 0x01, // Measurement alarm data
LJV7IF_MEASURE_DATA_INFO_WAIT = 0x02, // Judgment wait data
} LJV7IF_MEASURE_DATA_INFO;
/// Definition that indicates the tolerance judgment result of the measurement value
typedef enum {
LJV7IF_JUDGE_RESULT_HI = 0x01, // HI
LJV7IF_JUDGE_RESULT_GO = 0x02, // GO
LJV7IF_JUDGE_RESULT_LO = 0x04, // LO
} LJV7IF_JUDGE_RESULT;
/// Get profile target buffer designation
typedef enum {
LJV7IF_PROFILE_BANK_ACTIVE = 0x00, // Active surface
LJV7IF_PROFILE_BANK_INACTIVE = 0x01 // Inactive surface
} LJV7IF_PROFILE_BANK;
/// Get profile position specification method designation (batch measurement: off)
typedef enum {
LJV7IF_PROFILE_POS_CURRENT = 0x00, // From current
LJV7IF_PROFILE_POS_OLDEST = 0x01, // From oldest
LJV7IF_PROFILE_POS_SPEC = 0x02, // Specify position
} LJV7IF_PROFILE_POS;
/// Get profile batch data position specification method designation (batch measurement: on)
typedef enum {
LJV7IF_BATCH_POS_CURRENT = 0x00, // From current
LJV7IF_BATCH_POS_SPEC = 0x02, // Specify position
LJV7IF_BATCH_POS_COMMITED = 0x03, // From current after batch commitment
LJV7IF_BATCH_POS_CURRENT_ONLY = 0x04, // Current only
} LJV7IF_BATCH_POS;
/// Number of OUT settings
const static LONG LJV7IF_OUT_COUNT = 16;
/// Number of simultaneously connectable controllers
const static LONG LJV7IF_DEVICE_COUNT = 6;
/// Ethernet settings structure
typedef struct {
BYTE abyIpAddress[4];
WORD wPortNo;
BYTE reserve[2];
} LJV7IF_ETHERNET_CONFIG;
/// Date/time structure
typedef struct {
BYTE byYear; // year
BYTE byMonth; // month
BYTE byDay; // day
BYTE byHour; // hour
BYTE byMinute; // min.
BYTE bySecond; // sec.
BYTE reserve[2]; // 保留
} LJV7IF_TIME;
typedef void (_cdecl *LJV7IF_CALLBACK)(BYTE* pBuffer, DWORD dwSize, DWORD dwCount, DWORD dwNotify, DWORD dwUser);
extern "C"
{
// Functions
// Operations for the DLL
/**
Initializes the DLL
@return Return code
*/
LJV7_IF_API LONG WINAPI LJV7IF_Initialize(void);
/**
Finalize DLL
@return Return code
*/
LJV7_IF_API LONG WINAPI LJV7IF_Finalize(void);
/**
Get DLL version
@return DLL version
@note The initial version (1.2.3.4) is expressed as 0x1234.
*/
LJV7_IF_API DWORD WINAPI LJV7IF_GetVersion(void);