📄 pthread_setup.c
字号:
if (pso->param->enc_ch[pso->cur_ch].schedule.from_time[(pso->cur_loc - 31)/4].tm_min == 0) { pso->param->enc_ch[pso->cur_ch].schedule.from_time[(pso->cur_loc - 31)/4].tm_min = 59; } 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 == 0) { pso->param->enc_ch[pso->cur_ch].schedule.to_time[(pso->cur_loc - 31)/4].tm_hour = 24; } 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 == 0) { pso->param->enc_ch[pso->cur_ch].schedule.to_time[(pso->cur_loc - 31)/4].tm_min = 59; } 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 SUB_MINUS : /* return to start position */ location_cur = &setup_menu_active[pso->cur_id]; location_cur->start = 31; pso->cur_id = SETUP_ENCODER_PARAM; pso->next_id = SETUP_SCHEDULE_SETUP; pso->create_menu = 1; break; default : break; } return SUCCESS;}RETURN setup_system_time(SETUP_OBJECT *pso){ S32 ii, jj; MENU_FONT_t *mft; MENU_ACTIVE_ITEM_t *location_cur; static S32 num_start, num_end; BOOL valid_data = TRUE; S32 day; /* numeric table list for key input */ UNS16 key_table_list[] = { NUMBER0,NUMBER1,NUMBER2,NUMBER3,NUMBER4,NUMBER5,NUMBER6,NUMBER7,NUMBER8,NUMBER9}; /* month list for date */ UNS16 month_list[] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; struct timeval tv = { 0L, 0L }; mft = setup_menu_font[SETUP_SP_TIME]; switch (pso->sig_value) { case LEFT : if (pso->cur_loc >= 3) { setup_select_menu(pso, -1); } num_start = 0; break; case RIGHT : if (pso->cur_loc <= 10) { setup_select_menu(pso, 1); } num_start = 0; break; case NUMBER0: case NUMBER1: case NUMBER2: case NUMBER3: case NUMBER4: case NUMBER5: case NUMBER6: case NUMBER7: case NUMBER8: case NUMBER9: for(ii=0; ii < 10; ii++) if(key_table_list[ii] == pso->sig_value) break; num_end = strlen(mft[pso->cur_loc].str); for(jj=0; jj < num_end;jj++) if(!isdigit(mft[pso->cur_loc].str[jj])) return SUCCESS; mft[pso->cur_loc].str[num_start++] = '0' + ii; if(num_start >= num_end) { /* verify data and time */ jj = atoi(mft[pso->cur_loc].str); switch(pso->cur_loc) { case 1: /* year */ if ( jj < 2000 ) { strcpy(mft[pso->cur_loc].str, "2000"); jj = 2000; valid_data = FALSE; } pso->cur_time.tm_year = jj - 1900; break; case 3: /* month */ if( jj < 1 || jj > 12) { strcpy(mft[pso->cur_loc].str, "01"); jj = 1; valid_data = FALSE; } pso->cur_time.tm_mon = jj - 1; break; case 5: /* day */ /* when the february ( leap month process)*/ day = month_list[pso->cur_time.tm_mon]; if(pso->cur_time.tm_mon == 1) day = (pso->cur_time.tm_year + 1900) % 4 ? 28: 29; if( jj < 1 || jj > day) { strcpy(mft[pso->cur_loc].str, "01"); jj = 1; valid_data = FALSE; } pso->cur_time.tm_mday = jj; break; case 6: /* hour */ if( jj < 0 || jj > 23) { strcpy(mft[pso->cur_loc].str, "00"); jj = 0; valid_data = FALSE; } pso->cur_time.tm_hour = jj; break; case 8: /* min */ if( jj < 0 || jj > 59) { strcpy(mft[pso->cur_loc].str, "00"); jj = 0; valid_data = FALSE; } pso->cur_time.tm_min = jj; break; case 10: /* sec */ if( jj < 0 || jj > 59) { strcpy(mft[pso->cur_loc].str, "00"); jj = 0; valid_data = FALSE; } pso->cur_time.tm_sec = jj; break; } num_start = 0; if(valid_data) { pso->osd_loc = pso->cur_loc; mft[pso->osd_loc].color = WHITE; mft[pso->osd_loc].attribute = NORMAL; setup_update_osd(pso); if (pso->cur_loc <= 10) { setup_select_menu(pso, 1); } return SUCCESS; } } pso->osd_loc = pso->cur_loc; mft[pso->osd_loc].color = YELLOW; mft[pso->osd_loc].attribute = BLINK; setup_update_osd(pso); break; case SEL : if (pso->cur_loc == 11) { /* When to the encoding, it will not be able to change time. */ if(gp_state_thread->state_enc.state == BUSY) { m_MSG("pthread_setup.c: When to the encoding, it will not be able to change time'\n"); break; } set_cur_time(&pso->cur_time); tv.tv_sec = mktime(&pso->cur_time); settimeofday(&tv, NULL); } break; case SUB_MINUS : /* return to start position */ location_cur = &setup_menu_active[pso->cur_id]; location_cur->start = 1; pso->cur_id = SETUP_SYSTEM_PARAM; pso->create_menu = 1; break; default : break; } return SUCCESS;}RETURN setup_system_network(SETUP_OBJECT *pso){ UNS16 ii, jj; S8 temp_net[80]; S8 ip[20]; S8 netmask[20]; S8 gw[20]; MENU_FONT_t *mft; MENU_ACTIVE_ITEM_t *location_cur; /* numeric table list for key input */ UNS16 key_table_list[] = { NUMBER0,NUMBER1,NUMBER2,NUMBER3,NUMBER4,NUMBER5,NUMBER6,NUMBER7,NUMBER8,NUMBER9}; static S32 num_start, num_end; mft = setup_menu_font[SETUP_SP_NETWORK]; switch (pso->sig_value) { case UP : if (pso->cur_loc >= 10 && pso->cur_loc <= 16) { setup_select_menu(pso, -8); } else if (pso->cur_loc >= 18 && pso->cur_loc <= 24) { setup_select_menu(pso, -8); } num_start = 0; break; case DOWN : if (pso->cur_loc >= 2 && pso->cur_loc <= 8) { setup_select_menu(pso, 8); } else if (pso->cur_loc >= 10 && pso->cur_loc <= 16) { setup_select_menu(pso, 8); } num_start = 0; break; case LEFT : if (pso->cur_loc >= 4 && pso->cur_loc <= 8) { setup_select_menu(pso, -2); } else if (pso->cur_loc >= 12 && pso->cur_loc <= 16) { setup_select_menu(pso, -2); } else if (pso->cur_loc >= 20 && pso->cur_loc <= 24) { setup_select_menu(pso, -2); } else if (pso->cur_loc == 25) { setup_select_menu(pso, -1); } num_start = 0; break; case RIGHT : if (pso->cur_loc >= 2 && pso->cur_loc <= 6) { setup_select_menu(pso, 2); } else if (pso->cur_loc >= 10 && pso->cur_loc <= 14) { setup_select_menu(pso, 2); } else if (pso->cur_loc >= 18 && pso->cur_loc <= 22) { setup_select_menu(pso, 2); } else if (pso->cur_loc == 24) { setup_select_menu(pso, 1); } num_start = 0; break; case NUMBER0: case NUMBER1: case NUMBER2: case NUMBER3: case NUMBER4: case NUMBER5: case NUMBER6: case NUMBER7: case NUMBER8: case NUMBER9: for(ii=0; ii < 10; ii++) if(key_table_list[ii] == pso->sig_value) break; num_end = strlen(mft[pso->cur_loc].str); for(jj=0; jj < num_end;jj++) if(!isdigit(mft[pso->cur_loc].str[jj])) return SUCCESS; mft[pso->cur_loc].str[num_start++] = '0' + ii; if(num_start >= num_end) { num_start = 0; pso->osd_loc = pso->cur_loc; mft[pso->osd_loc].color = WHITE; mft[pso->osd_loc].attribute = NORMAL; setup_update_osd(pso); if (pso->cur_loc <= 24) { setup_select_menu(pso, 1); } return SUCCESS; } pso->osd_loc = pso->cur_loc; mft[pso->osd_loc].color = YELLOW; mft[pso->osd_loc].attribute = BLINK; setup_update_osd(pso); break; case SEL : if (pso->cur_loc == 25) { strcpy(temp_net, "ifconfig "); strcat(temp_net, "eth0 "); sprintf(ip, "%03d.%03d.%03d.%03d", atoi(mft[2].str), atoi(mft[4].str), atoi(mft[6].str), atoi(mft[8].str)); strcat(temp_net, ip); strcat(temp_net, " netmask "); sprintf(netmask, "%03d.%03d.%03d.%03d", atoi(mft[10].str), atoi(mft[12].str), atoi(mft[14].str), atoi(mft[16].str)); strcat(temp_net, netmask); if (system(temp_net) != 0) { m_ERROR("pthread_setup.c:error: In function 'system'\n"); } strcpy(temp_net, "route "); strcat(temp_net, "add default gw "); sprintf(gw, "%03d.%03d.%03d.%03d", atoi(mft[18].str), atoi(mft[20].str), atoi(mft[22].str), atoi(mft[24].str)); strcat(temp_net, gw); strcat(temp_net, " eth0"); if (system(temp_net) != 0) { m_ERROR("pthread_setup.c:error: In function 'system'\n"); } pso->param->sys.network.ipaddr = (atoi(mft[2].str) << 24) | (atoi(mft[4].str)<< 16) | (atoi(mft[6].str) << 8) |atoi(mft[8].str); pso->param->sys.network.netmask = (atoi(mft[10].str) << 24) | (atoi(mft[12].str)<< 16) | (atoi(mft[14].str) << 8) |atoi(mft[16].str); pso->param->sys.network.gateway = (atoi(mft[18].str) << 24) | (atoi(mft[20].str)<< 16) | (atoi(mft[22].str) << 8) |atoi(mft[24].str); } break; case SUB_MINUS : /* return to start position */ location_cur = &setup_menu_active[pso->cur_id]; location_cur->start = 2; pso->cur_id = SETUP_SYSTEM_PARAM; pso->create_menu = 1; break; default : break; } return SUCCESS;}RETURN setup_system_camera(SETUP_OBJECT *pso){ S8 temp[8]; MENU_FONT_t *mft; MENU_ACTIVE_ITEM_t *location_cur; mft = setup_menu_font[SETUP_SP_CAMERA]; switch (pso->sig_value) { case UP : if (pso->cur_loc >= 8 && pso->cur_loc <= 11) { setup_select_menu(pso, -5); } else if (pso->cur_loc >= 13 && pso->cur_loc <= 16) { setup_select_menu(pso, -5); } break; case DOWN : if (pso->cur_loc >= 3 && pso->cur_loc <= 6) { setup_select_menu(pso, 5); } else if (pso->cur_loc >= 8 && pso->cur_loc <= 11) { setup_select_menu(pso, 5); } break; case LEFT : if (pso->cur_loc >= 4 && pso->cur_loc <= 6) { setup_select_menu(pso, -1); } else if (pso->cur_loc >= 9 && pso->cur_loc <= 11) { setup_select_menu(pso, -1); } else if (pso->cur_loc >= 14 && pso->cur_loc <= 16) { setup_select_menu(pso, -1); } break; case RIGHT : if (pso->cur_loc >= 3 && pso->cur_loc <= 5) { setup_select_menu(pso, 1); } else if (pso->cur_loc >= 8 && pso->cur_loc <= 10) { setup_select_menu(pso, 1); } else if (pso->cur_loc >= 13 && pso->cur_loc <= 15) { setup_select_menu(pso, 1); } break; case NUM_PLUS : if (pso->cur_loc >= 3 && pso->cur_loc <= 6) { if (pso->param->sys.camera[pso->cur_loc - 3].brightness <= 126) { pso->param->sys.camera[pso->cur_loc - 3].brightness ++; } else if (pso->param->sys.camera[pso->cur_loc - 3].brightness >= 127) { pso->param->sys.camera[pso->cur_loc - 3].brightness = -128; } sprintf(temp, "%4d", pso->param->sys.camera[pso->cur_loc - 3].brightness); strcpy(mft[pso->cur_loc].str, temp); tw2834_write_reg(TW2834_PAGE0, 0x12 + 0x40 * (pso->cur_loc - 3), (UNS8)(pso->param->sys.camera[pso->cur_loc - 3].brightness+128)); } else if (pso->cur_loc >= 8 && pso->cur_loc <= 11) { if (pso->param->sys.camera[pso->cur_loc - 8].contrast <= 126) { pso->param->sys.camera[pso->cur_loc - 8].contrast ++;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -