706 lines
28 KiB
C
Raw Normal View History

#pragma once
#if defined(WIN32) || defined(_WIN32) || defined(__WIN32__)
#define JUST_WIN32
#elif defined(linux) || defined(__linux) || defined(__linux__)
#define JUST_LINUX
#endif
#ifdef JUST_LINUX
#include "LinuxDef.h"
#endif
#define FRAME_INDEX 256
#define FRAME_LT_START (0xAA)
#define FRAME_LT_BACK (0x55)
#define FRAME_TYPE (0x00)
#define FRAME_TYPE01 (0x01)
#define FRAME_END_EB (0xEB)
#define FRAME_END_AA (0xAA)
#define MAX_WAIT_RESPONSE_TIME 100
#define MAX_LOCAL_BUF_LEN 512
typedef enum IR_OPERATE_e //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ö<EFBFBD><C3B6>
{
IR_OPERATE_READ = 0x00,
IR_OPERATE_WRITE = 0x01,
IR_OPERATE_DO = 0x02,
IR_OPERATE_READ_CK = 0x03,
IR_OPERATE_WRITE_CK = 0x04,
} IR_OPERATE, *P_IR_OPERATE;
#define LT_OPERATE_COMMAND0 0x07
#define CMD_LT_TEMP_FRAME_MAX_MES 0x27 //<2F><>֡<EFBFBD><D6A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD>(read only)
#define CMD_LT_TEMP_FRAME_MIN_MES 0x29 //<2F><>֡<EFBFBD><D6A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD>(read only)
#define CMD_LT_TEMP_FRAME_CEN_MES 0x2c //<2F><>֡<EFBFBD><D6A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD>(read only)
#define CMD_LT_TEMP_FRAME_AVR 0x2a //<2F><>֡<EFBFBD><D6A1><EFBFBD>¾<EFBFBD>ֵ<EFBFBD><EFBFBD> (read only)
#define CMD_LT_TEMP_USER_REFLECT 0x0f //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define CMD_LT_TEMP_USER_AIRTEMP 0x10 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define CMD_LT_TEMP_USER_HUMIDITY 0x11 //<2F><><EFBFBD><EFBFBD>ʪ<EFBFBD><CAAA>
#define CMD_LT_TEMP_USER_EMISS 0x12 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define CMD_LT_TEMP_USER_DISTANCE 0x13 //<2F><><EFBFBD><EFBFBD>
#define CMD_LT_CALCULATE_ENV_PARAMS 0x18 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD>
#define CMD_LT_WTR_LOW_THRESHOLD 0x1d
#define CMD_LT_WTR_HIGH_THRESHOLD 0x1e
#define CMD_LT_TEMP_SWITCH 0x71 //<2F>¶ȳ<C2B6><C8B3><EFBFBD><54>л<EFBFBD>ʹ<EFBFBD><CAB9>
#define CMD_LT_TEMP_WTR 0xf0
#define CMD_LT_TEMP_DISPLAY_STYLE 0x02 //<2F><EFBFBD><C2B6><EFBFBD>ʾ<EFBFBD><CABE>ʽ<EFBFBD><CABD>0x00-<2D><><EFBFBD>϶<EFBFBD> C<><43>0x01-<2D><><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD>273.15K<EFBFBD><EFBFBD><EFBFBD><EFBFBD>0x02-<2D><><EFBFBD>ϣ<EFBFBD>F<EFBFBD><46>
typedef enum IR_FEATURE_e //<2F><><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EEBCAF><EFBFBD><EFBFBD>
{
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ֵ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> <20><><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD> ˵<><CBB5><EFBFBD><EFBFBD>Ĭ<EFBFBD>Ϸ<EFBFBD><CFB7><EFBFBD> OK<4F><4B>
IR_FEATURE_USER_INFO_SN = 0, //0 WR,<2C><>о<EFBFBD><D0BE>SN<53><4E> <20><><EFBFBD><EFBFBD>Ŀǰʹ<C7B0><CAB9><20><><EFBFBD>غ<EFBFBD><D8BA>ϴ<EFBFBD>ʱ ͨ<><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ij<EFBFBD><C4B3><EFBFBD><EFBFBD>ж<EFBFBD>ʹ<EFBFBD>ó<EFBFBD><C3B3><EFBFBD>
IR_FEATURE_USER_INFO_PN, //1 WR,<2C><>о<EFBFBD><D0BE>PN<50><4E> <20><><EFBFBD><EFBFBD>Ŀǰʹ<C7B0><CAB9>14λ <20><><EFBFBD>غ<EFBFBD><D8BA>ϴ<EFBFBD>ʱ ͨ<><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ij<EFBFBD><C4B3><EFBFBD><EFBFBD>ж<EFBFBD>ʹ<EFBFBD>ó<EFBFBD><C3B3><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>LB6230CTT20001
IR_FEATURE_USER_INFO_WIDTH, //2 R, ̽<><CCBD><EFBFBD><EFBFBD>FPA<50>Ŀ<EFBFBD><C4BF><EFBFBD> 0 ֻ<><D6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ز<EFBFBD><D8B2><EFBFBD>2<EFBFBD>ֽ<EFBFBD>
IR_FEATURE_USER_INFO_HEIGHT, //3 R, ̽<><CCBD><EFBFBD><EFBFBD>FPA<50>ĸ<EFBFBD><C4B8><EFBFBD> 0 ֻ<><D6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ز<EFBFBD><D8B2><EFBFBD>2<EFBFBD>ֽ<EFBFBD>
IR_FEATURE_USER_TMPR_FPA, //4 R, FPA<50><EFBFBD> 0 ֻ<><D6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ز<EFBFBD><D8B2><EFBFBD>2<EFBFBD>ֽ<EFBFBD> <20><EFBFBD>=<3D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/100
IR_FEATURE_USER_TMPR_ENV, //5 R, <20><>о<EFBFBD><EFBFBD> 0 ֻ<><D6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ز<EFBFBD><D8B2><EFBFBD>2<EFBFBD>ֽ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>=<3D><EFBFBD>*100
IR_FEATURE_USER_TEMPSENSOR_TYPE, //6 R<><52> <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD>һ<EFBFBD><D2BB> <20><>0x88<38><38>ʾ<EFBFBD>ڲ<EFBFBD><DAB2>´<EFBFBD><C2B4><EFBFBD>0x80<38><30>ʾ<EFBFBD>ⲿ<EFBFBD>´<EFBFBD>
IR_FEATURE_NUC_STATUS_EN = 14,// //14 W, bit0 ͼ<><CDBC><EFBFBD>ȶ<EFBFBD><C8B6><EFBFBD><EFBFBD><EFBFBD> 0 dis 1 en
IR_FEATURE_USER_RESERVED_7_TO_15, //7-15 Ԥ<><D4A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
IR_FEATURE_USER_SETT_UPLOAD = 16, //16 Ԥ<><D4A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
IR_FEATURE_USER_SETT_SAVE, //17 W, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E6B9A6> 0 <20><><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD>ò<EFBFBD><C3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>浽flash<73><68><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD>ñ<EFBFBD><C3B1><EFBFBD>
IR_FEATURE_USER_SETT_RESTORE_FACTORY, //18 DO <20>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ò<EFBFBD><C3B2><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>
IR_FEATURE_USER_SETT_RESTART, //19 DO <20><>о<EFBFBD><D0BE><EFBFBD><EFBFBD> 0 <20><>о<EFBFBD><D0BE><EFBFBD><EFBFBD>
IR_FEATURE_USER_SETT_BAUD, //20 DO <20>޸<EFBFBD>ͨѶ<CDA8><D1B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1 <20><><EFBFBD><EFBFBD> 0x01:<3A>Զ<EFBFBD>ʶ<EFBFBD><CAB6>(<28>ɿ<EFBFBD>ȱ <20><><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>ʶ<EFBFBD><CAB6>ʧ<EFBFBD><CAA7>) 0x02:9600 0x04:19200 0x08 :38400 0x10:115200 0x20:921600
IR_FEATURE_USER_NUC_AUTOSHUT, //21 WR <20><><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD>/<2F>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD><EFBFBD> 1 <20><><EFBFBD><EFBFBD>1<EFBFBD>ֽڣ<D6BD>0<EFBFBD><30><EFBFBD>ֶ<EFBFBD><D6B6><EFBFBD> 1<><31><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD>
IR_FEATURE_USER_NUC_SHUT_TYPE, //22 WR <20>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1 <20><><EFBFBD><EFBFBD>1<EFBFBD>ֽڣ<D6BD>0/1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><D0A3> 2<><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><D0A3>
IR_FEATURE_USER_NUC_TIME_INTERVAL, //23 WR <20>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1
IR_FEATURE_USER_NUC_TEMP_CHANGE, //24 WR <20>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¶ȼ<C2B6><C8BC><EFBFBD> 1
IR_FEATURE_USER_TEC_CHANGE_EN = 25, //25 WR TEC<45>Զ<EFBFBD><D4B6>л<EFBFBD><D0BB><EFBFBD><EFBFBD><EFBFBD> 1 <20><><EFBFBD><EFBFBD>1<EFBFBD>ֽ<EFBFBD> 0<><30><EFBFBD><EFBFBD> 1 <20><>
IR_FEATURE_DRC_CLASS = 25, //25 DO<44><4F> <20><><EFBFBD><EFBFBD>1<EFBFBD><31><EFBFBD><EFBFBD>DRC<52><43><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD>ܹ<EFBFBD>16<31><36><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>dde<64><65>drc<72>в<EFBFBD><D0B2>ֲ<EFBFBD><D6B2><EFBFBD>
//<2F><><EFBFBD><EFBFBD>Ϊ0<CEAA><30><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD>û<EFBFBD><C3BB>ɵ<EFBFBD><C9B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>flash<73>е<EFBFBD>1-16<31><36>Ԥ<EFBFBD>趨ֵ<E8B6A8><D6B5>
IR_FEATURE_USER_INFO_VERSION, //26 R <20><>ȡ<EFBFBD><C8A1>ǰ<EFBFBD><EFBFBD>
IR_FEATURE_USER_DISCONNECT, //27 DO <20>Ͽ<EFBFBD><CFBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>޷<EFBFBD><DEB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
R_FEATURE_USER_RESERVED_28_TO_32, //29-41 Ԥ<><D4A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//IR_FEATURE_USER_TEST_IMAGE , //28 DO <20><><EFBFBD><EFBFBD>ͼ<EFBFBD>񿪹<EFBFBD> 1 <20><><EFBFBD><EFBFBD>1<EFBFBD>ֽ<EFBFBD> 0<><30><EFBFBD><EFBFBD> 1 <20><>
IR_FEATURE_DRC_DDE_DETAIL_GAIN = 30, //30 W,<2C><><EFBFBD><EFBFBD>1<EFBFBD><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϸ<EFBFBD><CFB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD><35><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<CEBB><D0A1>
IR_FEATURE_DRC_AGC_HIGHTHROWPERCENT_SET = 33, //33 W,<2C><><EFBFBD><EFBFBD>1<EFBFBD><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD><D6B1>ͼ<EFBFBD>ĸ<EFBFBD><C4B8>ױ<EFBFBD><D7B1><EFBFBD>lowThrowPercent,<2C><>λ<EFBFBD><CEBB>1/1024.
IR_FEATURE_DRC_AGC_HPLATEAUVALUE = 36, //36 W,PE<50>ĸ<EFBFBD>ƽֵ̨
IR_FEATURE_DRC_AGC_LPLATEAUVALUE = 37, //37 W,PE<50>ĵ<EFBFBD>ƽֵ̨
IR_FEATURE_DRC_AGC_ITTMEAN = 38, //38 W, 1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ITTMEAN
IR_FEATURE_DRC_AGC_MAXGAIN_SET = 40, //40 W,<2C><><EFBFBD><EFBFBD>AGC<47>в<EFBFBD><D0B2>ұ<EFBFBD><D2B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
IR_FEATURE_USER_RESERVED_38_TO_41, //38-41 Ԥ<><D4A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
IR_FEATURE_USER_VIDEO_ZOOM = 42, //42 WR <20><><EFBFBD>ӱ䱶 1 0:<3A><><EFBFBD>䱶 1<><31>2<EFBFBD><32> 2<><32>4<EFBFBD><34> 3<><33>8<EFBFBD><38>
IR_FEATURE_USER_VIDEO_CROSS_EN, //43 WR ʮ<>ֹ<EFBFBD><D6B9><EFBFBD><EABFAA> 1 0<><30><EFBFBD><EFBFBD>äԪ<C3A4><D4AA> 1 <20><>äԪ<C3A4><D4AA> 0x02<30><32><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>أ<EFBFBD> 0x03<30><33><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD>
IR_FEATURE_USER_VIDEO_CROSS_MOVE, //44 DO ʮ<>ֹ<EFBFBD><D6B9><EFBFBD><EAB6AF> 1 äԪ<C3A4>궨 0<><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2<><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 3<><33><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 4<><34><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>λBIT7 0 <20><>С<EFBFBD><D0A1><EFBFBD><EFBFBD> 1 <20><><EFBFBD>󲽷<EFBFBD><F3B2BDB7><EFBFBD> <20>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD> 5<><35><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 6<><36><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 7<><37><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 8<><38><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 9<><39><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>λBIT7 0 <20><>С<EFBFBD><D0A1><EFBFBD><EFBFBD> 1 <20><><EFBFBD>󲽷<EFBFBD>
IR_FEATURE_USER_VIDEO_COLORMAP, //45 WR <20><>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>COLORMAP_TYPE_e
IR_FEATURE_USER_DIGITAL_SOURCE, //46 WR <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƵԴ 1 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>DIGITAL_SOURCE_e
IR_FEATURE_USER_DIGITAL_TYPE, //47 WR <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD> 1 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>DIGITAL_TYPE_e
IR_FEATURE_USER_VIDEO_FLIP, //48 WR ͼ<><CDBC><EFBFBD><EFBFBD>ת 1 8bit<69><74><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> bit0 = 1<><31><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>bit1=1<><31><EFBFBD>ҷ<EFBFBD>ת<EFBFBD><D7AA>bit2=1<><31><EFBFBD>£<EFBFBD>bit3=1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
IR_FEATURE_USER_BF_EN, //49 WR <20>˲<EFBFBD><CBB2><EFBFBD><EFBFBD><EFBFBD> 1 ˫<><CBAB><EFBFBD>˲<EFBFBD><CBB2><EFBFBD><EFBFBD>أ<EFBFBD><D8A3><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>ʾ<EFBFBD>˲<EFBFBD><CBB2><EFBFBD><EFBFBD>ع<EFBFBD><D8B9>ܣ<EFBFBD> 0 <20><> 1<><31>
IR_FEATURE_USER_AGC_FROZEN, //50 DO <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>00 <20><><EFBFBD><EFBFBD> 01 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
IR_FEATURE_USER_OSD_VIDEO_EN, //51 WR ģ<><C4A3><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD> just for LT
IR_FEATURE_USER_DIGITAL_TYPE_LT, //52 WR LT<4C><54>Ƶ
IR_FEATURE_USER_RESERVED_52_TO_57, //53-57 Ԥ<><D4A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
IR_FEATURE_USER_AGC_MODE = 58, //58 WR<57><52>AGCģʽ<C4A3><CABD> 1 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>AGC_ALGORITHM_e<5F><65>0<EFBFBD>ֶ<EFBFBD><D6B6><EFBFBD>1<EFBFBD>Զ<EFBFBD>0<EFBFBD><30>PE<50><45><EFBFBD><EFBFBD>2<EFBFBD>Զ<EFBFBD>1(LE)<29><>
IR_FEATURE_USER_AGC_CONTRAST, //59 WR,<2C><><EFBFBD>öԱȶ<D4B1> 1 <20><>Χ0-255
IR_FEATURE_USER_AGC_BRIGHT, //60 WR, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȣ<EFBFBD> 2 <20><>Χ0-511
IR_FEATURE_USER_AGC_GAMMA = 61, //61 WR, GAMMAУ<41><D0A3> 1 <20><><EFBFBD><EFBFBD>gammaУ<61><D0A3>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>10<31><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ0.1 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ 1.1 <20>·<EFBFBD> 11
IR_FEATURE_USER_AGC_ANALOG_ON_OFF = 61, //61 ģ<><C4A3><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD>
IR_FEATURE_USER_DDE_EN, //62 WR DDE״̬ 1 0<><30><EFBFBD><EFBFBD> 1<><31><EFBFBD><EFBFBD>
IR_FEATURE_USER_DDE_GRADE, //63 WR DDE<44><45>λ 1 Ŀǰ<C4BF><C7B0>Χ0-7 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>չ
IR_FEATURE_USER_AGC_CONTRAST_STEP, //64 <20>Աȶ<D4B1><C8B6><EFBFBD><EFBFBD><EFBFBD>ֵ
IR_FEATURE_USER_AGC_BRIGHTNESS_STEP, //65 <20><><EFBFBD>Ȳ<EFBFBD><C8B2><EFBFBD>ֵ
IR_FEATURE_OSD_CURSOR_MOVE = 68,
IR_FEATURE_USER_RESERVED_66_TO_80, //66-80 Ԥ<><D4A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
IR_FEATURE_USER_BLIND_SCAN = 81, //81 DO äԪɨ<D4AA><C9A8> 0
IR_FEATURE_USER_BLIND_OP, //82 DO äԪ<C3A4><D4AA><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> 1 0<><30><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD>ǰäԪ 1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD><CFB4><EFBFBD><EFBFBD><EFBFBD> 2<><32> <20><><EFBFBD><EFBFBD>äԪ<C3A4><D4AA><EFBFBD><EFBFBD>FLASH
IR_FEATURE_USER_K_IMAGE, //83 DO <20><>ȡ<EFBFBD><C8A1>ǰͼ<C7B0><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ΪDOʱ <20><>ȡ<EFBFBD><C8A1>ǰͼ<C7B0><CDBC>Ϊ 0<><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
IR_FEATURE_USER_K_CAL, //84 DO <20>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD>
IR_FEATURE_USER_K_OP, //85 DO <20>û<EFBFBD>K<EFBFBD><4B><EFBFBD><EFBFBD><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> 1 0<><30><EFBFBD><EFBFBD><EFBFBD>浱ǰKֵ 1<><31><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ϴ<EFBFBD>/<2F><><EFBFBD><EFBFBD><20>ݲ<EFBFBD>ʹ<EFBFBD><CAB9> Ԥ<><D4A4><EFBFBD><EFBFBD>չ<EFBFBD><D5B9>
IR_FEATURE_USER_FIRM_UPLOAD, //86 W/D <20>̼<EFBFBD><CCBC><EFBFBD><EFBFBD><EFBFBD> W:128/D:2 <20>̼<EFBFBD><CCBC><EFBFBD><EFBFBD>´<EFBFBD>С(KB)<29><><EFBFBD><EFBFBD>=<3D><>С*8 <20><><EFBFBD><EFBFBD>ʵ<EFBFBD><CAB5> <20><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ָ<EFBFBD><D6B8>DO <20><><EFBFBD>سɹ<D8B3>֮<EFBFBD>󣬿<EFBFBD>ʼʹ<CABC>ø<EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD>W <20><><EFBFBD><EFBFBD> ÿ<>η<EFBFBD><CEB7><EFBFBD>128B<38><42><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>8*<2A><>С <20><>
IR_FEATURE_USER_FIRM_UPLOADK, //87 W/R/D <20><><EFBFBD>ٹ̼<D9B9><CCBC><EFBFBD><EFBFBD><EFBFBD> W/R/D <20>̼<EFBFBD><CCBC><EFBFBD><EFBFBD>´<EFBFBD>С(KB)<29><><EFBFBD><EFBFBD>=<3D><>С <20><><EFBFBD><EFBFBD>ʵ<EFBFBD><CAB5> <20><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD>W<EFBFBD><57><EFBFBD><EFBFBD> <20><><EFBFBD>ʹ<EFBFBD><CDB4><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>1K<31><4B> <20><><EFBFBD>سɹ<D8B3>֮<EFBFBD>󣬿<EFBFBD>ʼ<EFBFBD><CABC><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> ÿ<>η<EFBFBD><CEB7><EFBFBD>1KB<4B><42><EFBFBD>ݣ<EFBFBD>ֻ<EFBFBD>й̼<D0B9><CCBC><EFBFBD><EFBFBD>ݣ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>С <20><>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɺ󣬷<C9BA><F3A3ACB7><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD>Read<61><64><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><D0A3>(4<>ֽ<EFBFBD>У<EFBFBD><D0A3>)<29><>У<EFBFBD><D0A3>ʧ<EFBFBD><CAA7><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>أ<EFBFBD><D8A3>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD>DO<44><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>浽flash
IR_FEATURE_USER_RESERVED_88_TO_99, // 88-99 Ԥ<><D4A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
IR_FEATURE_USER_KEY = 100, // 100 DO <20><><EFBFBD><EFBFBD><E2B0B4> 1 <20><><EFBFBD><EFBFBD>λbit7 <20><>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>1 <20><><EFBFBD><EFBFBD> 0 <20><>λ<EFBFBD><CEBB>Ӧ bit0:M<><4D> bit1: +<2B><> bit2:-<2D><> bit3:C<><43>
IR_FEATURE_USER_BLACKFACE_SWITCH = 124, // 100 DO <20><><EFBFBD><EFBFBD><E2B0B4> 1 <20><><EFBFBD><EFBFBD>λbit7 <20><>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>1 <20><><EFBFBD><EFBFBD> 0 <20><>λ<EFBFBD><CEBB>Ӧ bit0:M<><4D> bit1: +<2B><> bit2:-<2D><> bit3:C<><43>
IR_FEATURE_USER_BLACKFACE_TEMP = 125, // 100 DO <20><><EFBFBD><EFBFBD><E2B0B4> 1 <20><><EFBFBD><EFBFBD>λbit7 <20><>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>1 <20><><EFBFBD><EFBFBD> 0 <20><>λ<EFBFBD><CEBB>Ӧ bit0:M<><4D> bit1: +<2B><> bit2:-<2D><> bit3:C<><43>
IR_FEATURE_USER_BLACKFACE_LOCATION = 126, // 100 DO <20><><EFBFBD><EFBFBD><E2B0B4> 1 <20><><EFBFBD><EFBFBD>λbit7 <20><>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>1 <20><><EFBFBD><EFBFBD> 0 <20><>λ<EFBFBD><CEBB>Ӧ bit0:M<><4D> bit1: +<2B><> bit2:-<2D><> bit3:C<><43>
IR_FEATURE_USER_RESERVED_101_TO_159, //101-159 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԥ<EFBFBD><D4A4>Ԥ<EFBFBD><D4A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
IR_FEATURE_NS_FLASH_COLORMAP = 140, //140 10<31><30>ɫ<EFBFBD><C9AB>
IR_FEATURE_NS_FLASH_LOGO = 141,//LOGO<47><4F><EFBFBD><EFBFBD>
IR_FEATURE_TEMPER_ALARM_EN = 160, // 160 wr <20><><EFBFBD>±<EFBFBD><C2B1><EFBFBD>ʹ<EFBFBD><CAB9> 1 0<><30> 1<><31>
IR_FEATURE_NS_AUTO_CALC_GG, //161 <09><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD> W<><57>0<EFBFBD><30>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD>㣬1<E3A3AC><31><EFBFBD><EFBFBD> 2<><32><EFBFBD><EFBFBD>
IR_FEATURE_MOTOR_MOVE = 162, //162 DO <20><>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 4 <20><><EFBFBD><EFBFBD>1 1<>ֽ<EFBFBD> ֵ0<D6B5><30>ֹͣ 1 <20><>ת 2 <20><>ת <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>2 1<><31><EFBFBD>ֽ<EFBFBD> <20><><EFBFBD><EFBFBD>PWMռ<4D>ձ<EFBFBD> <20><><EFBFBD><EFBFBD>3 2<><32><EFBFBD>ֽ<EFBFBD> <20><><EFBFBD>ò<EFBFBD><C3B2><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
IR_FEATURE_NS_CALC_GG_PARA = 162,//162 д <20><> <20><><EFBFBD><EFBFBD>һ 1.<2E><><EFBFBD><EFBFBD><5F><CFB5>A 2.<2E><><EFBFBD><EFBFBD><5F><CFB5>B 3.<2E><><EFBFBD><EFBFBD>_Range 4.<2E><><EFBFBD><EFBFBD><EFBFBD>²<EFBFBD><C2B2><EFBFBD><EFBFBD><EFBFBD> LimitMaxT
//<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>һ 1. <20><>ȡ_A 2.<2E><>ȡ_B 3. <20><>ȡ_renge 4.<2E><>ȡ<EFBFBD><EFBFBD><C2B6><EFBFBD><EFBFBD><EFBFBD>MaxT
IR_FEATURE_RTD323_FPA_AVERAGE = 196, //196(ԭ176) R,<2C><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>ƽ<EFBFBD><C6BD>ֵ<EFBFBD><D6B5>count<6E><74> 2<><32><EFBFBD>ֽ<EFBFBD>
IR_FEATURE_RTD323_TEC_TEMP = 206, //206(ԭ222) WR,<2C><><EFBFBD><EFBFBD>TEC<45><EFBFBD>
IR_FEATURE_RESERVED_163_TO_255, //163 <20>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD>ƹ<EFBFBD><C6B9><EFBFBD> Ԥ<><D4A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
} IR_FEATURE_USER, *P_IR_FEATURE_USER;
enum PTZ_Code
{
PTZ_CODE_LEFT = 0,
PTZ_CODE_RIGHT,
PTZ_CODE_UP,
PTZ_CODE_DOWN,
PTZ_CODE_IRISADD,
PTZ_CODE_IRISDEC,
PTZ_CODE_FOCUSADD,
PTZ_CODE_FOCUSDEC,
PTZ_CODE_ZOOMADD,
PTZ_CODE_ZOOMDEC,
PTZ_CODE_GOTOPOINT,
PTZ_CODE_SETPOINT,
PTZ_CODE_AUTO,
PTZ_CODE_STOP,
PTZ_CODE_LEFTSTOP,
PTZ_CODE_RIGHTSTOP,
PTZ_CODE_UPSTOP,
PTZ_CODE_DOWNSTOP,
PTZ_CODE_IRISADDSTOP,
PTZ_CODE_IRISDECSTOP,
PTZ_CODE_FOCUSADDSTOP,
PTZ_CODE_FOCUSDECSTOP,
PTZ_CODE_ZOOMADDSTOP,
PTZ_CODE_ZOOMDECSTOP,
PTZ_CODE_AUTOSTOP = 33,
};
#pragma pack (1)
struct DeviceInfo
{
char szServerName[50];
char cIP[16]; //the Device IP
};
struct ChannelInfo
{
int channel;
char szServerName[50];
char szUserName[30];
char szPWD[30];
char szIP[30];
WORD wPortNum;
BYTE byChanNum;
BYTE byChanNum2;
int iStreamNum;
int iStreamNum2;
};
#define MAX_DEVICE_NUM 100
struct DeviceList
{
int iNumber; //Device Count
//DeviceInfo DevInfo[MAX_DEVICE_NUM];
ChannelInfo DevInfo[MAX_DEVICE_NUM];
};
struct INF_OSD
{
INF_OSD(BOOL temp_add, BOOL temp_param_add, BOOL pseudo_add, BOOL lhtp)
{
m_g_temp_add = temp_add;
m_g_temp_param_add = temp_param_add;
m_pseudo_add = pseudo_add;
m_low_hight_temp_pos = lhtp;
}
BOOL m_g_temp_add;
BOOL m_g_temp_param_add;
BOOL m_pseudo_add;
BOOL m_low_hight_temp_pos;
};
typedef struct
{
int max_temp;
int min_temp;
int avg_temp;
int cen_temp;
}global_temp;
typedef struct
{
int emissivity;
int airTemp;
int reflectTemp;
int humidity;
int distance;
} envir_param; //Parameters are actual values * 10000
typedef struct
{
int iFormat;//1:Center 2:Align left 3:Align right
int iFormatTime;//0:off
//1:2020 - 07 - 20 16 : 18 : 30
//2 : 2020 - 07 - 20 FRI 16 : 18 : 30
//3 : 07 - 20 - 2020 16 : 18 : 30
//4 : 07 - 20 - 2020 FRI 16 : 18 : 30
//5 : 20 - 07 - 2020 16 : 18 : 30
//6 : 20 - 07 - 2020 FRI 16 : 18 : 30
//C:TimeEnable 0:off 1:on
int iShow; //0:Do not show 1:show C:TitleEnable 0:off 1:on
int iIndex; //0:time 1/2/3:Custom string
char m_szString[200];//Content B:utf-8
int iWidth; //String width
int iDeviceWidth; //Area array width
int iDeviceHeight; //Area array height
int iX; //time coordinate
int iY; //time coordinate
int iStringX; //string coordinate
int iStringY; //string coordinate
}Custom_String;//Overlay Custom string
typedef struct
{
int iTempAvg;//Average regional temperature Celsius*10
int iTempCenter; //Regional center point temperature
int iTempMax; //Maximum regional temperature
int iTempMin; //Minimum regional temperature
int iMaxPosX; //Maximum X coordinate
int iMaxPosY; //Maximum Y coordinate
int iMinPosX; //Minimum X coordinate
int iMinPosY; //Minimum Y coordinate
}Area_Temp;//AT Area Temp
#define AREA_NUM 7
typedef struct
{
bool bEnable;//true: on false: off
int iIndex; //index
int iMode; //0:point 1:line 2:area
int iStartPosX; //Start X coordinate
int iStartPosY; //Start Y coordinate
int iEndPosX; //End X coordinate
int iEndPosY; //End Y coordinate
bool bHighAlarm;//High temperature alarm true:on false:off
bool bHighAlarmLevel;//High temperature alarm level true:on false:off
bool bLowAlarm;//Low temperature alarm true:on false:off
bool bLowAlarmLevel;//Low temperature alarm level true:on false:off
bool bPopup;//Pop-ups true:on false:off
bool bRing;//Ring true:on false:off
bool bSnap;//snap true:on false:off
int iDebounce; // debounce time unit:s
int iHighTempThres; //High temperature alarm threshold Kelvin*10
int iHighTempThresLevel1; //High temperature alarm level1 threshold
int iHighTempThresLevel2; //High temperature alarm level2 threshold
int iHighTempThresLevel3; //High temperature alarm level3 threshold
int iLowTempThres; //Low temperature alarm threshold
int iLowTempThresLevel1; //Low temperature alarm level1 threshold
int iLowTempThresLevel2; //Low temperature alarm level2 threshold
int iLowTempThresLevel3; //Low temperature alarm level3 threshold
}Temp_Config;//AT Temperature measurement configuration
typedef struct
{
int iIndex; //index
int iPosY; //Y coordinate
int iPosX; //X coordinate
}Point_pos;//AT point position
typedef struct
{
int iMode;// AT : 0: point 1:line 2:area AT20: 0:area,1:line,2:point
int iIndex; //index
int iStartPosX; //StartX coordinate
int iStartPosY; //StartY coordinate
int iEndPosX; //EndX coordinate
int iEndPosY; //EndY coordinate
int iDeviceWidth; //Area array width
int iDeviceHeight; //Area array height
int m_region_enable; // Regional temperature measurement enable
int m_osd_enable; // Area temperature measurement osd superposition enable
int m_cursor_enable; // Regional temperature measurement high and low temperature cursor superimposition enable
int m_param_enable; // Regional temperature measurement using local parameters
}Area_pos;//area position
typedef struct
{
int iType; // 0: point 1: line 2: area
int iIndex; // index
int iAlarmType;//0: high 1:low
int iLevel; // alarm level
int iTime; //Timestamp
char* alarmTime; //Time C
}Alarm_Info;
typedef struct
{
unsigned char m_starthour; // Start Hour
unsigned char m_startmin; // Start Minute
unsigned char m_stophour; // Stop Hour
unsigned char m_stopmin; // Stop Hour
unsigned char m_maskweek; // Week
unsigned char bReceive[3]; // Reserved
} Time_Check;
typedef struct
{
Time_Check pList[7]; // Time Table
} Time_List_capture;
typedef struct
{
int bEnable; // true: coding on false: coding off
int iCompress; // Encoding 5:H264 8:H265
int iBrc; // Rate control mode 0:VBR 1:CBR
int iImageSize; //Resolution 5:384*288 9:640*512 16:1024*768 22:1280*1024
int iImageQuality; //Image quality level 1-6(6:the best) VBR or Snapshot mode is valid
int iBitRate; //Bit rate
int iGOP; //Reserved
int iRefMode; //Reserved
int iEnhanceVBRMode;//Reserved
int m_ftp_timecapjpg; // regular capturing FTP uploading
int m_CapJpgInterval; // interval time for regular capturing
Time_List_capture m_timeList; // capture time
}Encoding_Format;
typedef struct
{
char m_StartTime[10]; // Start time
char m_EndTime[10]; // End time
}Time_List;
typedef struct
{
Time_List time_list[5]; //5 time periods
}Schedule;
typedef struct
{
int bMainEnable; // true: main stream on false: main stream off
int bExtraEnable; // true: Extra stream on false: Extra stream off
Schedule list[7]; // start from sunday
}Recoding;
typedef struct
{
int iMode; //0:point 1:line 2:area 3:full frame
int iIndex; //index
int bHighAlarmEnable; // true: High temperature alarm on false: High temperature alarm off
int bLowAlarmEnable; // true: Low temperature alarm on false: Low temperature alarm off
int bHighAlarmLevelEnable; // true: High temperature alarm level on false: High temperature alarm level off
int bLowAlarmLevelEnable; // true: Low temperature alarm level on false: Low temperature alarm level off
int bPopupEnable; // true: Pop-ups on false: Pop-ups off
int bAudioEnable; // true: ring on false: ring off
int bSnapEnable; // true: snap on false: snap off
int iDebounce; // debounce time unit:s
int iHighTempThreshold; //High temperature threshold A&C:C*10 B:K*10
int iHighTempThresholdLevel1; //High temperature threshold Level1 A:C*10 B:K*10
int iHighTempThresholdLevel2; //High temperature threshold Level2 A:C*10 B:K*10
int iHighTempThresholdLevel3; //High temperature threshold Level3 A:C*10 B:K*10
int iLowTempThreshold; //Low temperature threshold A:C*10 B:K*10
int iLowTempThresholdLevel1; //Low temperature threshold Level1 A:C*10 B:K*10
int iLowTempThresholdLevel2; //Low temperature threshold Level2 A:C*10 B:K*10
int iLowTempThresholdLevel3; //Low temperature threshold Level3 A:C*10 B:K*10
int iStartPosX; //Start X coordinate
int iStartPosY; //Start Y coordinate
int iEndPosX; //End X coordinate
int iEndPosY; //End Y coordinate
int m_enable; // function enable
int m_typethreshold; // 0: >m_htempthreshold, 1: <m_ltempthreshold, 2: [m_ltempthreshold, m_htempthreshold], 3: not belong to[m_ltempthreshold, m_htempthreshold]
int m_singlehost; // label of center for uploading alarm signal
unsigned char m_record[16]; // relate to recording
unsigned char m_out[8]; // relate to output 1:ON, 0<><30>OFF
unsigned char m_enpreno[16]; // relate to preset point
unsigned char m_preno[16]; // number of preset point to be called
unsigned char m_capjpeg[16]; // relate to capturing
Time_List_capture m_timelist; // detection time table define ETI_TIME_DAYTYPE
//C use
int FliterTime; //Filter time
int LinkageType[7]; //Linkage type 0:alarm1 1:flash 2:snap 3:record 4: upload ftp 5:SMTP 6:alarm2
int MoreOrLess; //alarm type 0:The Max is less than, 1:The Max is more than, 2:The Min is less than<61><6E>3:The Min is more than<61><6E>4:The Avg is less than<61><6E>5:The Avg is more than
int SlowMovingTemp; //Hysteresis temperature C*10
}Alarm_Config;
typedef struct
{
int m_year; // Year
unsigned char m_month; // Month
unsigned char m_dayofmonth; // Day
unsigned char m_hour; // Hour
unsigned char m_minute; // Minute
unsigned char m_second; // Second
} Time_Param;
typedef struct
{
int enbale; //true:enable
char* Encrypt; //Encryption NULL or WPA-PSK
char* id; //ID
char* pwd; //password
}Wlan_Config;
#define USER_NUM 100
typedef struct
{
int id; //true:enable
char* Description; //Description
char* GroupName; //Group Name
char* ModifiedTime; //Modified Time
char* UserName; //User Name
}User_Info;
typedef struct
{
int groupId; //group id
char* Description; //Description
char* Password; //Password
char* UserName; //User Name
}User_New;
typedef struct
{
int LoginTime; //Login Time
int UpdateTime; //Update Time
char* Address; //Address
char* Token; //Token
char* UserName; //User Name
}User_Online;
typedef struct
{
int id; //id
char* oldPasswd; //oldPasswd
char* newPasswd; //newPasswd
char* Description; //Description
}User_Modify;
typedef struct
{
int Camera; //Camera settings
int Network; //Network settings
int Osd; //osd settings
int Peripherals; //Peripheral management
int Storage; //Storage management
int System; //System management
int SystemMaintain; //system maintenance
int Temperature; //Temperature measurement setting
int Playback[1]; //Playback management
int RealMonitor[2]; //real time monitoring
}Group_Authority;
typedef struct
{
int id; //id
char* GroupName; //group Name
char* Description; //Description
Group_Authority group_authority;
}Group_Info;
typedef struct
{
char* DeviceName; //Device Name
char* Language; //Language
char* VideoFormat; //Video Format
}Device_Setting;
typedef struct
{
char* EmergencyVideoPath; //Emergency Video Path
char* RecordPath; //Record Path
}Record_Path;
typedef struct
{
int CutSize; //Video division size (MB)
int CutTime; //Video segmentation time (minutes)
int CutType; //Video segmentation type (0: by time, 1 by size, 2: both)
int RecChn; //Video channel: 0 means visible light, 1 means infrared, 2 means visible light + infrared
int RecType; //Video type (for extension, currently 0, MP4)
int UseRec; //Recording enable (1: yes, 0: no)
}Record_Param;
typedef struct
{
int Begin; //Begin time
int Channel; //Chn selection of video, 0 is visible light, 1 is infrared
int End; //end time
int Path; //Video storage path (0: video storage directory, 1: emergency video storage directory)
int Type; //File type (0: video, 1: picture)
char* Name[]; //file name
}Record_Search;
typedef struct
{
int Chn; //snap channel: 0 means visible light, 1 means infrared, 2 means visible light + infrared
int Enable; //snap enable (1: yes, 0: no)
int Interval; //Time interval for snap, in seconds
}Snap_Param;
typedef struct
{
char* AdministrativeDivisionCode; //Administrative division code
char* AlarmChNo; //Alarm channel number
int AlarmIndex; //Alarm number: 1, 2
int AlarmLevel; //Alarm level: 1, 2, 3, 4, 5, 6
int ChAlarmLevel; //Alarm level: 1, 2, 3, 4, 5, 6
int ChIndex; //Channel number: 1, 2
char* ChNo; //Channel No
char* DeviceNo; //Device No
int Enable; //Enable switch
int HeartMaxOut; //Maximum number of heartbeat timeouts
int HeartTime; //Heartbeat cycle (unit: s)
char* IdentificationCode; //Access module identification code
int LocalSipPort; //Local SIP server port
char* Password; //sign up password
int RegisterValid; //Registration Validity Period (Unit: s)
char* SipDomain; //sip domain
char* SipServerIp; //sip server ip
char* SipServerNo; //SIP server number
int SipServerPort; //sip server port
}GB28181_Param;
typedef struct
{
int iMode;// 0: point 1:line 2:area 3:frame
int iStartPosX; //StartX coordinate
int iStartPosY; //StartY coordinate
int iEndPosX; //EndX coordinate
int iEndPosY; //EndY coordinate
int iMax; // Max K*10
int iMin;// Min K*10
int iAvg;//Avg K*10
int iMaxPointX;//max coordinate x
int iMaxPointY;//max coordinate y
int iMinPointX;//min coordinate x
int iMinPointY;//min coordinate y
}Position_info;
typedef struct
{
int enable;// true: temp data open false: temp data close
int fps; //Temperature data frame rate
}TempData_Param;
typedef struct
{
short version; // <20>ļ<EFBFBD><C4BC>
unsigned short width; //<2F>¶ȵ<C2B6><C8B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
unsigned short height; //<2F>¶ȵ<C2B6><C8B5><EFBFBD><EFBFBD>߶<EFBFBD>
unsigned char createTime[14]; //<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
int emiss; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> *10000
int airTemp; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
unsigned char lenCamera; //<2F><>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD>
unsigned int distance; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> *10000
unsigned char relativeHumidity; //<2F><><EFBFBD><EFBFBD>ʪ<EFBFBD><CAAA>
int refTemp; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> *10000
unsigned char productcor[32]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
unsigned char type[32]; //<2F><>Ʒ<EFBFBD>ͺ<EFBFBD>
unsigned char serialNo[32]; //<2F><>Ʒ<EFBFBD><C6B7><EFBFBD>к<EFBFBD>
int longitude;//<2F><><EFBFBD><EFBFBD> *10000
int latitude; //γ<><CEB3> *10000
int altitude; //<2F><><EFBFBD><EFBFBD> *10000
int remarkLen; //<2F><>ע<EFBFBD><D7A2>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
unsigned char remark[256];
int atmTrans; //͸<><CDB8><EFBFBD><EFBFBD> *10000
int K0; //K0 *10000
int B0; //B0 *10000
int K1; //K1 *10000
int B1; //B1 *10000
int pseudoColorIndex;//Pseudo-color number
int iOffset;
}JPG_Param;
typedef struct
{
int emissivity;
int airTemp;
int reflectTemp;
int humidity;
int distance;
int atmTrans;
int K0;
int B0;
int K1;
int B1;
} JPG_envir_param; //Parameters are actual values * 10000
typedef struct
{
int max; //K*10
int min; //K*10
int frameMax; //K*10
int frameMin; //K*10
int width;
int height;
int pseudoColorIndex;//Pseudo-color number
} Stretch_param;
typedef struct
{
unsigned short width; //width
unsigned short height; //height
int emiss; // Emissivity*10000
int airTemp; //Ambient temperature*10000
unsigned int distance; //distance *10000
unsigned char humidity; //Humidity*10000
int refTemp; //Reflected temperature*10000
int atmTrans; //Atmospheric transmittance*10000
int K0; //K0 *10000
int B0; //B0 *10000
int K1; //K1 *10000
int B1; //B1 *10000
int pseudoColorIndex;//Pseudo-color number
int unit; //temp unit
int gainStatus; //0:highGain 1:lowGain
}IRG_Param;
#define GRIDS_RGN_MAX_NUM 64 //The maximum number of grids is 64, which is equivalent to 64 regional temperature measurements
typedef struct
{
char name[16]; //rgn name
char osdType; //0: not superimposed; 1: lowest temperature; 2: highest temperature; 3: average temperature
char osdTrackTempEn; //Temperature point tracking overlay enable: 0: No overlay; 1: Low temperature point tracking (not supported); 2: High temperature point tracking
char reserve[6];
int overhtempthreshold; //Super maximum temperature stacking threshold C*10
}Grids_Attrs;
typedef struct
{
short mode; //AGC_GRID_MODE_E 0:disable, 1:4x4, 2:6x6, 3:8x8
short reserve;
Grids_Attrs gridsAttr[GRIDS_RGN_MAX_NUM];
}Grids_Param;
typedef struct
{
int m_maxtemp; //max C*10
int m_mintemp; //min C*10
int m_avgtemp; //avg C*10
}Grids_Temp_Value;
typedef struct
{
Grids_Temp_Value m_region_temp[GRIDS_RGN_MAX_NUM]; //Zone temperature information, number of extended zones 64
}Grids_Temp;
#define POINT_MAX_NUM 640*512 //640*512
typedef struct
{
int type; //PTZ_Code
int value; //[1-10]
int priority; //Gimbal control priority, need equipment support
}PTZ_CTRL;
#pragma pack ()