📄 pthread_setup.c
字号:
strcpy(mft[VALUE_WT_FLAG].str, temp); sprintf(temp, "%2d", pso->param->enc_attr.wm.strength&0x07); strcpy(mft[ii+VALUE_WT_STR].str, temp); sprintf(temp, "%2d", pso->param->enc_attr.wm.key&0x0f); strcpy(mft[ii+VALUE_WT_KEY].str, temp); location_cur = &setup_menu_active[pso->cur_id]; location_cur->start = pso->cur_loc; pso->prev_id = pso->cur_id; pso->cur_id = SETUP_WATERMARK_SETUP; pso->create_menu = 1; } else if (pso->cur_loc == VALUE_MD_SET) { mft = setup_menu_font[SETUP_MOTION_SETUP]; for (ii = 0; ii < MAX_CH_NUM; ii++) { sprintf(temp, "%s", (pso->param->enc_ch[ii].motion.flag&0x01)? " On": "Off"); strcpy(mft[ii+VALUE_MDF_CH1].str, temp); sprintf(temp, "%2d", pso->param->enc_ch[ii].motion.sensitivity & 0x0f); strcpy(mft[ii+VALUE_MDS_CH1].str, temp); } location_cur = &setup_menu_active[pso->cur_id]; location_cur->start = pso->cur_loc; pso->prev_id = pso->cur_id; pso->cur_id = SETUP_MOTION_SETUP; pso->create_menu = 1; } else if (pso->cur_loc == VALUE_SIOS_SET) { mft = setup_menu_font[SETUP_SENSOR_SETUP]; for (ii = 0; ii < MAX_CH_NUM; ii++) { sprintf(temp, "%s", (pso->param->enc_ch[ii].sensor.flag_in&0x01)? " On": "Off"); strcpy(mft[ii+4].str, temp); sprintf(temp, "%s", (pso->param->enc_ch[ii].sensor.flag_in_noc&0x01)? "N.C": "N.O"); strcpy(mft[ii+9].str, temp); sprintf(temp, "%s", (pso->param->enc_ch[ii].sensor.flag_out&0x01)? " On": "Off"); strcpy(mft[ii+15].str, temp); sprintf(temp, "%s", (pso->param->enc_ch[ii].sensor.flag_out_noc&0x01)? "N.C": "N.O"); strcpy(mft[ii+20].str, temp); sprintf(temp, "%02d", pso->param->enc_ch[ii].sensor.flag_out_duration&0x3f); strcpy(mft[ii+25].str, temp); } location_cur = &setup_menu_active[pso->cur_id]; location_cur->start = pso->cur_loc; pso->prev_id = pso->cur_id; pso->cur_id = SETUP_SENSOR_SETUP; pso->create_menu = 1; } else if (pso->cur_loc >= VALUE_SF_CH1 && pso->cur_loc <= VALUE_SF_CH4) { pso->cur_ch = pso->cur_loc - VALUE_SF_CH1; if (pso->param->enc_ch[pso->cur_ch].schedule.flag == 0) { pso->param->enc_ch[pso->cur_ch].schedule.flag = 1; strcpy(mft[pso->cur_loc].str, " On"); } else { pso->param->enc_ch[pso->cur_ch].schedule.flag = 0; strcpy(mft[pso->cur_loc].str, "Off"); } pso->osd_loc = pso->cur_loc; mft[pso->osd_loc].color = YELLOW; mft[pso->osd_loc].attribute = BLINK; setup_update_osd(pso); } else if (pso->cur_loc >= VALUE_SS_CH1 && pso->cur_loc <= VALUE_SS_CH4) { pso->cur_ch = pso->cur_loc - VALUE_SS_CH1; // channel initial mft = setup_menu_font[SETUP_SCHEDULE_SETUP]; // pentamicro 2006.01.11 sprintf(temp, "%1d", 1 + pso->cur_ch); strcpy(mft[1].str, temp); for (ii = 31; ii < 58; ii += 4) { sprintf(temp, "%02d", pso->param->enc_ch[pso->cur_ch].schedule.from_time[(ii - 31)/4].tm_hour); strcpy(mft[ii].str, temp); sprintf(temp, "%02d", pso->param->enc_ch[pso->cur_ch].schedule.from_time[(ii - 31)/4].tm_min); strcpy(mft[ii + 1].str, temp); sprintf(temp, "%02d", pso->param->enc_ch[pso->cur_ch].schedule.to_time[(ii - 31)/4].tm_hour); strcpy(mft[ii + 2].str, temp); sprintf(temp, "%02d", pso->param->enc_ch[pso->cur_ch].schedule.to_time[(ii - 31)/4].tm_min); strcpy(mft[ii + 3].str, temp); } location_cur = &setup_menu_active[pso->cur_id]; location_cur->start = pso->cur_loc; pso->prev_id = pso->cur_id; pso->cur_id = SETUP_SCHEDULE_SETUP; pso->create_menu = 1; } break; case SUB_MINUS : /* save encoder parameter to nvram */ save_enc_param(pso->param); /* return to start position */ location_cur = &setup_menu_active[pso->cur_id]; location_cur->start = 3; pso->cur_id = SETUP_MAIN; pso->next_id = SETUP_ENCODER_PARAM; pso->create_menu = 1; break; default : break; } return SUCCESS;}RETURN setup_system_param(SETUP_OBJECT *pso){ UNS16 ii, jj; UNS16 value_u16; S8 temp[8]; UNS8 r_data[MAX_CH_NUM]; time_t get_time; PTHREAD_BUF signal; MENU_FONT_t *mft; MENU_ACTIVE_ITEM_t *location_cur; pso->param = gp_setup_param; switch (pso->sig_value) { case UP : if (pso->cur_loc >= 2) { setup_select_menu(pso, -1); } break; case DOWN : if (pso->cur_loc <= 6) { setup_select_menu(pso, 1); } break; case SEL : if (pso->cur_loc == 1) { pso->next_id = SETUP_SP_TIME; /* get current time */ time(&get_time); memcpy(&pso->cur_time, localtime(&get_time), sizeof(struct tm)); mft = setup_menu_font[pso->next_id]; sprintf(temp, "%04d", pso->cur_time.tm_year + 1900); strcpy(mft[1].str, temp); sprintf(temp, "%02d", pso->cur_time.tm_mon + 1); strcpy(mft[3].str, temp); sprintf(temp, "%02d", pso->cur_time.tm_mday); strcpy(mft[5].str, temp); sprintf(temp, "%02d", pso->cur_time.tm_hour); strcpy(mft[6].str, temp); sprintf(temp, "%02d", pso->cur_time.tm_min); strcpy(mft[8].str, temp); sprintf(temp, "%02d", pso->cur_time.tm_sec); strcpy(mft[10].str, temp); } else if (pso->cur_loc == 2) { pso->next_id = SETUP_SP_NETWORK; } else if (pso->cur_loc == 3) { pso->next_id = SETUP_SP_CAMERA; mft = setup_menu_font[pso->next_id]; /* get camera info */ for (ii = 0; ii < MAX_CH_NUM; ii++) { sprintf(temp, "%4d", pso->param->sys.camera[ii].brightness); strcpy(mft[ii + 3].str, temp); sprintf(temp, "%4d", pso->param->sys.camera[ii].contrast); strcpy(mft[ii + 8].str, temp); sprintf(temp, "%4d", pso->param->sys.camera[ii].color); strcpy(mft[ii + 13].str, temp); } } else if (pso->cur_loc == 4) { pso->next_id = SETUP_SP_PASSWORD; } else if (pso->cur_loc == 5) { pso->next_id = SETUP_SP_HDD_MANAGEMENT; /* password configuration : default 0000 */ mft = setup_menu_font[pso->next_id]; sprintf(temp, "%02d MIN", g_rec_time_list[pso->param->sys.disk.slice_time%9]); strcpy(mft[3].str, temp); strcpy(mft[5].str, pso->param->sys.disk.over_wt_flag==TRUE ? "YES": "NO "); sprintf(mft[8].str, "HDD%c", 'A' + pso->disk_format.select_disk); }else if (pso->cur_loc == 6) { pso->next_id = SETUP_SP_PTZ; mft = setup_menu_font[pso->next_id]; sprintf(temp, "CH%2d", pso->param->sys.ptz.cam_ch+1); strcpy(mft[2].str, temp); sprintf(temp, "%s", ptz_vendor_list[pso->param->sys.ptz.cam_vendor]); strcpy(mft[4].str, temp); sprintf(temp, "%02d", pso->param->sys.ptz.cam_speed+1); strcpy(mft[6].str, temp); } else if (pso->cur_loc == 7) { pso->next_id = SETUP_SP_HDD_STATUS; g_refresh_cmd = TRUE; } location_cur = &setup_menu_active[pso->cur_id]; location_cur->start = pso->cur_loc; pso->cur_id = pso->next_id; pso->prev_id = pso->cur_id; pso->create_menu = 1; break; case SUB_MINUS : /* save system parameter to nvram */ save_sys_param(pso->param); /* return to start position */ location_cur = &setup_menu_active[pso->cur_id]; location_cur->start = 1; pso->cur_id = SETUP_MAIN; pso->next_id = SETUP_SYSTEM_PARAM; pso->create_menu = 1; break; default : break; } return SUCCESS;}RETURN setup_motion_area(SETUP_OBJECT *pso){ S16 up_down; PTHREAD_BUF signal; switch (pso->sig_value) { case UP : up_down = pso->cur_loc - MB_X_NUM; pso->cur_loc = up_down >= 0 ? up_down: pso->cur_loc; setup_select_motion(pso); break; case DOWN : up_down = pso->cur_loc + MB_X_NUM; pso->cur_loc = (up_down <= (MB_X_NUM * MB_Y_NUM - 1)) ? up_down: pso->cur_loc; setup_select_motion(pso); break; case LEFT : up_down = pso->cur_loc - 1; pso->cur_loc = up_down >= 0 ? up_down: pso->cur_loc; setup_select_motion(pso); break; case RIGHT : up_down = pso->cur_loc + 1; pso->cur_loc = (up_down <= (MB_X_NUM * MB_Y_NUM - 1)) ? up_down: pso->cur_loc; setup_select_motion(pso); break; case SEL : setup_update_motion(pso); break; case SUB_MINUS : pso->cur_id = SETUP_MOTION_SETUP; pso->create_menu = 1; /* change to previous monitoring mode */ signal.start_id = PTHREAD_SETUP; signal.m_value = SIGNAL_2; if (pthread_send_signal(&signal, PTHREAD_LIVE) == FALSE) { m_ERROR("pthread_setup.c:error: In function 'pthread_send_signal'\n"); } tw2834_motion_block_init(pso->cur_ch, pso->param->gp.video_form, FALSE); break; default : break; } return SUCCESS;}RETURN setup_schedule_setup(SETUP_OBJECT *pso){ UNS16 ii; UNS16 start, end; S8 temp[8]; MENU_FONT_t *mft; MENU_ACTIVE_ITEM_t *location_cur; mft = setup_menu_font[pso->cur_id]; switch (pso->sig_value) { case UP : if (pso->cur_loc >= 35 && pso->cur_loc <= 38) { setup_select_menu(pso, -4); } else if (pso->cur_loc >= 39 && pso->cur_loc <= 42) { setup_select_menu(pso, -4); } else if (pso->cur_loc >= 43 && pso->cur_loc <= 46) { setup_select_menu(pso, -4); } else if (pso->cur_loc >= 47 && pso->cur_loc <= 50) { setup_select_menu(pso, -4); } else if (pso->cur_loc >= 51 && pso->cur_loc <= 54) { setup_select_menu(pso, -4); } else if (pso->cur_loc >= 55 && pso->cur_loc <= 58) { setup_select_menu(pso, -4); } break; case DOWN : if (pso->cur_loc >= 31 && pso->cur_loc <= 34) { setup_select_menu(pso, 4); } else if (pso->cur_loc >= 35 && pso->cur_loc <= 38) { setup_select_menu(pso, 4); } else if (pso->cur_loc >= 39 && pso->cur_loc <= 42) { setup_select_menu(pso, 4); } else if (pso->cur_loc >= 43 && pso->cur_loc <= 46) { setup_select_menu(pso, 4); } else if (pso->cur_loc >= 47 && pso->cur_loc <= 50) { setup_select_menu(pso, 4); } else if (pso->cur_loc >= 51 && pso->cur_loc <= 54) { setup_select_menu(pso, 4); } break; case LEFT : if (pso->cur_loc >= 32 && pso->cur_loc <= 34) { setup_select_menu(pso, -1); } else if (pso->cur_loc >= 36 && pso->cur_loc <= 38) { setup_select_menu(pso, -1); } else if (pso->cur_loc >= 40 && pso->cur_loc <= 42) { setup_select_menu(pso, -1); } else if (pso->cur_loc >= 44 && pso->cur_loc <= 46) { setup_select_menu(pso, -1); } else if (pso->cur_loc >= 48 && pso->cur_loc <= 50) { setup_select_menu(pso, -1); } else if (pso->cur_loc >= 52 && pso->cur_loc <= 54) { setup_select_menu(pso, -1); } else if (pso->cur_loc >= 56 && pso->cur_loc <= 58) { setup_select_menu(pso, -1); } break; case RIGHT : if (pso->cur_loc >= 31 && pso->cur_loc <= 33) { setup_select_menu(pso, 1); } else if (pso->cur_loc >= 35 && pso->cur_loc <= 37) { setup_select_menu(pso, 1); } else if (pso->cur_loc >= 39 && pso->cur_loc <= 41) { setup_select_menu(pso, 1); } else if (pso->cur_loc >= 43 && pso->cur_loc <= 45) { setup_select_menu(pso, 1); } else if (pso->cur_loc >= 47 && pso->cur_loc <= 49) { setup_select_menu(pso, 1); } else if (pso->cur_loc >= 51 && pso->cur_loc <= 53) { setup_select_menu(pso, 1); } else if (pso->cur_loc >= 55 && pso->cur_loc <= 57) { setup_select_menu(pso, 1); } break; case NUM_PLUS : if (pso->cur_loc >= 31 && ((pso->cur_loc - 31)%4 == 0)) { if (pso->param->enc_ch[pso->cur_ch].schedule.from_time[(pso->cur_loc - 31)/4].tm_hour == 24) { pso->param->enc_ch[pso->cur_ch].schedule.from_time[(pso->cur_loc - 31)/4].tm_hour = 0; } else { pso->param->enc_ch[pso->cur_ch].schedule.from_time[(pso->cur_loc - 31)/4].tm_hour++; } sprintf(temp, "%02d", pso->param->enc_ch[pso->cur_ch].schedule.from_time[(pso->cur_loc - 31)/4].tm_hour); strcpy(mft[pso->cur_loc].str, temp); pso->osd_loc = pso->cur_loc; mft[pso->osd_loc].color = YELLOW; mft[pso->osd_loc].attribute = BLINK; setup_update_osd(pso); } else if (pso->cur_loc >= 31 && ((pso->cur_loc - 31)%4 == 1)) { if (pso->param->enc_ch[pso->cur_ch].schedule.from_time[(pso->cur_loc - 31)/4].tm_min == 59) { pso->param->enc_ch[pso->cur_ch].schedule.from_time[(pso->cur_loc - 31)/4].tm_min = 0; } else { pso->param->enc_ch[pso->cur_ch].schedule.from_time[(pso->cur_loc - 31)/4].tm_min++; } sprintf(temp, "%02d", pso->param->enc_ch[pso->cur_ch].schedule.from_time[(pso->cur_loc - 31)/4].tm_min); strcpy(mft[pso->cur_loc].str, temp); pso->osd_loc = pso->cur_loc; mft[pso->osd_loc].color = YELLOW; mft[pso->osd_loc].attribute = BLINK; setup_update_osd(pso); } else if (pso->cur_loc >= 31 && ((pso->cur_loc - 31)%4 == 2)) { if (pso->param->enc_ch[pso->cur_ch].schedule.to_time[(pso->cur_loc - 31)/4].tm_hour == 24) { pso->param->enc_ch[pso->cur_ch].schedule.to_time[(pso->cur_loc - 31)/4].tm_hour = 0; } else { pso->param->enc_ch[pso->cur_ch].schedule.to_time[(pso->cur_loc - 31)/4].tm_hour++; } sprintf(temp, "%02d", pso->param->enc_ch[pso->cur_ch].schedule.to_time[(pso->cur_loc - 31)/4].tm_hour); strcpy(mft[pso->cur_loc].str, temp); pso->osd_loc = pso->cur_loc; mft[pso->osd_loc].color = YELLOW; mft[pso->osd_loc].attribute = BLINK; setup_update_osd(pso); } else if (pso->cur_loc >= 31 && ((pso->cur_loc - 31)%4 == 3)) { if (pso->param->enc_ch[pso->cur_ch].schedule.to_time[(pso->cur_loc - 31)/4].tm_min == 59) { pso->param->enc_ch[pso->cur_ch].schedule.to_time[(pso->cur_loc - 31)/4].tm_min = 0; } else { pso->param->enc_ch[pso->cur_ch].schedule.to_time[(pso->cur_loc - 31)/4].tm_min++; } sprintf(temp, "%02d", pso->param->enc_ch[pso->cur_ch].schedule.to_time[(pso->cur_loc - 31)/4].tm_min); strcpy(mft[pso->cur_loc].str, temp); pso->osd_loc = pso->cur_loc; mft[pso->osd_loc].color = YELLOW; mft[pso->osd_loc].attribute = BLINK; setup_update_osd(pso); } break; case NUM_MINUS : if (pso->cur_loc >= 31 && ((pso->cur_loc - 31)%4 == 0)) { if (pso->param->enc_ch[pso->cur_ch].schedule.from_time[(pso->cur_loc - 31)/4].tm_hour == 0) { pso->param->enc_ch[pso->cur_ch].schedule.from_time[(pso->cur_loc - 31)/4].tm_hour = 24; } else { pso->param->enc_ch[pso->cur_ch].schedule.from_time[(pso->cur_loc - 31)/4].tm_hour--; } sprintf(temp, "%02d", pso->param->enc_ch[pso->cur_ch].schedule.from_time[(pso->cur_loc - 31)/4].tm_hour); strcpy(mft[pso->cur_loc].str, temp); pso->osd_loc = pso->cur_loc; mft[pso->osd_loc].color = YELLOW; mft[pso->osd_loc].attribute = BLINK; setup_update_osd(pso); } else if (pso->cur_loc >= 31 && ((pso->cur_loc - 31)%4 == 1)) {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -