#ifndef _RKAIQ_COMMON_H__ #define _RKAIQ_COMMON_H__ #include #include #include #include #include #include "camera_capture.h" #include "camera_infohw.h" #include "logger/log.h" #include "rkaiq_cmdid.h" #if 0 #include "rkaiq_manager.h" #endif #ifdef ENABLE_RSTP_SERVER #include "rtsp_server.h" #endif #include "tcp_server.h" typedef enum { KNOCK_KNOCK = 0x80, READY, BUSY, RES_FAILED = 0x00, RES_SUCCESS } cmdStatus; typedef enum { PACKET_TYPE_SET = 0x00, PACKET_TYPE_GET = 0x01, PACKET_TYPE_STATUS = 0x80 } packeType; typedef enum { PC_TO_DEVICE = 0x00, DEVICE_TO_PC } cmdType; #define RKAIQ_TOOL_VERSION "v0.0.1" #define STOP_RKLUNCH_CMD "sh /oem/RkLunch-stop.sh" #if 0 extern std::shared_ptr rkaiq_manager; #endif #define RKID_ISP_ON "ISP_ON" #define RKID_ISP_OFF "ISP_OFF" #define RKID_CHECK "IGNORE" #define RKID_SEND_FILE "SendFile" #define RKID_OFFLINE_RAW "OffRAW" #pragma pack(1) typedef struct CommandData_s { uint8_t RKID[8]; uint16_t cmdType; uint16_t cmdID; uint8_t version[8]; uint16_t datLen; uint8_t dat[48]; uint16_t checkSum; } CommandData_t; #pragma pack() typedef enum { CMD_TYPE_UAPI_SET = 0x00, CMD_TYPE_UAPI_GET = 0x01, CMD_TYPE_CAPTURE = 0x02, CMD_TYPE_DUMP_RAW = 0x03, CMD_TYPE_STATUS = 0x80, CMD_TYPE_STREAMING = 0xff, } FuncType_e; typedef enum { CMD_ID_CAPTURE_STATUS = 0x0001, CMD_ID_CAPTURE_RAW_CAPTURE = 0x0002, CMD_ID_CAPTURE_YUV_CAPTURE = 0x0006, CMD_ID_CAPTURE_ONLINE_RAW_CAPTURE = 0x0007, } RkispCmdCaptureID_e; typedef enum { CMD_ID_GET_STATUS = 0x0100, CMD_ID_GET_MODE = 0x0101, CMD_ID_START_RTSP = 0x0102, CMD_ID_STOP_RTSP = 0x0103, } RkispCmdStatusID_e; typedef enum { DATA_ID_CAPTURE_RAW_STATUS = 0x00, DATA_ID_CAPTURE_RAW_GET_PARAM = 0x01, DATA_ID_CAPTURE_RAW_SET_PARAM = 0x02, DATA_ID_CAPTURE_RAW_START = 0x03, DATA_ID_CAPTURE_RAW_CHECKSUM = 0x04, } RkispCmdRawCaptureProcID_e; typedef enum { DATA_ID_CAPTURE_YUV_STATUS = 0x00, DATA_ID_CAPTURE_YUV_GET_PARAM = 0x01, DATA_ID_CAPTURE_YUV_SET_PARAM = 0x02, DATA_ID_CAPTURE_YUV_START = 0x03, DATA_ID_CAPTURE_YUV_CHECKSUM = 0x04 } RkispCmdYuvCaptureProcID_e; typedef enum { DATA_ID_CAPTURE_ONLINE_RAW_STATUS = 0x10, DATA_ID_CAPTURE_ONLINE_RAW_GET_PARAM, DATA_ID_CAPTURE_ONLINE_RAW_SET_PARAM, DATA_ID_CAPTURE_ONLINE_RAW_START, DATA_ID_CAPTURE_ONLINE_RAW_CHECKSUM, } RkispCmdOnlineRawCaptureProcID_e; typedef enum { RKISP_FORMAT_NV12 = 0x0, RKISP_FORMAT_NV16, RKISP_FORMAT_YUYV, RKISP_FORMAT_FBC0, } RkispFmt_e; #define RKCIF_CMD_GET_CSI_MEMORY_MODE _IOR('V', BASE_VIDIOC_PRIVATE + 0, int) #define RKCIF_CMD_SET_CSI_MEMORY_MODE _IOW('V', BASE_VIDIOC_PRIVATE + 1, int) #define RKCIF_CMD_GET_SCALE_BLC _IOR('V', BASE_VIDIOC_PRIVATE + 2, struct bayer_blc) #define RKCIF_CMD_SET_SCALE_BLC _IOW('V', BASE_VIDIOC_PRIVATE + 3, struct bayer_blc) /* cif memory mode * 0: raw12/raw10/raw8 8bit memory compact * 1: raw12/raw10 16bit memory one pixel * low align for rv1126/rv1109/rk356x * |15|14|13|12|11|10| 9| 8| 7| 6| 5| 4| 3| 2| 1| 0| * | -| -| -| -|11|10| 9| 8| 7| 6| 5| 4| 3| 2| 1| 0| * 2: raw12/raw10 16bit memory one pixel * high align for rv1126/rv1109/rk356x * |15|14|13|12|11|10| 9| 8| 7| 6| 5| 4| 3| 2| 1| 0| * |11|10| 9| 8| 7| 6| 5| 4| 3| 2| 1| 0| -| -| -| -| * * note: rv1109/rv1126/rk356x dvp only support uncompact mode, * and can be set low align or high align */ enum cif_csi_lvds_memory { CSI_LVDS_MEM_COMPACT = 0, CSI_LVDS_MEM_WORD_LOW_ALIGN = 1, CSI_LVDS_MEM_WORD_HIGH_ALIGN = 2, }; /* black level for scale image * The sequence of pattern00~03 is the same as the output of sensor bayer */ struct bayer_blc { uint8_t pattern00; uint8_t pattern01; uint8_t pattern02; uint8_t pattern03; }; #endif