// 下列 ifdef 块是创建使从 DLL 导出更简单的 // 宏的标准方法。此 DLL 中的所有文件都是用命令行上定义的 INFRAREDTEMPSDK_EXPORTS // 符号编译的。在使用此 DLL 的 // 任何其他项目上不应定义此符号。这样,源文件中包含此文件的任何其他项目都会将 // INFRAREDTEMPSDK_API 函数视为是从 DLL 导入的,而此 DLL 则将用此宏定义的 // 符号视为是被导出的。 // #if defined(WIN32) || defined(_WIN32) || defined(__WIN32__) // #ifdef INFRAREDTEMPSDK_EXPORTS // #define INFRAREDTEMPSDK_API __declspec(dllexport) // #else // #define INFRAREDTEMPSDK_API __declspec(dllimport) // #endif // #else // // #endif //#include "afxwin.h" #include "InfraredTempSDK_def.h" #include "IRNet.h" //#include "VSNETStructDef.h" #ifdef JUST_WIN32 #include "CamSearchLib.h" #include "HyvAlarmIsotherm.h" #endif #include "HyvDataApp.h" #include "HyvStream.h" #include "HyvSNMac.h" #include #ifdef JUST_LINUX #ifndef Infrared_PRT #define Infrared_PRT(fmt...) \ do {\ printf("[%s]-%d: ", __FUNCTION__, __LINE__);\ printf(fmt);\ }while(0) #endif #endif using namespace std; #ifdef JUST_WIN32 #ifndef WM_STARTUPCALLBACK #define WM_STARTUPCALLBACK (WM_USER + 100) #endif #elif defined(JUST_LINUX) #ifndef WM_STARTUPCALLBACK #define WM_STARTUPCALLBACK (100) #endif #endif // JUST_WIN32 typedef void(*VideoCallBack0)(char *pBuffer, long BufferLen, int width, int height, void *pContext); typedef void(*TempCallBack)(char *pBuffer, long BufferLen, void *context); typedef void(*SerialCallBack)(char *pRecvDataBuff, int BuffSize, void *context); typedef void(WINAPI *MessageCallBack)(IRNETHANDLE hHandle, WPARAM wParam, LPARAM lParam, void *context); typedef void(*AlarmCallBack)(char* message, void *context); typedef void(*SnapCallBack)(int m_ch, char *pBuffer, int size, void *context); /** * @brief set device type * @param[in] iType 0:A 1:B 2:C * @param[in] UserName User Name * @param[in] Password Password * @return */ INFRAREDTEMPSDK_API void sdk_set_type(int iType, char* UserName, char* Password); /** * @brief Initialize the SDK * @return 0:success, -1:fail */ INFRAREDTEMPSDK_API int sdk_initialize(); INFRAREDTEMPSDK_API IRNETHANDLE sdk_create(); /** * @brief login * @param[in] p sdk_create return value * @param[in] stinfo device struct * @return 0:success, -1:fail */ INFRAREDTEMPSDK_API int sdk_loginDevice(IRNETHANDLE hHandle, ChannelInfo stinfo); /** * @brief logout * @param[in] p sdk_create return value * @return 0:success, -1:fail */ INFRAREDTEMPSDK_API int sdk_logoutDevice(IRNETHANDLE hHandle); /** * @brief release the SDK * @return 0:success, -1:fail */ INFRAREDTEMPSDK_API int sdk_release(); /** * @brief search device * @param[in] devLst Device structure pointer * @return 0:success, -1:fail */ INFRAREDTEMPSDK_API int sdk_search_device(IRNETHANDLE p, DeviceList &devLst); //INFRAREDTEMPSDK_API void __stdcall SetMessageCallBackT(MessageCallBack pMessageCallBack, void *pContext); INFRAREDTEMPSDK_API void __stdcall SetMessageCallBack(IRNETHANDLE p, MessageCallBack pMessageCallBack, void *pContext); INFRAREDTEMPSDK_API int __stdcall SetDeviceVideoCallBack(IRNETHANDLE p, VideoCallBack0 pVideoCallBack, void *pContext); INFRAREDTEMPSDK_API int __stdcall SetTempCallBack(IRNETHANDLE p, TempCallBack pTempCallBack, void *pContext); INFRAREDTEMPSDK_API int __stdcall SetSerialCallBack(IRNETHANDLE p, ChannelInfo stinfo, SerialCallBack pSerialCallBack, void *pContext); INFRAREDTEMPSDK_API int __stdcall SetAlarmCallBack(IRNETHANDLE p, char* ip, AlarmCallBack pAlarmCallBack, void *pContext); INFRAREDTEMPSDK_API int __stdcall SetSnapCallBack(IRNETHANDLE p, ChannelInfo stinfo, SnapCallBack pSnapCallBack, void *pContext); INFRAREDTEMPSDK_API int __stdcall SetSnapGeneralCallBack(IRNETHANDLE p, ChannelInfo stinfo, SnapCallBack pSnapCallBack, void *pContext); INFRAREDTEMPSDK_API int sdk_CapSingle(IRNETHANDLE p, ChannelInfo stinfo); INFRAREDTEMPSDK_API int sdk_start_url(IRNETHANDLE p, char* ip); INFRAREDTEMPSDK_API int sdk_stop_url(IRNETHANDLE p); /** * @brief Send data through serial port * @param[in] p sdk_create return value * @param[in] pSendBuff Send data pointer * @param[in] BuffSize Data length * @return 0:success, -1:fail */ INFRAREDTEMPSDK_API int sdk_serial_cmd_send(IRNETHANDLE p, char *pSendBuff, DWORD BuffSize); /** * @brief receive data through serial port * @param[in] p sdk_create return value * @param[out] pSendBuff receive data pointer * @param[out] BuffSize Data length * @return 0:success, -1:fail */ INFRAREDTEMPSDK_API int sdk_serial_cmd_receive(IRNETHANDLE p, char *pRecvBuff, int *BuffSize); /** * @brief modify device ip * @param[in] p sdk_create return value * @param[in] stinfo device struct * @param[in] DstIP distance ip * @param[in] port port * @return 0:success, -1:fail */ INFRAREDTEMPSDK_API int sdk_set_device_ip(IRNETHANDLE p, ChannelInfo stinfo, const char* DstIP, int port); /** * @brief OSD switch * @param[in] p sdk_create return value * @param[in] stinfo device struct * @param[in] iSwitch 0:off 1:on * @return 0:success, -1:fail */ INFRAREDTEMPSDK_API int sdk_osd_switch(IRNETHANDLE p, ChannelInfo stinfo, int iSwitch); /** * @brief OSD Parameter overlay * @param[in] p sdk_create return value * @param[in] stinfo device struct * @param[in] osd_p Parameter struct * @return 0:success, -1:fail */ INFRAREDTEMPSDK_API int sdk_SetInfOsd(IRNETHANDLE p, ChannelInfo stinfo, const INF_OSD &osd_p); /** * @brief load OSD Parameter * @param[in] p sdk_create return value * @param[in] stinfo device struct * @param[in] iOSD OSD switch * @param[in] osd_p Parameter struct * @return 0:success, -1:fail */ INFRAREDTEMPSDK_API int sdk_LoadParamOsd(IRNETHANDLE p, ChannelInfo stinfo, int* iOSD, INF_OSD *osd_p); /** * @brief Environment variable settings * @param[in] p sdk_create return value * @param[in] stinfo device struct * @param[in] envir_data Environment variable struct * @return 0:success, -1:fail */ INFRAREDTEMPSDK_API int sdk_set_envir_param(IRNETHANDLE p, ChannelInfo stinfo, envir_param envir_data); INFRAREDTEMPSDK_API int SetReflect(IRNETHANDLE p, ChannelInfo stinfo, signed int i32value); INFRAREDTEMPSDK_API int SetAirTemp(IRNETHANDLE p, ChannelInfo stinfo, signed int i32value); INFRAREDTEMPSDK_API int SetHumidity(IRNETHANDLE p, ChannelInfo stinfo, signed int i32value); INFRAREDTEMPSDK_API int SetEmiss(IRNETHANDLE p, ChannelInfo stinfo, signed int i32value); INFRAREDTEMPSDK_API int SetDistance(IRNETHANDLE p, ChannelInfo stinfo, signed int i32value); /** * @brief read Environment variable * @param[in] p sdk_create return value * @param[in] stinfo device struct * @param[out] envir_data Environment variable struct * @return 0:success, -1:fail */ INFRAREDTEMPSDK_API int sdk_get_envir_param(IRNETHANDLE p, ChannelInfo stinfo, envir_param* envir_data); INFRAREDTEMPSDK_API int GetReflect(IRNETHANDLE p, ChannelInfo stinfo, signed int* p32value); INFRAREDTEMPSDK_API int GetAirTemp(IRNETHANDLE p, ChannelInfo stinfo, signed int* p32value); INFRAREDTEMPSDK_API int GetHumidity(IRNETHANDLE p, ChannelInfo stinfo, signed int* p32value); INFRAREDTEMPSDK_API int GetEmiss(IRNETHANDLE p, ChannelInfo stinfo, signed int* p32value); INFRAREDTEMPSDK_API int GetDistance(IRNETHANDLE p, ChannelInfo stinfo, signed int* p32value); /** * @brief Environment variables take effect * @param[in] p sdk_create return value * @return 0:success, -1:fail */ INFRAREDTEMPSDK_API int sdk_envir_effect(IRNETHANDLE p); /** * @brief calibration * @param[in] p sdk_create return value * @param[in] stinfo device struct * @param[in] type * @return 0:success, -1:fail */ INFRAREDTEMPSDK_API int sdk_shutter_correction(IRNETHANDLE p, ChannelInfo stinfo, int type); /** * @brief Pseudo color switch * @param[in] p sdk_create return value * @param[in] stinfo device struct * @param[in] color_plate Pseudo color type * @return 0:success, -1:fail */ INFRAREDTEMPSDK_API int sdk_set_color_plate(IRNETHANDLE p, ChannelInfo stinfo, int color_plate); /** * @brief get Pseudo color no * @param[in] p sdk_create return value * @param[out] color_plate Pseudo color type * @return 0:success, -1:fail */ INFRAREDTEMPSDK_API int sdk_get_color_plate(IRNETHANDLE p, ChannelInfo stinfo, int *color_plate); /** * @brief read sn & pn * @param[in] p sdk_create return value * @param[in] stinfo device struct * @param[out] strSN SN * @param[out] strPN PN * @return 0:success, -1:fail */ INFRAREDTEMPSDK_API int sdk_get_SN_PN(IRNETHANDLE p, ChannelInfo stinfo, char *strSN, char* strPN); /** * @brief read FPA temp * @param[in] p sdk_create return value * @param[out] fTemp FPA temp * @return 0:success, -1:fail */ INFRAREDTEMPSDK_API int sdk_get_FPA_temp(IRNETHANDLE p, float *fTemp); /** * @brief read camera temp * @param[in] p sdk_create return value * @param[out] fTemp camera temp * @return 0:success, -1:fail */ INFRAREDTEMPSDK_API int sdk_get_camera_temp(IRNETHANDLE p, float *fTemp); /** * @brief read Area array width * @param[in] p sdk_create return value * @param[out] iValue Area array width * @return 0:success, -1:fail */ INFRAREDTEMPSDK_API int sdk_get_width(IRNETHANDLE p, int *iValue); /** * @brief read Area array height * @param[in] p sdk_create return value * @param[out] iValue Area array height * @return 0:success, -1:fail */ INFRAREDTEMPSDK_API int sdk_get_height(IRNETHANDLE p, int *iValue); /** * @brief read Temperature imaging status * @param[in] p sdk_create return value * @param[out] iValue Temperature imaging 0:off 1:on * @return 0:success, -1:fail */ INFRAREDTEMPSDK_API int sdk_get_TempImaging(IRNETHANDLE p, int *iValue); /** * @brief get Temperature unit * @param[in] p sdk_create return value * @param[in] stinfo device struct * @param[out] iUnit Temperature unit 0:Celsius 1:Kelvin 2:Fahrenheit * @return 0:success, -1:fail */ INFRAREDTEMPSDK_API int sdk_get_temp_unit(IRNETHANDLE p, ChannelInfo stinfo, int *iUnit); /** * @brief set Temperature unit * @param[in] p sdk_create return value * @param[in] stinfo device struct * @param[in] iUnit Temperature unit 0:Celsius 1:Kelvin 2:Fahrenheit * @return 0:success, -1:fail */ INFRAREDTEMPSDK_API int sdk_set_temp_unit(IRNETHANDLE p, ChannelInfo stinfo, int iUnit); /** * @brief get Temperature measurement configuration * @param[in] p sdk_create return value * @param[in] stinfo device struct * @param[in] iIndex region no * @param[out] temp_config Temperature config struct * @return 0:success, -1:fail */ INFRAREDTEMPSDK_API int sdk_get_temp_configuration(IRNETHANDLE p, ChannelInfo stinfo, int iIndex, Alarm_Config& temp_config); /** * @brief set temp alarm * @param[in] p sdk_create return value * @param[in] stinfo device struct * @param[in] m_regionIndex 0:frame >0 region * @param[in] alarm_config alarm configuration * @return 0:success, -1:fail */ INFRAREDTEMPSDK_API int sdk_set_temp_alarm(IRNETHANDLE p, ChannelInfo stinfo, int m_regionIndex, Alarm_Config alarm_config); /** * @brief get area temperature(max min avg) B15_1.0.1_planA * @param[in] p sdk_create return value * @param[in] stinfo device struct * @param[in] iIndex region no 7-frame * @param[out] area_temp area temperature struct * @return 0:success, -1:fail */ INFRAREDTEMPSDK_API int sdk_get_temp_data(IRNETHANDLE p, ChannelInfo stinfo, int iIndex, Area_Temp &area_temp); /** * @brief Convert to Celsius * @param[in] iType product type 0:Human body temperature measurement 1:Industrial temperature measurement * @param[in] iTempImaging Temperature imaging 0:off 1:on * @param[in] usValue Input temperature K*10 * @param[out] fTempC Celsius * @return 0:success, -1:fail */ INFRAREDTEMPSDK_API int sdk_Convert_to_Celsius(int iType, int iTempImaging, unsigned short usValue, float* fTempC); /** * @brief read wtr status * @param[in] p sdk_create return value * @param[out] iStatus wtr status 0:off 1:on * @return 0:success, -1:fail */ INFRAREDTEMPSDK_API int sdk_get_wtr_status(IRNETHANDLE p, int* iStatus); /** * @brief set wtr status * @param[in] p sdk_create return value * @param[in] iStatus wtr status 0:off 1:on * @return 0:success, -1:fail */ INFRAREDTEMPSDK_API int sdk_set_wtr_status(IRNETHANDLE p, int iStatus); /** * @brief set wtr low Threshold * @param[in] p sdk_create return value * @param[in] iThreshold wtr low Threshold * 10000 * @return 0:success, -1:fail */ INFRAREDTEMPSDK_API int sdk_set_wtr_low_threshold(IRNETHANDLE p, int iThreshold); /** * @brief Get wtr low Threshold * @param[in] p sdk_create return value * @param[out] iThreshold wtr low Threshold * 10000 * @return 0:success, -1:fail */ INFRAREDTEMPSDK_API int sdk_get_wtr_low_threshold(IRNETHANDLE p, int* iThreshold); /** * @brief set wtr high Threshold * @param[in] p sdk_create return value * @param[in] iThreshold wtr high Threshold * 10000 * @return 0:success, -1:fail */ INFRAREDTEMPSDK_API int sdk_set_wtr_high_threshold(IRNETHANDLE p, int iThreshold); /** * @brief Get wtr high Threshold * @param[in] p sdk_create return value * @param[out] iThreshold wtr high Threshold * 10000 * @return 0:success, -1:fail */ INFRAREDTEMPSDK_API int sdk_get_wtr_high_threshold(IRNETHANDLE p, int* iThreshold); /** * @brief Get Image frame rate * @param[in] p sdk_create return value * @param[in] stinfo device struct * @param[out] iFrameRate Image frame rate * @return 0:success, -1:fail */ INFRAREDTEMPSDK_API int sdk_get_image_framerate(IRNETHANDLE p, ChannelInfo stinfo, int* iFrameRate); /** * @brief Set Image frame rate * @param[in] p sdk_create return value * @param[in] stinfo device struct * @param[in] iFrameRate Image frame rate * @return 0:success, -1:fail */ INFRAREDTEMPSDK_API int sdk_set_image_framerate(IRNETHANDLE p, ChannelInfo stinfo, int iFrameRate); /** * @brief Get temp frame rate * @param[in] p sdk_create return value * @param[in] stinfo device struct * @param[out] iFrameRate temp frame rate * @return 0:success, -1:fail 1:not support */ INFRAREDTEMPSDK_API int sdk_get_temp_framerate(IRNETHANDLE p, ChannelInfo stinfo, int* iFrameRate); /** * @brief Set temp frame rate * @param[in] p sdk_create return value * @param[in] stinfo device struct * @param[in] iFrameRate temp frame rate C:1-10 * @return 0:success, -1:fail 1:not support */ INFRAREDTEMPSDK_API int sdk_set_temp_framerate(IRNETHANDLE p, ChannelInfo stinfo, int iFrameRate); /** * @brief B series login device * @param[in] p sdk_create return value * @param[in] stinfo device struct * @return 0:success, -1:fail */ INFRAREDTEMPSDK_API int sdk_login(IRNETHANDLE p, ChannelInfo stinfo); INFRAREDTEMPSDK_API int sdk_loginNew(IRNETHANDLE p, std::string ip); /** * @brief B series logout device * @param[in] p sdk_create return value * @param[in] ip device ip * @return 0:success, -1:fail */ INFRAREDTEMPSDK_API int sdk_logout(IRNETHANDLE p, std::string ip); /** * @brief Hardware IO output * @param[in] p sdk_create return value * @param[in] stinfo device struct * @param[in] iSwitch 0:off 1:on * @return 0:success, -1:fail */ INFRAREDTEMPSDK_API int sdk_set_hw_io_output(IRNETHANDLE p, ChannelInfo stinfo, int iSwitch); /** * @brief Overlay OSD date & title * @param[in] p sdk_create return value * @param[in] stinfo device struct * @param[in] osdContent OSD content * @return 0:success, -1:fail */ INFRAREDTEMPSDK_API int sdk_set_osd_display(IRNETHANDLE p, ChannelInfo stinfo, Custom_String osdContent); /** * @brief get Overlay OSD date & title * @param[in] p sdk_create return value * @param[in] stinfo device struct * @param[out] osdContent OSD content * @return 0:success, -1:fail */ INFRAREDTEMPSDK_API int sdk_get_osd_display(IRNETHANDLE p, ChannelInfo stinfo, Custom_String* osdContent); /** * @brief synchronised time * @param[in] p sdk_create return value * @param[in] stinfo device struct * @param[in] timeData time struct * @return 0:success, -1:fail */ INFRAREDTEMPSDK_API int sdk_synchronised_time(IRNETHANDLE p, ChannelInfo stinfo, Time_Param timeData); /** * @brief Network device DHCP switch * @param[in] p sdk_create return value * @param[in] stinfo device struct * @param[in] iSwitch 0;off 1:on * @return 0:success, -1:fail */ INFRAREDTEMPSDK_API int sdk_set_DHCP_on_off(IRNETHANDLE p, ChannelInfo stinfo, int iSwitch); /** * @brief set capture format * @param[in] p sdk_create return value * @param[in] stinfo device struct * @param[in] iFormat capture format 3:jpg 4:jpg+irg * @return 0:success, -1:fail */ INFRAREDTEMPSDK_API int sdk_set_capture_format(IRNETHANDLE p, ChannelInfo stinfo, int iFormat); /** * @brief Thermal image capture * @param[in] p sdk_create return value * @param[in] stinfo device struct * @param[in] iLocation 0:SD Card 1:local * @param[in] strPath iLocation=0,strPath="", iLocation=1,strPath=local path C:\AB\ * @return 0:success, -1:fail */ INFRAREDTEMPSDK_API int sdk_snapshot(IRNETHANDLE p, ChannelInfo stinfo, int iLocation, char* strPath); /** * @brief read Timed capture infomation * @param[in] p sdk_create return value * @param[in] stinfo device struct * @param[out] data details * @return 0:success, -1:fail */ INFRAREDTEMPSDK_API int sdk_get_timing_capture(IRNETHANDLE p, ChannelInfo stinfo, Encoding_Format* data); /** * @brief read Timed capture infomation * @param[in] p sdk_create return value * @param[in] stinfo device struct * @param[in] data details * @return 0:success, -1:fail */ INFRAREDTEMPSDK_API int sdk_set_timing_capture(IRNETHANDLE p, ChannelInfo stinfo, Encoding_Format data); /** * @brief read Timed recording information * @param[in] p sdk_create return value * @param[in] stinfo device struct * @param[out] data details * @return 0:success, -1:fail */ INFRAREDTEMPSDK_API int sdk_get_timing_recording(IRNETHANDLE p, ChannelInfo stinfo, Recoding* data); /** * @brief read Timed recording information * @param[in] p sdk_create return value * @param[in] stinfo device struct * @param[in] data details * @return 0:success, -1:fail */ INFRAREDTEMPSDK_API int sdk_set_timing_recording(IRNETHANDLE p, ChannelInfo stinfo, Recoding data); /** * @brief format SD card * @param[in] p sdk_create return value * @param[in] stinfo device struct * @param[in] iDiskNo disk no * @return 0:success, -1:fail */ INFRAREDTEMPSDK_API int sdk_disk_format(IRNETHANDLE p, ChannelInfo stinfo, int iDiskNo); /** * @brief set area position * @param[in] p sdk_create return value * @param[in] iIndex region index * @param[in] stinfo device struct * @param[in] area_pos area position struct * @return 0:success, -1:fail */ INFRAREDTEMPSDK_API int sdk_set_area_pos(IRNETHANDLE p, ChannelInfo stinfo, int iIndex, Area_pos area_pos); INFRAREDTEMPSDK_API int sdk_set_area_pos_new(IRNETHANDLE p, ChannelInfo stinfo, int iIndex, Area_pos area_pos); /** * @brief remove area position * @param[in] p sdk_create return value * @param[in] stinfo device struct * @param[in] iIndex area index * @param[in] iMode 0: point 1:line 2:area * @return 0:success, -1:fail */ INFRAREDTEMPSDK_API int sdk_remove_area_pos(IRNETHANDLE p, ChannelInfo stinfo, int iIndex, int iMode); /** * @brief Turn off the temperature alarm data push service * @param[in] p sdk_create return value * @return 0:success, -1:fail 1: not support */ INFRAREDTEMPSDK_API int sdk_close_alarm(IRNETHANDLE p); /** * @brief analyze alarm infomation * @param[in] p sdk_create return value * @param[in] strAlarm Alarm callback return value * @param[out] alarm_info Alarm_Info detail * @return alarm information struct */ INFRAREDTEMPSDK_API int sdk_analyze_alarm_info(IRNETHANDLE p, char* strAlarm, Alarm_Info* alarm_info); /** * @brief reset param * @param[in] p sdk_create return value * @param[in] stinfo device struct * @return 0:success, -1:fail */ INFRAREDTEMPSDK_API int sdk_reset_param(IRNETHANDLE p, ChannelInfo stinfo); /** * @brief Get Wi-Fi hotspot information * @param[in] p sdk_create return value * @param[in] stinfo device struct * @param[out] wlan_config wlan_config struct * @return 0:success, -1:fail, 1:not support */ INFRAREDTEMPSDK_API int sdk_get_wlan(IRNETHANDLE p, ChannelInfo stinfo, Wlan_Config* wlan_config); /** * @brief set Wi-Fi hotspot information * @param[in] p sdk_create return value * @param[in] stinfo device struct * @param[in] wlan_config wlan_config struct * @return 0:success, -1:fail, 1:not support */ INFRAREDTEMPSDK_API int sdk_set_wlan(IRNETHANDLE p, ChannelInfo stinfo, Wlan_Config wlan_config); /** * @brief Get all user information * @param[in] p sdk_create return value * @param[in] stinfo device struct * @param[out] user_info user_info struct * @return 0:success, -1:fail, 1:not support */ INFRAREDTEMPSDK_API int sdk_get_all_user_info(IRNETHANDLE p, ChannelInfo stinfo, User_Info user_info[USER_NUM]); /** * @brief create new user * @param[in] p sdk_create return value * @param[in] stinfo device struct * @param[in] user_info User_New struct * @return 0:success, -1:fail, 1:not support */ INFRAREDTEMPSDK_API int sdk_create_new_user(IRNETHANDLE p, ChannelInfo stinfo, User_New user_info); /** * @brief Get a list of online users * @param[in] p sdk_create return value * @param[in] stinfo device struct * @param[out] user_info User_Online struct * @return 0:success, -1:fail, 1:not support */ INFRAREDTEMPSDK_API int sdk_get_user_online(IRNETHANDLE p, ChannelInfo stinfo, User_Online user_info[USER_NUM]); /** * @brief Get the user information of the specified ID * @param[in] p sdk_create return value * @param[in] stinfo device struct * @param[in] id specified ID * @param[out] user_info user_info struct * @return 0:success, -1:fail, 1:not support */ INFRAREDTEMPSDK_API int sdk_get_user_info(IRNETHANDLE p, ChannelInfo stinfo, int id, User_Info* user_info); /** * @brief Modify user information * @param[in] p sdk_create return value * @param[in] stinfo device struct * @param[in] user_info user_info struct * @return 0:success, -1:fail, 1:not support */ INFRAREDTEMPSDK_API int sdk_modify_user_info(IRNETHANDLE p, ChannelInfo stinfo, User_Modify user_info); /** * @brief delete user * @param[in] p sdk_create return value * @param[in] stinfo device struct * @param[in] id specified ID * @return 0:success, -1:fail, 1:not support */ INFRAREDTEMPSDK_API int sdk_delete_user(IRNETHANDLE p, ChannelInfo stinfo, int id); /** * @brief Get no operation timeout * @param[in] p sdk_create return value * @param[in] stinfo device struct * @param[out] timeout no operation timeout * @return 0:success, -1:fail, 1:not support */ INFRAREDTEMPSDK_API int sdk_get_no_opr_timeout(IRNETHANDLE p, ChannelInfo stinfo, int* timeout); /** * @brief Set no operation timeout * @param[in] p sdk_create return value * @param[in] stinfo device struct * @param[in] timeout no operation timeout * @return 0:success, -1:fail, 1:not support */ INFRAREDTEMPSDK_API int sdk_set_no_opr_timeout(IRNETHANDLE p, ChannelInfo stinfo, int timeout); /** * @brief Get all group information * @param[in] p sdk_create return value * @param[in] stinfo device struct * @param[out] group_info Group_Info struct * @return 0:success, -1:fail, 1:not support */ INFRAREDTEMPSDK_API int sdk_get_all_group_info(IRNETHANDLE p, ChannelInfo stinfo, Group_Info group_info[USER_NUM]); /** * @brief create new group * @param[in] p sdk_create return value * @param[in] stinfo device struct * @param[in] group_info Group_Info struct * @return 0:success, -1:fail, 1:not support */ INFRAREDTEMPSDK_API int sdk_create_new_group(IRNETHANDLE p, ChannelInfo stinfo, Group_Info group_info); /** * @brief Get the group information of the specified ID * @param[in] p sdk_create return value * @param[in] stinfo device struct * @param[in] id specified ID * @param[out] group_info Group_Info struct * @return 0:success, -1:fail, 1:not support */ INFRAREDTEMPSDK_API int sdk_get_group_info(IRNETHANDLE p, ChannelInfo stinfo, int id, Group_Info* group_info); /** * @brief Modify group information * @param[in] p sdk_create return value * @param[in] stinfo device struct * @param[in] id specified ID * @param[in] group_info Group_Info struct * @return 0:success, -1:fail, 1:not support */ INFRAREDTEMPSDK_API int sdk_modify_group_info(IRNETHANDLE p, ChannelInfo stinfo, int id, Group_Info group_info); /** * @brief delete group * @param[in] p sdk_create return value * @param[in] stinfo device struct * @param[in] id specified ID * @return 0:success, -1:fail, 1:not support */ INFRAREDTEMPSDK_API int sdk_delete_group(IRNETHANDLE p, ChannelInfo stinfo, int id); /** * @brief Get device configuration * @param[in] p sdk_create return value * @param[in] stinfo device struct * @param[out] device_setting Device_Setting struct * @return 0:success, -1:fail, 1:not support */ INFRAREDTEMPSDK_API int sdk_get_device_setting(IRNETHANDLE p, ChannelInfo stinfo, Device_Setting* device_setting); /** * @brief Set device configuration * @param[in] p sdk_create return value * @param[in] stinfo device struct * @param[in] device_setting Device_Setting struct * @return 0:success, -1:fail, 1:not support */ INFRAREDTEMPSDK_API int sdk_set_device_setting(IRNETHANDLE p, ChannelInfo stinfo, Device_Setting device_setting); /** * @brief delete group * @param[in] p sdk_create return value * @param[in] stinfo device struct * @param[in] filePath Absolute path of video file * @return 0:success, -1:fail, 1:not support */ INFRAREDTEMPSDK_API int sdk_delete_record_file(IRNETHANDLE p, ChannelInfo stinfo, char* filePath); /** * @brief Get video storage directory * @param[in] p sdk_create return value * @param[in] stinfo device struct * @param[out] record_path Record_Path struct * @return 0:success, -1:fail, 1:not support */ INFRAREDTEMPSDK_API int sdk_get_record_path(IRNETHANDLE p, ChannelInfo stinfo, Record_Path* record_path); /** * @brief Get recording parameters * @param[in] p sdk_create return value * @param[in] stinfo device struct * @param[out] record_param Record_Param struct * @return 0:success, -1:fail, 1:not support */ INFRAREDTEMPSDK_API int sdk_get_record_param(IRNETHANDLE p, ChannelInfo stinfo, Record_Param* record_param); /** * @brief Set recording parameters * @param[in] p sdk_create return value * @param[in] stinfo device struct * @param[in] record_param Record_Param struct * @return 0:success, -1:fail, 1:not support */ INFRAREDTEMPSDK_API int sdk_set_record_param(IRNETHANDLE p, ChannelInfo stinfo, Record_Param record_param); /** * @brief Video file retrieval * @param[in] p sdk_create return value * @param[in] stinfo device struct * @param[in] record_search Record_Search struct * @return 0:success, -1:fail, 1:not support */ INFRAREDTEMPSDK_API int sdk_search_record_file(IRNETHANDLE p, ChannelInfo stinfo, Record_Search record_search, list &file); /** * @brief Get snap parameters * @param[in] p sdk_create return value * @param[in] stinfo device struct * @param[out] snap_param Snap_Param struct * @return 0:success, -1:fail, 1:not support */ INFRAREDTEMPSDK_API int sdk_get_snap_param(IRNETHANDLE p, ChannelInfo stinfo, Snap_Param* snap_param); /** * @brief Set snap parameters * @param[in] p sdk_create return value * @param[in] stinfo device struct * @param[in] snap_param Snap_Param struct * @return 0:success, -1:fail, 1:not support */ INFRAREDTEMPSDK_API int sdk_set_snap_param(IRNETHANDLE p, ChannelInfo stinfo, Snap_Param snap_param); /** * @brief Get GB28181 configuration * @param[in] p sdk_create return value * @param[in] stinfo device struct * @param[out] snap_param GB28181_Param struct * @return 0:success, -1:fail, 1:not support */ INFRAREDTEMPSDK_API int sdk_get_GB28181_config(IRNETHANDLE p, ChannelInfo stinfo, GB28181_Param* config_param); /** * @brief Set GB28181 configuration * @param[in] p sdk_create return value * @param[in] stinfo device struct * @param[in] snap_param GB28181_Param struct * @return 0:success, -1:fail, 1:not support */ INFRAREDTEMPSDK_API int sdk_set_GB28181_config(IRNETHANDLE p, ChannelInfo stinfo, GB28181_Param config_param); /** * @brief System upgrade-upload remote upgrade package * @param[in] p sdk_create return value * @param[in] stinfo device struct * @param[in] format format * @param[in] file remote upgrade package file * @return 0:success, -1:fail, 1:not support */ INFRAREDTEMPSDK_API int sdk_system_upgrade(IRNETHANDLE p, ChannelInfo stinfo, int format, char* file); /** * @brief start record * @param[in] p sdk_create return value * @param[in] stinfo device struct * @param[in] file video file full path * @return 0:success, -1:fail, 1:not support */ INFRAREDTEMPSDK_API int sdk_start_record(IRNETHANDLE p, ChannelInfo stinfo, char* file); /** * @brief stop record * @param[in] p sdk_create return value * @param[in] stinfo device struct * @return 0:success, -1:fail, 1:not support */ INFRAREDTEMPSDK_API int sdk_stop_record(IRNETHANDLE p, ChannelInfo stinfo); /** * @brief get temp offline * @param[in] file file full path * @param[out] pos_info temp struct * @return 0:success, -1:fail, 1:not support */ INFRAREDTEMPSDK_API int sdk_get_temp_offline(char* file, Position_info& pos_info); /** * @brief Thermal image capture * @param[in] p sdk_create return value * @param[in] stinfo device struct * @param[in] strPath strPath=local path C:\\1.jpg * @return 0:success, -1:fail */ INFRAREDTEMPSDK_API int sdk_snapshot_jpg(IRNETHANDLE p, ChannelInfo stinfo, char* strPath); /** * @brief get temp data param * @param[in] p sdk_create return value * @param[in] stinfo device struct * @param[out] tempdata_param TempData_Param struct * @return 0:success, -1:fail */ INFRAREDTEMPSDK_API int sdk_get_temp_data_param(IRNETHANDLE p, ChannelInfo stinfo, TempData_Param* tempdata_param); /** * @brief set temp data param * @param[in] p sdk_create return value * @param[in] stinfo device struct * @param[in] tempdata_param TempData_Param struct * @return 0:success, -1:fail */ INFRAREDTEMPSDK_API int sdk_set_temp_data_param(IRNETHANDLE p, ChannelInfo stinfo, TempData_Param tempdata_param); /** * @brief open jpg * @param[in] file jpg file full path * @param[in] jpg_param jpg_param struct * @return 0:success, -1:fail */ INFRAREDTEMPSDK_API int sdk_open_jpg_param(char* file, JPG_Param* jpg_param); /** * @brief open jpg * @param[in] file jpg file full path * @param[out] temp_data temp data * @param[out] image_data image data * @return 0:success, -1:fail */ INFRAREDTEMPSDK_API int sdk_open_jpg_data(char* file, float* temp_data, unsigned char* image_data); /** * @brief get temp offline * @param[in] temp_data temp data buffer * @param[in] width width * @param[in] height height * @param[out] pos_info temp struct * @return 0:success, -1:fail, 1:not support */ INFRAREDTEMPSDK_API int sdk_get_temp_offline_jpg(float* temp_data, int width, int height, Position_info& pos_info); /** * @brief get temp offline * @param[in] srcTempBuffer src temp data * @param[in] srcEvn_param src Environment param * @param[in] dstEvn_param dst Environment param * @param[out] dstTempBuffer dst temp data * @return 0:success, -1:fail, 1:not support */ INFRAREDTEMPSDK_API int sdk_temp_data_correction(float srcTempBuffer, JPG_envir_param srcEvn_param, JPG_envir_param dstEvn_param, float* dstTempBuffer); /** * @brief stretch temp * @param[in] stretch_param stretch param struct * @param[in] image_data src image data * @param[out] out_data dst image data * @return 0:success, -1:fail, 1:not support */ INFRAREDTEMPSDK_API int sdk_stretch_temp(Stretch_param stretch_param, unsigned char* image_data, unsigned char* out_data); /** * @brief get irg file param * @param[in] file file full path * @param[out] irg_param IRG_Param struct * @return 0:success, -1:fail, 1:not support */ INFRAREDTEMPSDK_API int sdk_get_irg_param(char* file, IRG_Param* irg_param); /** * @brief get irg file image&temp data * @param[in] file file full path * @param[in] colorIndex Pseudo-color number * @param[out] temp_data temp data K*10 * @param[out] image_data image data YUYV * @return 0:success, -1:fail, 1:not support */ INFRAREDTEMPSDK_API int sdk_get_irg_data(char* file, int colorIndex, unsigned short* temp_data, unsigned char* image_data); /** * @brief get onvif port * @param[in] p sdk_create return value * @param[in] stinfo device struct * @param[out] port onvif port * @return 0:success, -1:fail */ INFRAREDTEMPSDK_API int sdk_get_onvif_port(IRNETHANDLE p, ChannelInfo stinfo, unsigned short* port); /** * @brief set onvif port * @param[in] p sdk_create return value * @param[in] stinfo device struct * @param[in] port dst port * @return 0:success, -1:fail */ INFRAREDTEMPSDK_API int sdk_set_onvif_port(IRNETHANDLE p, ChannelInfo stinfo, unsigned short port); /** * @brief save param * @param[in] p sdk_create return value * @param[in] stinfo device struct * @return 0:success, -1:fail */ INFRAREDTEMPSDK_API int sdk_save_param(IRNETHANDLE p, ChannelInfo stinfo); /** * @brief get pseudo color picture * @param[in] filename full path C:\111.jpg * @param[in] index pseudo color index(WhiteHot;BlackHot;Rainbow;RainbowHC;Iron;Lava;Sky;MidGrey;RdGy;PuOr;Special;Red;IceFire;GreenRed;Special2;RedHot;GreenHot;BlueHot;Green;Blue;) * @param[in] width picture width * @param[in] height picture height Multiples of 256 * @return 0:success, -1:fail */ INFRAREDTEMPSDK_API int sdk_get_pseudo_color_pic(char *filename, int index, int width, int height); /** * @brief get grids param * @param[in] p sdk_create return value * @param[in] stinfo device struct * @param[out] grids_param Grids_Param struct * @return 0:success, -1:fail */ INFRAREDTEMPSDK_API int sdk_get_grids_param(IRNETHANDLE p, ChannelInfo stinfo, Grids_Param& grids_param); /** * @brief set grids param * @param[in] p sdk_create return value * @param[in] stinfo device struct * @param[in] grids_param Grids_Param struct * @return 0:success, -1:fail */ INFRAREDTEMPSDK_API int sdk_set_grids_param(IRNETHANDLE p, ChannelInfo stinfo, Grids_Param grids_param); /** * @brief get grids temp * @param[in] p sdk_create return value * @param[in] stinfo device struct * @param[out] grids_temp Grids_Temp struct * @return 0:success, -1:fail */ INFRAREDTEMPSDK_API int sdk_get_grids_temp(IRNETHANDLE p, ChannelInfo stinfo, Grids_Temp& grids_temp); /** * @brief Control the device to take pictures manually * @param[in] p sdk_create return value * @param[in] stinfo device struct * @param[in] channel channel * @param[out] path picture path * @return 0:success, -1:fail */ INFRAREDTEMPSDK_API int sdk_snap_manual(IRNETHANDLE p, ChannelInfo stinfo, int channel, char path[128]); /** * @brief Download Snapshots * @param[in] p sdk_create return value * @param[in] stinfo device struct * @param[in] srcPath picture path:sdk_snap_manual path param * @param[in] dstPath local path eg:C:\1.jpg * @return 0:success, -1:fail */ INFRAREDTEMPSDK_API int sdk_download_snapshots(IRNETHANDLE p, ChannelInfo stinfo, char* srcPath, char* dstPath); /** * @brief get points info param * @param[in] p sdk_create return value * @param[in] stinfo device struct * @param[in] size width*height*sizeof(char) * @param[out] points_info data buffer * @return 0:success, -1:fail */ INFRAREDTEMPSDK_API int sdk_get_points_info_param(IRNETHANDLE p, ChannelInfo stinfo, int size, char* points_info); /** * @brief set points info param * @param[in] p sdk_create return value * @param[in] stinfo device struct * @param[in] size width*height*sizeof(char) * @param[in] points_info data buffer * @return 0:success, -1:fail */ INFRAREDTEMPSDK_API int sdk_set_points_info_param(IRNETHANDLE p, ChannelInfo stinfo, int size, char* points_info); /** * @brief get points temp value * @param[in] p sdk_create return value * @param[in] stinfo device struct * @param[in] size width*height*sizeof(char) * @param[out] points_temp Points temp value C*10 * @return 0:success, -1:fail */ INFRAREDTEMPSDK_API int sdk_get_points_temp_value(IRNETHANDLE p, ChannelInfo stinfo, int size, int* points_temp); /** * @brief get jpg * @param[in] p sdk_create return value * @param[in] stinfo device struct * @param[in] strPath strPath=local path C:\\1.jpg * @return 0:success, -1:fail */ INFRAREDTEMPSDK_API int sdk_get_jpg(IRNETHANDLE p, ChannelInfo stinfo, char* strPath); /** * @brief ptz controll * @param[in] p sdk_create return value * @param[in] stinfo device struct * @param[in] ptz_ctrl PTZ_CTRL struct * @return 0:success, -1:fail */ INFRAREDTEMPSDK_API int sdk_ptz_ctrl(IRNETHANDLE p, ChannelInfo stinfo, PTZ_CTRL ptz_ctrl);