#if 1 #pragma once #ifndef NWEB_H #define NWEB_H //#include "structures.h" #include "define_inc.h" #include "zlog.h" #include "cv.h" #include "utility.h" #include "onvif_data.h" #ifdef GY_OS_NOVA #include "bbox_receive.h" #endif #include #include #if defined GY_OS_AMBA || defined GY_OS_NOVA #include #endif #ifdef GY_OS_WIN #include "opencv2/highgui/highgui_c.h" #include "opencv2/imgproc/imgproc_c.h" #endif #include #include #include #ifdef GY_OS_AMBA //#include "face_parser.h" #endif #ifdef __cplusplus extern "C" { #include #include #endif #define CONTENT_BUFSIZE MAX_IMG_BUFF_SIZE #define LOG_BUFSIZE (BUFSIZE<<1) #define NW_ERROR 1 #define NW_SORRY 2 #define NW_LOG 3 #define LINE_BUFSIZE 7*8192 //512 #define MAX_SIZE_POINT 6 #define MAX_NUMBER_PAGE 59 #define HEADER_BUFSIZE 1024 #define WEBPYTHONBUFFER_LENSIZE 256 #define WEBPYTHONBUFFER_ROWSIZE 256 #define MAX_GET_PYTHON_BUFFER_ROW_SIZE 8 #ifdef GY_OS_NOVA #define MEMORY_SIZE 256*1024 #endif #ifdef GY_OS_AMBA #define MEMORY_SIZE 512*1024 #endif #define MAX_SERVICE_SIZE 256 #define MAX_SIZE_A_OSD_OBJECT 11 #define MAX_SIZE_A_SP_OBJECT 6 //trigger types #define TRIGGER_OUTSIDE_INSIDE 1 #define TRIGGER_INSIDE_OUTSIDE 2 #define TRIGGER_INSIDE_INSIDE 3 #define TRIGGER_OUTSIDE_OUTSIDE 4 /*typedef struct { int x; int y; } Point;*/ /*typedef struct { char* recvBuffer; char* contentBuffer; } BufferPtr;*/ /*typedef struct { time_t recv_time; int frames; } SecData;*/ typedef struct { struct tm * snapshot_time; time_t snapshot_time_mktime; time_t snapshot_msecs_time; char snapshot_addr[MAX_IMG_SIZE]; int snapshot_size; }SnapHDInfo; typedef struct { char weight_repository[35]; int enable_weight_to_run; }WeightFileInfo; typedef struct { char email_address1[50]; char email_address2[50]; char email_address3[50]; char email_address4[50]; char email_address5[50]; char email_address[50]; char smtp_server[50]; int smtp_auth_mode; char smtp_port[10]; int smtp_auth; char auth_account[50]; char auth_password[50]; } IPCAMServiceInfo; typedef struct { int checked; char detect_event_id[20]; char detect_event_name[50]; char post_event_name[MAX_MSG_LEN * 10]; char counter_name[MAX_MSG_LEN * 10]; int counter_increment; //TriggerData [MAX_DETECT_OBJECTS]; } TriggerEvent; typedef struct { bool isActive; /*char levenshtein_distance[10]; char min_characters[10]; char max_characters[10]; char confidence[10];*/ char enable_traffic_light[10]; //char enable_social_distance[10]; #ifdef GY_OS_AMBA CvMat* PerspectiveTransformArray; #endif char detection_time[20]; char metadata1[BUFSIZE]; char metadata2[BUFSIZE]; char metadata_stop[50]; char link_to_counter[10]; char enable_direction1[10]; char enable_direction2[10]; char direction1[10]; char direction2[10]; int no_parking_time; int no_parking_time_in_minute; int queuing_count; int prev_queuing_num; int queuing_trigger_event_idx; char ptz_zone_to_preset[20]; TriggerEvent trigger_event[MAX_TRIGGER_EVENT]; CPoint Points[6]; int min_x_points; int max_x_points; int min_y_points; int max_y_points; f_CPoint onvif_Points[6]; int parking_space; int parking_line; //Social Distance float set_distance; char world_distance_unit[10]; float world_distance[DETECTION_POINTS_COUNT]; int distance_violation_count; int prev_distance_violation_num; time_t prev_distance_violation_time; time_t recent_distance_violation_start_time; int distance_trigger_event_idx; //float LinearFormula[DETECTION_POINTS_COUNT][3]; //4 edges, each edge has it's ax+by+c =0 values //char* MovingDirection[DETECTION_POINTS_COUNT]; int point_num; int obj_tracking_id_in_zone[MAX_OBJ_TRACKING_ID_IN_ZONE]; int last_obj_tracking_id_in_zone[MAX_OBJ_TRACKING_ID_IN_ZONE]; int last_two_obj_tracking_id_in_zone[MAX_OBJ_TRACKING_ID_IN_ZONE]; int check_if_missing; char enable_speed[10]; char enable_radar_speed[10]; char enable_ivs_zone[10]; float world_distance_side1; float world_distance_side2; char world_time_unit[20]; char obj_max_proportion_in_zone[10]; char obj_min_proportion_in_zone[10]; //int speed_upper_bound;//請改用set_distance //int speed_lower_bound;//請改用set_distance //char confidence3[10]; #if defined GY_OS_AMBA //jvc setting int jvc_enable_detect; int jvc_person_check; int jvc_vehicle_check; int jvc_person_confidence; int jvc_vehicle_confidence; int jvc_behavior; int jvc_obj_size; int jvc_detect_priority; int jvc_detect_mode; int jvc_detect_fov; int jvc_trigger_delay_time; int jvc_trigger_times; int jvc_queuing_count; int jvc_enable_direction1; int jvc_direction1; char jvc_counter_name[50]; int jvc_counter_value; int jvc_density_value; int jvc_enable_ptz; int jvc_ptz_tracking_time; int jvc_ptz_fov; int jvc_ptz_auto_intercept; int jvc_ptz_preset_intercept; int jvc_ptz_zone_to_preset; #endif } DetectionZoneInfo; typedef struct { int channel_idx; int enable_anpr; int enable_face; int enable_traffic; int enable_logo; int enable_add_face_frequent_list; int tab_view_width; int tab_view_height; float tab_view_width_ratio; float tab_view_height_ratio; float speed_view_width_ratio; float speed_view_height_ratio; char camera_name[20]; char obj_max_proportion[10]; char obj_min_proportion[10]; char levenshtein_distance[10]; char min_characters[10]; char max_characters[10]; int i_plate_filter_times; int i_plate_filter_time; int i_plate_free_time; char confidence[10]; //車牌 Plate char confidence2[10]; //交通 Traffic char confidence3[10]; //沒有用到 None char confidence4[10]; //沒有用到 None int enable_traffic_light_zone; //int enable_social_distance_zone; char traffic_light_color[20]; //CvMat* PerspectiveTransformArray; char enable_lpr_db[10]; char enable_PTZ[10]; char enable_track[10]; char ivs_mode[10]; char ptz_tracking_fov_min[10]; char ptz_tracking_fov_max[10]; char ptz_enable_tracking[10]; char ptz_tracking_resume_dwell[10]; int ptz_tracking_by_enter_zone; int ptz_tracking_mode; int ptz_sensitivity; int iVideo_source_w; int iVideo_source_h; char enable_tracking_limits[10]; char ptz_pan_left_limit[20]; char ptz_pan_right_limit[20]; char ptz_tilt_up_limit[20]; char ptz_tilt_down_limit[20]; char ptz_speed[20]; char enable_unknown_object[10]; char enable_ivs_person_detection[10]; char assign_ivs_object_to[100]; char enable_ambulance[10]; char enable_blank_plate[10]; char enable_stop_sign[10]; char enable_ivs_fix_mode[10]; char enable_show_unknown_object[10]; char enable_ivs_and_ai[10]; char enable_lpr_upon_triggered[10]; char dwell_lpr_upon_triggered[10]; char unknown_object_max_proportion[10]; char unknown_object_min_proportion[10]; char confidence_unknown_object[10]; char confidence2_unknown_object[10]; char dwell_unknown_object[10]; char dwell_minute_focus_on[10]; char person_obj_fov[10]; char getnetwork_buffer_id[10]; char red_light_zone[10]; char no_give_way_zone_to_protect[10]; char no_give_way_zone_to_keep_away[10]; char no_give_way_zone_to_protect_2[10]; char no_give_way_zone_to_keep_away_2[10]; int count_zone; } ChannelInfo; typedef struct { char enable_person_independent[10]; char enable_onvif_profile_m[10]; char enable_crop_mode[10]; char nms_thres[10]; char tracking_id_dwell[10]; char enable_cloud[10]; char enable_special_edition[10]; char enable_python[10]; char enable_python_file[50]; char enable_low_cpu_usage[10]; char cloud_enable_snap[10]; char cloud_enable_notification[10]; char cloud_account[256]; char cloud_password[256]; char cloud_notification_dwell[10]; char cloud_statue[MEMORY_SIZE]; char language[50]; char enable_display_properties[10];//enable to show color char enable_display_OSD[10]; char enable_special_char[10]; char enable_bounding_box[10]; char enable_dwell_bounding_box[10]; char force_i_to_one[10]; char force_o_to_zero[10]; char enable_plate_angle_correction[10]; char enable_ai_mirror[10]; char ai_mirror_feature[10]; char enable_cloud_v2[10]; char cloud_v2_notification_dwell[10]; char cloud_v2_content[BUFSIZE_V3]; char enable_cloud_record_v2[10]; char cloud_record_v2_notification_dwell[10]; char cloud_record_v2_content[BUFSIZE_V3]; char cloud_v2_statue[MEMORY_SIZE]; char cloud_record_v2_statue[MEMORY_SIZE]; char enable_post_only_if_both_detected[10]; char enable_getalarmmotion_snap[10]; char getimage_encoder_id[10]; char getimage_encoder_id_HD[10]; char osd_encoder_id[10]; char osd_font_size[10]; char osd_outline_lilin[10]; char enable_osd_bottom[10]; char osd_bottom_bg_tran[10]; char osd_bottom_content[BUFSIZE_V3]; char sensors_type[10]; char enable_sync_external_lpr_db[10]; char external_lpr_db_IP[256]; char external_lpr_db_port[10]; char external_lpr_db_username[60]; char external_lpr_db_password[60]; char enable_email_notification[10]; char enable_system_logs[10]; char enable_email_jpeg[10]; char send_counter_at_specific_hour[10]; char email_reset_time_interval[20]; char enable_ftp[10]; char ftp_url[256]; char ftp_port[25]; char ftp_username[256]; char ftp_password[256]; char ftp_remote_directory[1024]; char ftp_jpeg_file_name_format[10 + 1]; char ftp_jpeg_file_name[60]; } SystemSettingInfo; typedef struct { char post_protocol[10 + 1]; char post_event_method[10+1]; char post_event_name[60]; char post_host_ip[256]; char post_host_port[5+1]; char post_url[8192];//BUFSIZE_V2 char post_username[60]; char post_password[60]; char post_content[MAX_IMG_SIZE]; char post_customized_header[8192]; //unsigned char post_content_bin[MAX_HTTP_BUFFER]; char post_sequence[60]; char post_file_format[10 + 1]; char post_jpeg_file_name_format[10 + 1]; char post_jpeg_file_name[60]; char post_timeout[10]; int check_if_delivering; } PostEventInfo; typedef struct { char email_content[BUFSIZE_V3]; //unsigned char email_content_bin[MAX_HTTP_BUFFER]; } EmailInfo; typedef struct { //int nListIndex; char counter_name[36 + 1]; int counter_zone; char counter_cust_name[256]; char counter_unit[16 + 1]; int reset_value; int reset_year; int reset_month; int reset_month_day; int reset_week_day; int reset_hour; int reset_min; int reset_sec; int gmt_year; int gmt_month; int gmt_month_day; int gmt_week_day; int gmt_hour; int gmt_min; int gmt_sec; int next_year; int next_month; int next_month_day; int next_week_day; int next_hour; int next_min; int next_sec; char ReportTimeInterval[30]; char ResetTime[50]; int already_reset; int counter_count; time_t timetResetAt; time_t next_timetResetAt; char enable_reset_time_interval[10 + 1]; char reset_time_interval[36 + 1]; char reset_at[36 + 1]; char enable_time_range[10 + 1]; char time_range_from[36 + 1]; char time_range_to[36 + 1]; time_t timetTimeRangeFrom; time_t timetTimeRangeTo; char link_to_post_event_name[256]; char post_interval[36 + 1]; int dwell_time; char dwell_unit[10 + 1]; //char MetaOut1[512][50]; //int metadata1_num; char enable_reset_only_cloud[10 + 1]; char enable_linked_to_dwell_time[10 + 1]; time_t last_post_time; } EventCounterInfo; typedef struct { char counter_a[20]; char counter_a_name[50]; char counter_a_zone[10]; char counter_b[20]; char counter_b_name[50]; char counter_b_zone[10]; char counter_c_name[50]; char report_max_value[20]; char enable_report[10]; char counter_mode[20]; char initial_icon[50]; char output_icon[50]; char detection_output[100]; } ReportCounterInfo; typedef struct { char snmp_event_name[256]; char snmp_version[10]; char snmp_group_name[256]; char snmp_host_ip[256]; char snmp_host_port[10]; char snmp_oid[256]; char snmp_value[BUFSIZE]; char snmp_type[20]; int check_if_delivering; } SNMPManagementInfo; //20201027 sophia add //read from [ipcam /usr/local/bin/nvclient -k user.password0 /usr/local/bin/nvclient -k user.account0 ...9] //save to config.json account_setting->account_data typedef struct { char account_username[256]; char account_password[256]; char account_port[50]; char account_mirror[20]; char account_flip[20]; char account_rotate[20]; char account_aida_port[50]; int account_type; //default ? int account_status; //default ? } AccountDataInfo; typedef struct { //pthread_t thread_id; SOCKET sock; int channel_id; double fps; //time_t last_recv_time; //SecData recent_sec_data[FPS_AVG_SECS]; int isGetAlarmMotion; //int isFirstAlarmMotion; int isWebSocketConnect; int isNvrRequest; int isCredentialRequest; #if defined GY_OS_AMBA || defined GY_OS_NOVA int isUdpSocket; //20201112 sophia add #endif //GY_OS_AMBA uchar* prev_frame_data; //int iIsWebsocketHybi00; #if defined GY_OS_AMBA //int iIsAIRelay; #endif int debug_type; int used; } SocketInfo; typedef struct { char curl_url[8192]; char curl_sendbuf[8192]; char method[32]; char username[64]; char password[64]; char port[10]; //strtol(q_info->host_port, NULL, 10) } CURL_SEND; typedef struct { int tof_version; bool tof_debug; int tof_install_angle; bool tof_enable_camera; bool enable_tof_ground; bool enable_tof_wall; char tof_camera_ip[256]; char tof_camera_port[10]; char tof_camera_sub_url[8192]; char tof_auth_key[8192]; bool tof_ip_setting; char tof_camera_username[512]; char tof_camera_password[512]; char distance_options[10]; char distance_min_max[10]; char distance_threshold[20]; char height_options[10]; char height_min_max[10]; char height_threshold[20]; char ground_x[10]; char ground_y[10]; } TofInfo; typedef struct { char enable_heartbeat[10]; char events_default_version[10]; char heartbeat_dwell[10]; char heartbeat_link_to_post_event_name[256]; char dwell_to_the_same_location[10]; char enable_snmp_heartbeat[10]; char snmp_heartbeat_dwell[10]; char snmp_heartbeat_link_to_post_event_name[256]; char enable_only_once_to_post[10]; char enable_obj_once_to_post[10]; char enable_location_once_to_post[10]; char enable_nvr_once_to_getalarmmotion[10]; char enable_8592_once_to_getalarmmotion[10]; char heatmap_max[20]; char enable_heatmap[10]; char heatmap_frequency[20]; char lpr_title[256]; char enable_counter_snap[10]; char enable_barcode_qr[10]; char enable_check_ptz_start_autotracking[10]; char enable_check_ptz_end_autotracking[10]; char ptz_start_autotracking_link_to_post_event_name[256]; char ptz_end_autotracking_link_to_post_event_name[256]; } HeartbeatInfo; typedef struct { char sPlateNumber[100]; time_t t_FirstGetTime; time_t t_UpdateTime; time_t t_LoopTime; int iGetCounter; int iIfUse; float box_x; float box_y; float box_w; float box_h; float last_box_x; float last_box_y; float last_box_w; float last_box_h; float last_box_center_x; float last_box_center_y; int iPlateZoomOutCounter; int iPlateZoomInCounter; int iTrackingID; //int iTrackingIDidx; int existing_dash; char car_type_name[20]; int check_if_counted[MAX_DETECTION_ZONE]; } PlateRecoder; typedef struct { //char name[30]; //int class_id; time_t t_FirstGetTime; time_t t_UpdateTime; int iGetCounter; int iIfUse; float box_x; float box_y; float box_w; float box_h; //float left_x; //float top_y; int iTrackingID; //int iTrackingIDidx; int check_if_counted[MAX_DETECTION_ZONE]; } ObjectRecoder; typedef struct { char name[30]; char sPlateNumber[100]; time_t t_FirstGetTime_total; time_t t_FirstGetTime; time_t t_UpdateTime; int iIfUse; float box_x; float box_y; float box_w; float box_h; int check_if_post[MAX_DETECTION_ZONE]; int check_if_cloud; int check_if_cloud_v2; int check_if_cloud_record_v2; int check_if_email; int check_if_ftp; int check_if_getalarmmotion; int object_id; int zone_idx; //int the_same_id; float count_trigger; //detection_pos ori_Data; //int iIsInvisible; //time_t t_InvisibleStartTime; //time_t t_InvisibleUpdateTime; } PostRecoder; typedef struct { int locked; int used; float box_x; float box_y; float box_w; float box_h; } MotionAreaInfo; typedef struct { int color_mode;//image.dn.switch //0 auto mode; 1 day mode; 2 night mode; 3 schedule mode int light_sensor_value;//image.dn.luminosity int day_to_night_threshold;//image.dn.luminosity.dtn int night_to_day_threshold;//image.dn.luminosity.ntd int dwell_sec_in_auto_mode;//image.dn.switch.dwell int day_to_night_time_of_schedule;//image.dn.schedule.day int night_to_day_time_of_schedule;//image.dn.schedule.night int hour_day_to_night; int min_day_to_night; int total_min_day_to_night; int hour_night_to_day; int min_night_to_day; int total_min_night_to_day; int current_day_or_night_mode;//result // day : 1 ; night : 2 int last_day_or_night_mode; int check_if_switch_happened[MAX_SIZE_SWITCH_HAPPENED]; //int ircut; //int irledfar; //int irlednear; int iAutoModeSwitchCount; } ImageDn; typedef struct { int id; int flag_protected; int x; int y; int w; int h; int color; int size; int show_sec; int bg_tran; //0~255 int outline_sw; //0:off 1:on char text[256]; } OSDInfo; typedef struct { int flag_protected; float speed; char speed_unit[256]; float res_width; float res_height; float x; float y; } SpeedInfo; extern char g_aWebPythonBuffer2D[WEBPYTHONBUFFER_LENSIZE][WEBPYTHONBUFFER_ROWSIZE]; extern unsigned int g_uiWebPythonCurrentBufferIndex; extern unsigned int g_uiWebPythonLastBufferIndex; extern unsigned int g_cWebPythonBufferSignal; extern unsigned int g_cWebPythonDeleteStatus; extern char g_cWebPythonName[50]; extern unsigned int g_cWebPythonStatus; extern unsigned int python_check_webstatus; // 給開關 plugin 時用的 extern bool isGYNetReady; //===================== //sophia add 2020/09/24 #if defined GY_OS_AMBA || defined GY_OS_NOVA #include "alm_queue.h" typedef struct { SOCKET sock; //stALMNode *head; //stALMNode *tail; //int iIsWebsockethybi00; } SocketInfo_ALM; //extern SocketInfo_ALM socketRecord_ALM[MAX_CLIENT_SOCKET]; extern int bHttpServerMainStart; extern int bPreloadHttpServerMainStart; #endif //GY_OS_AMBA //===================== extern int g_check_ping_OK; extern int g_sdk_version; extern int CheckIsExistingSpeed; extern SocketInfo socketRecords[MAX_CLIENT_SOCKET]; extern ChannelInfo viewChannelData[MAX_AI_ENGINE_VIEW]; extern DetectionZoneInfo viewDetectionZone[MAX_AI_ENGINE_VIEW][MAX_DETECTION_ZONE]; extern SystemSettingInfo SystemSetting; extern PostEventInfo postEventList[MAX_POST_EVENTS]; #ifdef GY_OS_V_SERIES #else extern EventCounterInfo eventCounterList[MAX_EVENT_COUNTERS]; extern ReportCounterInfo reportCounterList[MAX_REPORT_COUNTERS]; extern SNMPManagementInfo SNMPManagementList[MAX_SNMP_MANAGEMENT]; #endif extern AccountDataInfo accountData[MAX_ACCOUNT_DATA_NUM]; //20201027 sophia add extern IPCAMServiceInfo IPCAMService; extern SnapHDInfo snapHDList[MAX_SNAP_HD_LIST]; extern WeightFileInfo weightfileList[MAX_WEIGHT_FILE_LIST]; extern char WeightFileModeName[35]; extern EmailInfo emailData; extern HeartbeatInfo heartbeatData; #ifdef GY_OS_AMBA extern TofInfo tofData; #endif #if defined GY_OS_AMBA || defined GY_OS_NOVA extern PlateRecoder g_PlateRecorderList[MAX_PLATE_RECORDER]; #endif extern ObjectRecoder g_ObjectRecorderList[MAX_OBJECT_RECORDER]; extern PostRecoder g_PostRecorderList[MAX_POST_RECODER_SIZE]; extern PostRecoder g_longterm_PostRecorderList[MAX_POST_RECODER_SIZE]; //extern MotionAreaInfo g_Motion_Area_Data[MAX_MOTION_AREA]; #if defined GY_OS_AMBA || defined GY_OS_NOVA extern ImageDn imageDnData; #endif #ifdef GY_OS_AMBA extern OSDInfo OSDData[MAX_SIZE_OSD_ARRAY]; extern SpeedInfo SpeedData[MAX_SIZE_SP_ARRAY]; #endif extern int g_PlateFilterTimes; //Times extern int g_PlateFilterTime; //Second extern int g_PlateRecorderFreeTime; //Second #ifdef GY_OS_AMBA extern int g_face_frame_uid; #endif extern int g_IsRadarDevice; extern char radar_json_data[4096]; extern int unlockingKeyInnoFR_success; extern int unlockingKeyInnoFR; extern int g_IsSDK_3_0; extern int g_IsToFDevice; extern int g_IsCustomWeight; extern int g_IsHelm_without_car; extern float g_min_tof_range; extern int g_min_tof_range_x; extern int g_min_tof_range_y; extern float g_max_tof_range; extern int g_max_tof_range_x; extern int g_max_tof_range_y; extern int g_bIsSendTofPCD; extern int g_bIsWritingPCD; extern float g_ground_tof_range; extern float g_min_tof_degree; extern float g_min_tof_height; extern float g_min_tof_distance; extern float g_max_tof_degree; extern float g_max_tof_height; extern float g_max_tof_distance; extern float g_ground_tof_degree; extern float g_ground_tof_height; extern float g_ground_tof_distance; extern double g_tof_device_height; extern int g_ori_yuv_width; extern int g_ori_yuv_height; extern int g_ori_half_yuv_width; extern int g_ori_half_yuv_height; //extern int sockNum[4]; extern zlog_category_t *zc; extern double begin_clock; extern float confidence_limit; extern int AI_fps; #ifdef REBOOT_BY_CPU_GPU_USAGE extern int CPU_usage_int; extern int GPU_usage_int; #endif extern char CPU_usage[256]; extern char GPU_usage[256]; extern char Buffer_ver[BUFSIZE]; //extern bool enable_loop_getalarmmotion; //extern int times_of_enable_loop_getalarmmotion; extern int g_write_config_file_dirty_flag; extern int g_match_mac; extern char g_mac_address[256]; extern int enable_only_show_metadata1; extern char websocket_alarm[CONTENT_BUFSIZE]; extern int g_i_get_cpu_loading; //extern CURLM* g_multi_handle; extern CURL* g_http_handle; //extern int g_handle_count; extern int g_alter_something; extern int g_count_alter; extern long g_image_HD_pasue_time; extern int g_video_start_HD; extern int g_current_max_num_image_buff; extern int g_osdTime_sw; extern long g_osdSysTimeStamp; extern int g_osdSysTimeZoneInfo; extern int check_if_correct_post; extern int check_if_run_post; extern long g_post_SysTimeStamp; int run_http_server(char *option, void* _zc, CNNType cnn_type/*, int layer_count, network nets[], char **names[], image **alphabet, float nms[]*/, float thresh, float hier_thresh, int dont_show, int ext_output, int save_labels, char *mac_address, char *ip_address, int http_port, LicenseType licenseType, AdvanceLicenseType advLicenseType, AuthFailStatusCode afsCode, size_t layerFeatureType[], char* strLicenseType); //int caculate_ftp_of_each_sockets(SOCKET sock, int *sock_record_idx); #ifdef GY_OS_NOVA size_t SetHttpRequest_sock(QueueInfo *q_info, char* sendBuffer, char* method); #endif size_t SetHttpRequest(QueueInfo* q_info, char* sendBuffer, char* method); size_t SetHttpResponse(char* sendBuffer, int httpCode, char* contentType, size_t contentLen, char* content); void Create_ptz_socket(); void SetHttpRequest_ptz(char* cgi_url, char* sOutput_data, char* username, char* password); //void SetHttpRequest_ptz(); //size_t SetHttpRequest_ptz(QueueInfo *q_info, char* sendBuffer, char* method); size_t SetHttpResponse_server(char* sendBuffer, int httpCode, char* contentType, size_t contentLen, char* content); void replace_one_line_in_a_file(char *path, int line, char *newline); #if 0 void GetAidaPort(); #endif void update_enable_only_show_metadata1(int temp_enable_only_show_metadata1); size_t get_service_from_ipcam(char * response_from_ipcam); size_t get_control_io_from_ipcam(char * response_from_ipcam); void copy_ipcam_smtp_service_to_gynet(); void copy_control_io_to_gynet(); void sync_other_camera_lpr_db(); void *net_curl_https_post_push_info(void *ptr); void *net_curl_https_post_push_info_attached_image(void *ptr); void net_curl_ftp_post_push_info_attached_image(char* image_buff, int image_buff_size); void net_curl_ftp_build_folder(); #ifdef GY_OS_AMBA size_t SetSNMPRequest(QueueInfo *q_info); #endif void *net_curl_https_get_other_lpr_db(void *ptr); extern char id[512]; extern char pass[512]; extern char strUnlockingKey[MAX_MSG_LEN]; extern char strLicenseStatus[MAX_MSG_LEN]; extern char g_device_name[512]; extern int g_IsPTZDevice; extern int g_check_if_no_brand; extern int g_check_if_OK_getfeatures; extern int g_check_if_OK_thermal; void memset_snapshot_addr(); void build_one_smart_event(char * myname, char * myvalue); void build_one_gpio(char * myname, char * myvalue); void* auto_build_smart_events(void * ptr); void* auto_build_smart_events_di_vi(void * ptr); void build_one_set_for_quality_basic(char * myname, char * myvalue); #ifdef GY_OS_AMBA void build_one_set_for_tof_basic(char * myname, char * myvalue); #endif void* auto_set_quality_basic(void * ptr); #ifdef GY_OS_AMBA void* auto_set_tof_basic(void * ptr); #endif size_t build_resolution_changed(char * response_from_ipcam); extern pthread_t resolution_changed_thread; void* auto_resolution_changed(void * ptr); #ifdef GY_OS_AMBA void* check_current_resolution(void * ptr); void set_run_check_current_resolution(int set_value); int get_run_check_current_resolution(); #endif void write_to_stream_width_and_stream_height(int stream_width, int stream_height); int get_g_check_if_different_width_or_height(); void build_reboot(char * myname, char * myvalue); void ipcam_getfeatures(); void* auto_reboot(void * ptr); void build_system(char * myname, char * myvalue); void* auto_system(void * ptr); void sync_image_rotation_thread(); int is_connection_authorized(char* recvBuffer, SOCKET *client_socket, int isTcpTunnel); void import_lpr_list_file(char *headerBuffer, char *multiPartBoundary, int bIsMultipart, char *contentBuffer, long nTotalContentLen); void *import_lpr_list_file_thread(void *ptr); #ifdef GY_OS_AMBA void *import_face_list_file_thread(void *ptr); #endif void get_snap_with_profile_id(int i_profileid, int enable_check_profile_id); #ifdef GY_OS_NOVA void *pre_connection_handler(void *socket_temp); #endif void *thread_getimage(void *ptr); void *thread_getimage_hd(void *ptr); #ifdef GY_OS_NOVA void *thread_get_nova_driver(void *ptr); #endif char *removeHTTPHeader(char *buffer, int *bodySize); void getPicture(int socketfd, int bSize, int current_profile_id, int enable_check_profile_id); int get_g_framesize_width(); int get_g_framesize_height(); void web_process(SOCKET* client_socket, char* recvBuffer, int recv_buff_size, char* contentBuffer/*, int layer_count, network nets[], char **names[], image **alphabet, float nms[]*/, float thresh, float hier_thresh, int dont_show, int ext_output, int save_labels, int http_port, LicenseType licenseType, AdvanceLicenseType advLicenseType, AuthFailStatusCode afsCode, size_t layerFeatureType[], char* strLicenseType, int* isGetalarmMotion, int sock_info_idx); #ifdef GY_OS_AMBA int get_g_check_if_change_preset(); void set_g_check_if_change_preset_to_zero(); void *import_radarbg_thread(void *ptr); void import_radarbg(char *headerBuffer, char *multiPartBoundary, int bIsMultipart, char *contentBuffer, long nTotalContentLen); #endif void update_system_time(); int get_g_control_alarm_gpio(); void set_g_control_alarm_gpio_to_zero(); void set_g_control_alarm_gpio_to_one(); #ifdef GY_OS_NOVA void start_nova_driver(); void get_nova_driver(int socketfd); #endif #ifdef __cplusplus } #endif #endif #endif