diff --git a/Arduino15/packages/SPRESENSE/hardware/spresense/1.0.0/libraries/Camera/Camera.cpp b/Arduino15/packages/SPRESENSE/hardware/spresense/1.0.0/libraries/Camera/Camera.cpp
index b606d0cfb..a0f01b8a2 100644
--- a/Arduino15/packages/SPRESENSE/hardware/spresense/1.0.0/libraries/Camera/Camera.cpp
+++ b/Arduino15/packages/SPRESENSE/hardware/spresense/1.0.0/libraries/Camera/Camera.cpp
@@ -1189,6 +1189,32 @@ CamImage CameraClass::takePicture( )
return CamImage(); // Return empty CamImage because of any error occured.
}
+// Public : Get camera device type.
+CAM_DEVICE_TYPE CameraClass::getDeviceType()
+{
+ CAM_DEVICE_TYPE ret;
+ struct v4l2_capability param = {0};
+
+ ret = CAM_DEVICE_TYPE_UNKNOWN;
+
+ if (is_device_ready())
+ {
+ if (ioctl(video_fd, VIDIOC_QUERYCAP, (unsigned long)¶m) == 0)
+ {
+ if (strncmp((char *)param.driver, "ISX012", sizeof(param.driver)) == 0)
+ {
+ ret = CAM_DEVICE_TYPE_ISX012;
+ }
+ else if (strncmp((char *)param.driver, "ISX019", sizeof(param.driver)) == 0)
+ {
+ ret = CAM_DEVICE_TYPE_ISX019;
+ }
+ }
+ }
+
+ return ret;
+}
+
// Public : Finish to use the Camera.
void CameraClass::end()
{
diff --git a/Arduino15/packages/SPRESENSE/hardware/spresense/1.0.0/libraries/Camera/Camera.h b/Arduino15/packages/SPRESENSE/hardware/spresense/1.0.0/libraries/Camera/Camera.h
index 424f8a873..bdbc0650d 100644
--- a/Arduino15/packages/SPRESENSE/hardware/spresense/1.0.0/libraries/Camera/Camera.h
+++ b/Arduino15/packages/SPRESENSE/hardware/spresense/1.0.0/libraries/Camera/Camera.h
@@ -87,6 +87,16 @@ enum CamErr {
CAM_ERR_NOT_PERMITTED = -10, /**< [en] Operation is not permitted.
[jp] 許容されていない操作です */
};
+/**
+ * @enum CAM_DEVICE_TYPE
+ * @brief [en] Camera device type which is being used
+ * [ja] 使用されているカメラデバイスの種類
+ */
+enum CAM_DEVICE_TYPE {
+ CAM_DEVICE_TYPE_UNKNOWN, /**< [en] Unknown
[ja] 不明 */
+ CAM_DEVICE_TYPE_ISX012, /**< [en] ISX012
[ja] ISX012 */
+ CAM_DEVICE_TYPE_ISX019, /**< [en] ISX019
[ja] ISX019 */
+};
/**
* @enum CAM_WHITE_BALANCE
@@ -716,6 +726,16 @@ class CameraClass {
*/
CamImage takePicture();
+ /**
+ * @brief Get camera device type.
+ * @details [en] Get camera device type which is being used.
+ * [ja] 使用されているカメラデバイスの種類を取得する。
+ * @return [en] Camera device type which is being used.
+ * [ja] 使用されているカメラデバイスの種類。
+ */
+
+ CAM_DEVICE_TYPE getDeviceType();
+
/**
* @brief De-initialize Spresense Camera
* @details [en] De-initialize Spresense Camera. This method cancel everything of
diff --git a/Arduino15/packages/SPRESENSE/hardware/spresense/1.0.0/libraries/Camera/keywords.txt b/Arduino15/packages/SPRESENSE/hardware/spresense/1.0.0/libraries/Camera/keywords.txt
index 94fd246dc..871c65df3 100644
--- a/Arduino15/packages/SPRESENSE/hardware/spresense/1.0.0/libraries/Camera/keywords.txt
+++ b/Arduino15/packages/SPRESENSE/hardware/spresense/1.0.0/libraries/Camera/keywords.txt
@@ -26,6 +26,7 @@ setSceneMode KEYWORD2
setColorEffect KEYWORD2
setStillPictureImageFormat KEYWORD2
takePicture KEYWORD2
+getDeviceType KEYWORD2
end KEYWORD2
# Constants
@@ -39,7 +40,11 @@ CAM_ERR_CANT_CREATE_THREAD LITERAL1
CAM_ERR_INVALID_PARAM LITERAL1
CAM_ERR_NO_MEMORY LITERAL1
CAM_ERR_USR_INUSED LITERAL1
-
+
+CAM_DEVICE_TYPE_UNKNOWN LITERAL1
+CAM_DEVICE_TYPE_ISX012 LITERAL1
+CAM_DEVICE_TYPE_ISX019 LITERAL1
+
CAM_WHITE_BALANCE_INCANDESCENT LITERAL1
CAM_WHITE_BALANCE_FLUORESCENT LITERAL1
CAM_WHITE_BALANCE_DAYLIGHT LITERAL1