diff --git a/khi_robot_control/CMakeLists.txt b/khi_robot_control/CMakeLists.txt index 094fcad..e4fed3d 100644 --- a/khi_robot_control/CMakeLists.txt +++ b/khi_robot_control/CMakeLists.txt @@ -37,21 +37,21 @@ message(STATUS "CMAKE_HOST_SYSTEM_NAME : ${CMAKE_HOST_SYSTEM_NAME}") message(STATUS "CMAKE_HOST_SYSTEM_PROCESSOR : ${CMAKE_HOST_SYSTEM_PROCESSOR}") message(STATUS "CMAKE_LIBRARY_ARCHITECTURE : ${CMAKE_LIBRARY_ARCHITECTURE}") if( ${CMAKE_LIBRARY_ARCHITECTURE} MATCHES ".*x86_64.*" ) - set(krnx_lib_name krnx-x86_64) + set(krnx_arch x86_64) elseif( ${CMAKE_LIBRARY_ARCHITECTURE} MATCHES ".*aarch64.*" ) - set(krnx_lib_name krnx-aarch64) + set(krnx_arch aarch64) elseif( ${CMAKE_LIBRARY_ARCHITECTURE} MATCHES ".*i386.*" ) - set(krnx_lib_name krnx-i386) + set(krnx_arch i386) elseif( ${CMAKE_LIBRARY_ARCHITECTURE} MATCHES ".*arm.*gnueabihf" ) - set(krnx_lib_name krnx-armhf) + set(krnx_arch armhf) elseif( ${CMAKE_LIBRARY_ARCHITECTURE} MATCHES ".*arm.*gnueabi" ) - set(krnx_lib_name krnx-armel) + set(krnx_arch armel) else() message(WARNING "\nCould not detect system processor architecture: assuming 'x86_64'. This may result in non-working binaries.") - set(krnx_lib_name krnx-x86_64) + set(krnx_arch x86_64) endif() -find_library(krnx_LIBRARIES lib${krnx_lib_name}.so PATHS ${PROJECT_SOURCE_DIR}/lib) +find_library(krnx_LIBRARIES libkrnx.so PATHS ${PROJECT_SOURCE_DIR}/lib/${krnx_arch}) message(STATUS "Found KRNX library at: ${krnx_LIBRARIES}") ## Specify C++11 diff --git a/khi_robot_control/include/krnx.h b/khi_robot_control/include/krnx.h index 1cc66e8..d040afc 100644 --- a/khi_robot_control/include/krnx.h +++ b/khi_robot_control/include/krnx.h @@ -56,7 +56,7 @@ extern "C" #ifdef CAROTT3 #define KRNX_MAX_CONTROLLER 16 /* 最大接続コントローラ数 */ #else -#define KRNX_MAX_CONTROLLER 8 /* 最大接続コントローラ数 */ +#define KRNX_MAX_CONTROLLER 16 /* 最大接続コントローラ数 */ #endif #define KRNX_MAX_ROBOT 8 /* 1コントローラがサポートするロボット台数 */ #define KRNX_MAX_PCPROG 3 /* 1コントローラがサポートするPCプログラム数 */ @@ -65,8 +65,14 @@ extern "C" /* 最大軸数 */ #define KRNX_MAXAXES 18 /* this should be same as the defined in AS system */ +/* 最大信号数 */ #define KRNX_MAXSIGNAL 512 +/* FX03496 a++ */ +/* 最大エラー数 */ +#define KRNX_MAX_ERROR_LIST_SIZ 10 +#define KRNX_MAX_ERROR_MSG_SIZ 160 +/* FX03496 a-- */ #define INT_CBUF_SIZ 512 @@ -114,6 +120,7 @@ extern "C" #define KRNX_E_BUFTMO (-0x1012) #define KRNX_E_AVOID_SING (-0x1013) /* EX3578 a++ */ #define KRNX_E_NOAVOID_SING (-0x1014) /* EX3578 a-- */ +#define KRNX_WARN_SING (-0x1015) /* EX3578-6 a */ #define KRNX_E_ASERROR (-0x1020) #define KRNX_E_NOROBOT (-0x1021) @@ -139,6 +146,7 @@ extern "C" #define KRNX_E_BUFEMPTY (-0x2013) #define KRNX_E_BUFNO (-0x2014) #define KRNX_E_BUFDATANUM (-0x2015) +#define KRNX_E_SHMEM_OPEN (-0x2016) #define KRNX_E_RT_INTERNAL (-0x2100) #define KRNX_E_RT_CONNECT (-0x2101) @@ -146,12 +154,18 @@ extern "C" #define KRNX_E_RT_NOTCONNECT (-0x2103) #define KRNX_E_RT_SEND (-0x2104) #define KRNX_E_RT_CYCLIC (-0x2105) +#define KRNX_E_RT_SW_ON (-0x2106) /* FX03195 a */ +#define KRNX_E_RT_NOTSUPPORTED (-0x2107) +#define KRNX_E_RT_COMP_NOT_CLEARED (-0x2108) +#define KRNX_E_RT_SYNCIO_NEED_POSDATA (-0x2109) #define KRNX_E_PCASALREADYRUNNING (-0x2200) /* Dcon-plus6 */ #define KRNX_E_TOOMANYPROC (-0x2201) /* Dcon-plus6 */ #define KRNX_E_INVALIDFILENAME (-0x2202) /* Dcon-plus6 */ #define KRNX_E_ILLCONTNO (-0x2203) /* Dcon-plus16 */ +#define KRNX_E_MAXNICNO (-0x2300) + #define KRNX_E_UNDEF (-0xFFFF) /* RTサイクリック通信データ種類 */ @@ -167,10 +181,22 @@ extern "C" #define KRNX_CYC_KIND_XYZOAT (0x0200) /* 変換位置/速度(現在値/指令値) [rad, mm, rad/s or mm/s][rad/s or mm/s] */ #define KRNX_CYC_KIND_SIG_EXTERNAL (0x0400) /* 外部出力/入力信号 */ #define KRNX_CYC_KIND_SIG_INTERNAL (0x0800) /* 内部信号 */ -#define KRNX_CYC_KIND_SIZE (12) /* 種類数 */ +#define KRNX_CYC_KIND_ROBOT_STATUS (0x1000) /* ロボット状態 */ +#define KRNX_CYC_KIND_SIZE (13) /* 種類数 */ #define KRNX_CYC_KIND_LEGACY (KRNX_CYC_KIND_ANGLE|KRNX_CYC_KIND_ANGLE_REF|KRNX_CYC_KIND_CURRENT|KRNX_CYC_KIND_ERROR) #define KRNX_CYC_KIND_SUPPORTED ((1<