📄 main.c
字号:
return 0;}#ifdef NVRAM_TEST RETURN nvram_check_magic_num(SETUP_PARAM *psp){ UNS16 ii, kk, jj; UNS32 value; value = get_nvram_para( offsetof(SETUP_PARAM, magic_num), sizeof(psp->magic_num) ); if (value != MPEG4_MAGICNUM) { m_ERROR("MPEG4_MAGICNUM NOT Matched. \nSo, all parameter set according to DEFAULT data\n"); /* write magic number to NVRAM */ value = MPEG4_MAGICNUM; set_nvram_para( offsetof(SETUP_PARAM, magic_num), sizeof(psp->magic_num), &value); /* * GLOBAL PARAMETER */ /* format : '0' NTSC, '1' PAL, default is '0' */ if (gp_state_thread->state_main.mode == PAL) { value = PAL; } else { value = NTSC; } set_nvram_para( offsetof(SETUP_PARAM, gp.video_form), sizeof(psp->gp.video_form), &value ); /* resolution : '0' 720 x 480(576), '1' 360 x 240(288) */ value = CIF; set_nvram_para( offsetof(SETUP_PARAM, gp.resolution), sizeof(psp->gp.resolution), &value ); /* * ENCODER PARAMETER */ for (ii = 0; ii < MAX_CH_NUM; ii++) { /* CONTINUE RECORD FLAG : '0' OFF, '1' ON, default is '1' */ value = 1; set_nvram_para( offsetof(SETUP_PARAM, enc_ch[ii].flag_conti_rec), sizeof(psp->enc_ch[ii].flag_conti_rec), &value ); /* frame rate : 0 ~ 30 */ if (gp_state_thread->state_main.mode == PAL) { value = MAX_PAL_FPS_LIST - 1; } else { value = MAX_NTSC_FPS_LIST - 1; } set_nvram_para( offsetof(SETUP_PARAM, enc_ch[ii].frame_rate), sizeof(psp->enc_ch[ii].frame_rate), &value ); /* CBR Q value : 0 ~ 4 ( 0.5M ~ 6.0M ) */ value = 2; set_nvram_para( offsetof(SETUP_PARAM, enc_ch[ii].cbr_q), sizeof(psp->enc_ch[ii].cbr_q), &value ); /* MOTION FLAG : '0' OFF, '1' ON, default is '0' */ value = 0; set_nvram_para( offsetof(SETUP_PARAM, enc_ch[ii].motion.flag), sizeof(psp->enc_ch[ii].motion.flag), &value ); /* MOTION SENSITIVITY : 0 ~ 4 */ value = 2; set_nvram_para( offsetof(SETUP_PARAM, enc_ch[ii].motion.sensitivity), sizeof(psp->enc_ch[ii].motion.sensitivity), &value ); /* MOTION AREA */ value = 0; for (kk = 0; kk < AT2041_MB_TABLE; kk ++) { set_nvram_para( offsetof(SETUP_PARAM, enc_ch[ii].motion.area[kk]), sizeof(psp->enc_ch[ii].motion.area[kk]), &value ); } /* SENSOR IN FLAG : '0' OFF, '1' ON, default is '0' */ value = 0; set_nvram_para( offsetof(SETUP_PARAM, enc_ch[ii].sensor.flag_in), sizeof(psp->enc_ch[ii].sensor.flag_in), &value ); /* SENSOR IN NORMAL OPEN/CLOSE : '0' OPEN, '1' CLOSE, default is '1' */ value = 1; set_nvram_para( offsetof(SETUP_PARAM, enc_ch[ii].sensor.flag_in_noc), sizeof(psp->enc_ch[ii].sensor.flag_in_noc), &value ); /* SENSOR OUT FLAG : '0' OFF, '1' ON, default is '0' */ value = 0; set_nvram_para( offsetof(SETUP_PARAM, enc_ch[ii].sensor.flag_out), sizeof(psp->enc_ch[ii].sensor.flag_out), &value ); /* SENSOR OUT NORMAL OPEN/CLOSE : '0' OPEN, '1' CLOSE, default is '1' */ value = 1; set_nvram_para( offsetof(SETUP_PARAM, enc_ch[ii].sensor.flag_out_noc), sizeof(psp->enc_ch[ii].sensor.flag_out_noc), &value ); /* SENSOR OUT DURATION : default is 5 sec */ value = 5; set_nvram_para( offsetof(SETUP_PARAM, enc_ch[ii].sensor.flag_out_duration), sizeof(psp->enc_ch[ii].sensor.flag_out_duration), &value ); /* SCHEDULE FLAG : '0' OFF, '1' ON, default is '0' */ value = 0; set_nvram_para( offsetof(SETUP_PARAM, enc_ch[ii].schedule.flag), sizeof(psp->enc_ch[ii].schedule.flag), &value ); /* SCHEDULE TIME : from->2004-01-01 00:00, to->2004-01-01 00:00 */ for (kk = 0; kk < MAX_DAY_OF_WEEK; kk ++) { value = 2005 -1900; // year set_nvram_para( offsetof(SETUP_PARAM, enc_ch[ii].schedule.from_time[kk].tm_year), sizeof(psp->enc_ch[ii].schedule.from_time[kk].tm_year), &value ); value = 1 - 1; // month set_nvram_para( offsetof(SETUP_PARAM, enc_ch[ii].schedule.from_time[kk].tm_mon), sizeof(psp->enc_ch[ii].schedule.from_time[kk].tm_mon), &value ); value = 1; // day set_nvram_para( offsetof(SETUP_PARAM, enc_ch[ii].schedule.from_time[kk].tm_mday), sizeof(psp->enc_ch[ii].schedule.from_time[kk].tm_mday), &value ); value = 0; // hour set_nvram_para( offsetof(SETUP_PARAM, enc_ch[ii].schedule.from_time[kk].tm_hour), sizeof(psp->enc_ch[ii].schedule.from_time[kk].tm_hour), &value ); value = 0; // minute set_nvram_para( offsetof(SETUP_PARAM, enc_ch[ii].schedule.from_time[kk].tm_min), sizeof(psp->enc_ch[ii].schedule.from_time[kk].tm_min), &value ); value = 0; // second set_nvram_para( offsetof(SETUP_PARAM, enc_ch[ii].schedule.from_time[kk].tm_sec), sizeof(psp->enc_ch[ii].schedule.from_time[kk].tm_sec), &value ); value = 2005 -1900; // year set_nvram_para( offsetof(SETUP_PARAM, enc_ch[ii].schedule.to_time[kk].tm_year), sizeof(psp->enc_ch[ii].schedule.to_time[kk].tm_year), &value ); value = 1 - 1; // month set_nvram_para( offsetof(SETUP_PARAM, enc_ch[ii].schedule.to_time[kk].tm_mon), sizeof(psp->enc_ch[ii].schedule.to_time[kk].tm_mon), &value ); value = 1; // day set_nvram_para( offsetof(SETUP_PARAM, enc_ch[ii].schedule.to_time[kk].tm_mday), sizeof(psp->enc_ch[ii].schedule.to_time[kk].tm_mday), &value ); value = 0; // hour set_nvram_para( offsetof(SETUP_PARAM, enc_ch[ii].schedule.to_time[kk].tm_hour), sizeof(psp->enc_ch[ii].schedule.to_time[kk].tm_hour), &value ); value = 0; // minute set_nvram_para( offsetof(SETUP_PARAM, enc_ch[ii].schedule.to_time[kk].tm_min), sizeof(psp->enc_ch[ii].schedule.to_time[kk].tm_min), &value ); value = 0; // second set_nvram_para( offsetof(SETUP_PARAM, enc_ch[ii].schedule.to_time[kk].tm_sec), sizeof(psp->enc_ch[ii].schedule.to_time[kk].tm_sec), &value ); } }// pentamicro 2006.01.11 /* set MPEG4 type ( 0=JPEG, 1=MPEG1, 2=MPEG2, 3=H.263, 4=MPEG4 ) */ value = 4; set_nvram_para( offsetof(SETUP_PARAM, enc_attr.encoding_type), sizeof(psp->enc_attr.encoding_type), &value ); /* save for water marker attribute */ value = 0; set_nvram_para( offsetof(SETUP_PARAM, enc_attr.wm.flag_wm), sizeof(psp->enc_attr.wm.flag_wm), &value ); value = 0; set_nvram_para( offsetof(SETUP_PARAM, enc_attr.wm.strength), sizeof(psp->enc_attr.wm.strength), &value ); value = 0; set_nvram_para( offsetof(SETUP_PARAM, enc_attr.wm.key), sizeof(psp->enc_attr.wm.key), &value ); /* * DECODER PARAMETER */ /* play_conti : '0' single file play, '1' continuous file play */ value = 1; set_nvram_para( offsetof(SETUP_PARAM, dec.play_conti), sizeof(psp->dec.play_conti), &value ); /* * SYSTEM PARAMETER */ #if 1//big endian /* network ip configuration : default 192.168.1.100 */ value = (192 & 0xff) << 24 | (168 & 0xff) << 16 | (1 & 0xff) << 8 | (100 & 0xff); set_nvram_para( offsetof(SETUP_PARAM, sys.network.ipaddr),sizeof(psp->sys.network.ipaddr), &value ); /* network netmask configuration : default 255.255.255.0 */ value = (255 & 0xff) << 24 | (255 & 0xff) << 16 | (255 & 0xff) << 8 | (0 & 0xff); set_nvram_para( offsetof(SETUP_PARAM, sys.network.netmask), sizeof(psp->sys.network.netmask), &value ); /* network gateway configuration : default 192.168.1.1 */ value = (192 & 0xff) << 24 | (168 & 0xff) << 16 | (1 & 0xff) << 8 | (1 & 0xff); set_nvram_para( offsetof(SETUP_PARAM, sys.network.gateway), sizeof(psp->sys.network.gateway), &value );#else//little endian /* network ip configuration : default 192.168.1.100 */ value = (100 & 0xff) << 24 | (1 & 0xff) << 16 | (168 & 0xff) << 8 | (192 & 0xff); set_nvram_para( offsetof(SETUP_PARAM, sys.network.ipaddr),sizeof(psp->sys.network.ipaddr), &value ); /* network netmask configuration : default 255.255.255.0 */ value = (0 & 0xff) << 24 | (255 & 0xff) << 16 | (255 & 0xff) << 8 | (255 & 0xff); set_nvram_para( offsetof(SETUP_PARAM, sys.network.netmask), sizeof(psp->sys.network.netmask), &value ); /* network gateway configuration : default 192.168.1.1 */ value = (1 & 0xff) << 24 | (1 & 0xff) << 16 | (168 & 0xff) << 8 | (192 & 0xff); set_nvram_para( offsetof(SETUP_PARAM, sys.network.gateway), sizeof(psp->sys.network.gateway), &value );#endif /* password configuration : default 0000 */ for (ii = 0; ii < USER_NUM; ii ++) { value = ii; set_nvram_para( offsetof(SETUP_PARAM, sys.password[ii].id), sizeof(psp->sys.password[ii].id), &value ); value = 0; set_nvram_para( offsetof(SETUP_PARAM, sys.password[ii].value), sizeof(psp->sys.password[ii].value), &value ); } /* hdd management configuration : default 10 min( cut time ) */ value = 3; set_nvram_para( offsetof(SETUP_PARAM, sys.disk.slice_time), sizeof(psp->sys.disk.slice_time), &value ); /* hdd management configuration : default overwrite true ( continuous save ) */ value = TRUE; set_nvram_para( offsetof(SETUP_PARAM, sys.disk.over_wt_flag), sizeof(psp->sys.disk.over_wt_flag), &value ); gp_state_thread->state_diskm.state = ENOUGH; /* camera configuration : default brightness=0, contrast=0, color=0 */ for(ii = 0; ii < MAX_CH_NUM; ii ++) { /* The resolution is 0.2IRE / step. ( -128 ~ +128 ) */ value = 0; set_nvram_para( offsetof(SETUP_PARAM, sys.camera[ii].brightness), sizeof(psp->sys.camera[ii].brightness), &value ); /* The resolution is 0.8% / step. ( -128 ~ +128 ) */ value = 0; set_nvram_para( offsetof(SETUP_PARAM, sys.camera[ii].contrast), sizeof(psp->sys.camera[ii].contrast), &value ); /* The resolution is 1.4 / step. ( -128 ~ +128 ) */ value = 0; set_nvram_para( offsetof(SETUP_PARAM, sys.camera[ii].color), sizeof(psp->sys.camera[ii].color), &value ); } /* ptz configuration : default cam_vendor=scc-641, cam_speed=3, cam_ch=1 */ value = 4; set_nvram_para( offsetof(SETUP_PARAM, sys.ptz.cam_vendor), sizeof(psp->sys.ptz.cam_vendor), &value ); value = 2; set_nvram_para( offsetof(SETUP_PARAM, sys.ptz.cam_speed), sizeof(psp->sys.ptz.cam_speed), &value ); value = 0; set_nvram_para( offsetof(SETUP_PARAM, sys.ptz.cam_ch), sizeof(psp->sys.ptz.cam_ch), &value ); } return SUCCESS;}#elseRETURN nvram_check_magic_num(SETUP_PARAM *psp){ UNS16 ii, jj, kk; UNS32 value; /* * GLOBAL PARAMETER */ /* format : '0' NTSC, '1' PAL, default is '0' */ if (gp_state_thread->state_main.mode == PAL) { psp->gp.video_form = PAL; } else { psp->gp.video_form = NTSC; } /* resolution : '0' 720 x 480(576), '1' 360 x 240(288) */ psp->gp.resolution = CIF; /* * ENCODER PARAMETER */ for (ii = 0; ii < MAX_CH_NUM; ii++) { /* CONTINUE RECORD FLAG : '0' OFF, '1' ON, default is '1' */ psp->enc_ch[ii].flag_conti_rec = 1; /* frame rate : 0 ~ 30 */ if (gp_state_thread->state_main.mode == PAL) { psp->enc_ch[ii].frame_rate = MAX_PAL_FPS_LIST - 1; } else { psp->enc_ch[ii].frame_rate = MAX_NTSC_FPS_LIST - 1; } /* CBR Q value : 0 ~ 4 ( 0.5M ~ 6.0M ) */ psp->enc_ch[ii].cbr_q = 2; /* MOTION FLAG : '0' OFF, '1' ON, default is '0' */ psp->enc_ch[ii].motion.flag = 0; /* MOTION SENSITIVITY : 0 ~ 4 */ psp->enc_ch[ii].motion.sensitivity = 2; /* MOTION AREA */ for (kk = 0; kk < AT2041_MB_TABLE; kk ++) { psp->enc_ch[ii].motion.area[kk] = 0x00; } /* SENSOR IN FLAG : '0' OFF, '1' ON, default is '0' */ psp->enc_ch[ii].sensor.flag_in = 0; psp->enc_ch[ii].sensor.flag_in_noc = 1; /* default is normal close */ /* SENSOR OUT FLAG : '0' OFF, '1' ON, default is '0' */ psp->enc_ch[ii].sensor.flag_out = 0; psp->enc_ch[ii].sensor.flag_out_noc = 1;/* default is normal close */ psp->enc_ch[ii].sensor.flag_out_duration = 5; /* SCHEDULE FLAG : '0' OFF, '1' ON, default is '0' */ psp->enc_ch[ii].schedule.flag = 0; /* SCHEDULE TIME : from->2004-01-01 00:00, to->2004-01-01 00:00 */ for (kk = 0; kk < MAX_DAY_OF_WEEK; kk ++) { psp->enc_ch[ii].schedule.from_time[kk].tm_year = 2005 -1900; // year psp->enc_ch[ii].schedule.from_time[kk].tm_mon = 1 - 1; // month psp->enc_ch[ii].schedule.from_time[kk].tm_mday = 1; // day psp->enc_ch[ii].schedule.from_time[kk].tm_hour = 0; // hour psp->enc_ch[ii].schedule.from_time[kk].tm_min = 0; // minute psp->enc_ch[ii].schedule.from_time[kk].tm_sec = 0; // second psp->enc_ch[ii].schedule.to_time[kk].tm_year = 2005 -1900; // year psp->enc_ch[ii].schedule.to_time[kk].tm_mon = 1 - 1; // month psp->enc_ch[ii].schedule.to_time[kk].tm_mday = 1; // day psp->enc_ch[ii].schedule.to_time[kk].tm_hour = 0; // hour psp->enc_ch[ii].schedule.to_time[kk].tm_min = 0; // minute psp->enc_ch[ii].schedule.to_time[kk].tm_sec = 0; // second } }// pentamicro 2006.01.11 /* set MPEG4 type ( 0=JPEG, 1=MPEG1, 2=MPEG2, 3=H.263, 4=MPEG4 ) */ psp->enc_attr.encoding_type = 4; /* save for water marker attribute */ psp->enc_attr.wm.flag_wm = 0; psp->enc_attr.wm.strength = 0; psp->enc_attr.wm.key = 0; /* * DECODER PARAMETER */ /* play_conti : '0' single file play, '1' continuous file play */ psp->dec.play_conti = 1; /* * SYSTEM PARAMETER */ /* network ip configuration : default 192.168.1.100 */ psp->sys.network.ipaddr = (192 & 0xff) << 24 | (168 & 0xff) << 16 | (1 & 0xff) << 8 | (100 & 0xff); /* network netmask configuration : default 255.255.255.0 */ psp->sys.network.netmask = (255 & 0xff) << 24 | (255 & 0xff) << 16 | (255 & 0xff) << 8 | (0 & 0xff); /* network gateway configuration : default 192.168.1.1 */ psp->sys.network.gateway = (192 & 0xff) << 24 | (168 & 0xff) << 16 | (1 & 0xff) << 8 | (1 & 0xff); /* password configuration : default 0000 */ for (ii = 0; ii < USER_NUM; ii ++) { psp->sys.password[ii].id = ii; psp->sys.password[ii].value = 0x0000; } /* hdd management configuration : default 10 min( cut time ) */ psp->sys.disk.slice_time = 3; /* hdd management configuration : default overwrite true ( continuous save ) */ psp->sys.disk.over_wt_flag = TRUE; gp_state_thread->state_diskm.state = ENOUGH; /* camera configuration : default brightness=0, contrast=0, color=0 */ for(ii = 0; ii < MAX_CH_NUM; ii ++) { /* The resolution is 0.2IRE / step. ( -128 ~ +128 ) */ psp->sys.camera[ii].brightness = 0; tw2834_write_reg(TW2834_PAGE0, 0x12 + 0x40 * ii, (UNS8)(psp->sys.camera[ii].brightness+128)); // brightness /* The resolution is 0.8% / step. ( -128 ~ +128 ) */ psp->sys.camera[ii].contrast = 0; tw2834_write_reg(TW2834_PAGE0, 0x11 + 0x40 * ii, (UNS8)(psp->sys.camera[ii].contrast+128)); // contrast /* The resolution is 1.4 / step. ( -128 ~ +128 ) */ psp->sys.camera[ii].color = 0; tw2834_write_reg(TW2834_PAGE0, 0x0f + 0x40 * ii, (UNS8)(psp->sys.camera[ii].color+128)); // color } /* ptz configuration : default cam_vendor=scc-641, cam_speed=3, cam_ch=1 */ psp->sys.ptz.cam_vendor = 4; psp->sys.ptz.cam_speed = 2; psp->sys.ptz.cam_ch = 0; return SUCCESS;}#endifRETURN nvram_load_setup_value(SETUP_PARAM *psp){ UNS32 ii, kk, jj; UNS32 value; /* * GLOBAL PARAMETER */ psp->gp.video_form = gp_state_thread->state_main.mode; /* resolution : '0' 720 x 480(576), '1' 360 x 240(288) */ psp->gp.resolution = get_nvram_para( offsetof(SETUP_PARAM, gp.resolution), sizeof(psp->gp.resolution) ); /* * ENCODER PARAMETER */ for (ii = 0; ii < MAX_CH_NUM; ii++) { /* CONTINUE RECORD FLAG : '0' OFF, '1' ON, default is '1' */ psp->enc_ch[ii].flag_conti_rec = get_nvram_para( offsetof(SETUP_PARAM, enc_ch[ii].flag_conti_rec), sizeof(psp->enc_ch[ii].flag_conti_rec) ); /* frame rate : 0 ~ 30 */ psp->enc_ch[ii].frame_rate = get_nvram_para( offsetof(SETUP_PARAM, enc_ch[ii].frame_rate), sizeof(psp->enc_ch[ii].frame_rate) );#if 1/* xchannel add ( when the NTSC(30fps) -> PAL(25fps) updating */ if(psp->gp.video_form == PAL) { if(psp->enc_ch[ii].frame_rate > (MAX_PAL_FPS_LIST - 1)) { psp->enc_ch[ii].frame_rate = MAX_PAL_FPS_LIST - 1; set_nvram_para( offsetof(SETUP_PARAM, enc_ch[ii].frame_rate), sizeof(psp->enc_ch[ii].frame_rate), &psp->enc_ch[ii].frame_rate ); } } #endif /* CBR Q value : 0 ~ 4 ( 0.5M ~ 6.0M ) */ psp->enc_ch[ii].cbr_q = get_nvram_para( offsetof(SETUP_PARAM, enc_ch[ii].cbr_q), sizeof(psp->enc_ch[ii].cbr_q) ); /* MOTION FLAG : '0' OFF, '1' ON, default is '0' */ psp->enc_ch[ii].motion.flag = get_nvram_para( offsetof(SETUP_PARAM, enc_ch[ii].motion.flag), sizeof(psp->enc_ch[ii].motion.flag) ); /* MOTION SENSITIVITY : 0 ~ 4 */ psp->enc_ch[ii].motion.sensitivity = get_nvram_para( offsetof(SETUP_PARAM, enc_ch[ii].motion.sensitivity), sizeof(psp->enc_ch[ii].motion.sensitivity) ); /* MOTION AREA */ for (kk = 0; kk < AT2041_MB_TABLE; kk ++) { psp->enc_ch[ii].motion.area[kk] = get_nvram_para( offsetof(SETUP_PARAM, enc_ch[ii].motion.area[kk]), sizeof(psp->enc_ch[ii].motion.area[kk]) ); } /* SENSOR IN FLAG : '0' OFF, '1' ON, default is '0' */ psp->enc_ch[ii].sensor.flag_in = get_nvram_para( offsetof(SETUP_PARAM, enc_ch[ii].sensor.flag_in), sizeof(psp->enc_ch[ii].sensor.flag_in) ); psp->enc_ch[ii].sensor.flag_in_noc = get_nvram_para( offsetof(SETUP_PARAM, enc_ch[ii].sensor.flag_in_noc), sizeof(psp->enc_ch[ii].sensor.flag_in_noc) ); /* SENSOR OUT FLAG : '0' OFF, '1' ON, default is '0' */ psp->enc_ch[ii].sensor.flag_out = get_nvram_para( offsetof(SETUP_PARAM, enc_ch[ii].sensor.flag_out), sizeof(psp->enc_ch[ii].sensor.flag_out) ); psp->enc_ch[ii].sensor.flag_out_noc = get_nvram_para( offsetof(SETUP_PARAM, enc_ch[ii].sensor.flag_out_noc), sizeof(psp->enc_ch[ii].sensor.flag_out_noc) );
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -