📄 eprom.c
字号:
#define _EPROM_C_
#include "types.h"
#include "eprom.h"
#include "i2c.h"
#include "gosd.h"
#include "gio.h"
#include "stdio.h"
#include "lan.h"
#include "bit1601.h"
#ifdef RE_CON
#include "rmcon.h"
#endif
#define I2C_BUS_ADDR_AT24 0xA0
//---------------------------------------------------------------------------------
//
//---------------------------------------------------------------------------------
xdata u8 Val_EPROM_CAMERA_OF_SET;
xdata u8 Val_EPROM_CAMERA_OF_RECORD;
xdata u8 Val_EPROM_EACH_QUAD;
xdata u8 Val_EPROM_RECORD_FRAME_RATE;
xdata u8 Val_EPROM_VIDIO_QUALITY;
xdata u8 Val_EPROM_HDD_INDEX;
xdata u8 Val_EPROM_OVERWRAP_RECORD;
xdata u8 Val_EPROM_WRAPPING_FLAG[2];
xdata u8 Val_EPROM_ALARM_DURATION;
xdata u8 Val_EPROM_RECORD_DURATION;
xdata u8 Val_EPROM_HDD_INDEX;
xdata u8 Val_EPROM_SENSOR_ACTIVE = 0x00;
xdata u8 Val_EPROM_SENSOR_USE = 0x00;
xdata u16 Val_EPROM_PORTNUM_C;
xdata u16 Val_EPROM_PORTNUM_D;
xdata u8 Val_EPROM_AUDIO_SET;
xdata BYTE Val_EPROM_AUDIO_CH;
xdata u8 Val_EPROM_DISKID;
#ifdef TEST_AV_OUT_ONOFF
xdata u8 Val_EPROM_AV_OUT_ONOFF;
#endif
#ifdef DISPLAY_IP_ADDRESS
xdata u8 Val_EPROM_rm_IP[4] = {0,0,0,0};
xdata u8 Val_EPROM_rm_SumMask[4] = {0,0,0,0};
xdata u8 Val_EPROM_rm_Gateway[4] = {0,0,0,0};
xdata u8 Val_EPROM_rm_DNS[4] = {0,0,0,0};
xdata u8 Val_gv_show_rm_IP = 0;//bit 0->0:disable, 1:enable
//bit 6->1:erase ip address display in monitor
//bit 7->1:Show IP Address flag.(refresh ip address in monitor)
#endif
#ifdef POWER_ON_RECORD
xdata u8 Val_EPROM_POWER_ON_RECORD;
#endif
data u8 defBrightness;
data u8 defContrast;
data u8 defSaturation;
data u8 defColorTemp;
//===============================================================================
//
//===============================================================================
u8 EPROM_SetUp_data_Read(u8 index)
{
xdata u8 dataa;
dataa = i2c_pkt_read(I2C_BUS_ADDR_AT24,index);
#ifdef DEBUG_EPROM
printf("\n\rEPROM: Read [%02x] = %02x", (u16) index, (u16)dataa);
#endif
return dataa;
}
//===============================================================================
//
//===============================================================================
void EPROM_SetUp_data_Write(u8 index, u8 dataa)
{
#ifdef DEBUG_EPROM
printf("\n\rEPROM: Write [%02x] = %02x", (u16) index, (u16)dataa);
#endif
i2c_pkt_write(I2C_BUS_ADDR_AT24,index,dataa);
delay_time(350, 5); // 5m sec
}
//===============================================================================
//
//===============================================================================
void EPROM_Init(void)
{
xdata u8 i;
for(i=0x00;i<0xFF;i++)
{
#ifdef PWRCV2
if((i!=EPROM_DISKID)&&(i!=EPROM_DISKID_POOL))
#endif
if( (i!=EPROM_NET_MAC0)&&
(i!=EPROM_NET_MAC1)&&
(i!=EPROM_NET_MAC2)&&
(i!=EPROM_NET_MAC3)&&
(i!=EPROM_NET_MAC4)&&
(i!=EPROM_NET_MAC5)
)
EPROM_SetUp_data_Write(i, 0x00);
}
EPROM_SetUp_data_Write(EPROM_VERSION, ROM_VERSION_NUM);
Val_EPROM_EACH_QUAD = 0x00;
Val_EPROM_CAMERA_OF_SET = 0x00;
Val_EPROM_CAMERA_OF_RECORD = 0x00;
Val_EPROM_VIDIO_QUALITY = 0x02;
Val_EPROM_RECORD_FRAME_RATE = 0x00;
Val_EPROM_ALARM_DURATION = 0;
Val_EPROM_RECORD_DURATION = 10;
Val_EPROM_OVERWRAP_RECORD = 1;
Val_EPROM_HDD_INDEX = 0; // MASTER
Val_EPROM_SENSOR_USE = 0x00;
Val_EPROM_SENSOR_ACTIVE = 0x00;
Val_EPROM_PORTNUM_C = NETPORT_SERVER;
Val_EPROM_PORTNUM_D = NETPORT_VIDEOP;
Val_EPROM_AUDIO_SET = 0x00; // Mute Off, Audio Record Off
Val_EPROM_AUDIO_CH = 0x00; // default channel 1
#ifdef TEST_AV_OUT_ONOFF
Val_EPROM_AV_OUT_ONOFF=0x00;
EPROM_SetUp_data_Write(EPROM_AV_OUT_ONOFF, Val_EPROM_AV_OUT_ONOFF);
#endif
#ifdef DISPLAY_IP_ADDRESS
for(i=0;i<4;i++)
{
Val_EPROM_rm_IP[i] = 0;
Val_EPROM_rm_SumMask[i] = 0;
Val_EPROM_rm_Gateway[i] = 0;
Val_EPROM_rm_DNS[i] = 0;
EPROM_Write_IP_Address();
}
Val_gv_show_rm_IP = 0;
EPROM_SetUp_data_Write(EPROM_SHOW_IP_ADDRESS,Val_gv_show_rm_IP);
#endif
#ifdef POWER_ON_RECORD
Val_EPROM_POWER_ON_RECORD = 0;
EPROM_SetUp_data_Write(EPROM_POWER_ON_RECORD, Val_EPROM_POWER_ON_RECORD);
#endif
EPROM_SetUp_data_Write(EPROM_EACH_QUAD, Val_EPROM_EACH_QUAD);
EPROM_SetUp_data_Write(EPROM_CAMERA_OF_SET, Val_EPROM_CAMERA_OF_SET);
EPROM_SetUp_data_Write(EPROM_CAMERA_OF_RECORD, Val_EPROM_CAMERA_OF_RECORD);
EPROM_SetUp_data_Write(EPROM_VIDIO_QUALITY, Val_EPROM_VIDIO_QUALITY);
EPROM_SetUp_data_Write(EPROM_RECORD_FRAME_RATE, Val_EPROM_RECORD_FRAME_RATE);
EPROM_SetUp_data_Write(EPROM_ALARM_DURATION, Val_EPROM_ALARM_DURATION);
EPROM_SetUp_data_Write(EPROM_RECORD_DURATION, Val_EPROM_RECORD_DURATION);
EPROM_SetUp_data_Write(EPROM_OVERWRAP_SELECT, Val_EPROM_OVERWRAP_RECORD);
EPROM_SetUp_data_Write(EPROM_HDD_INDEX, Val_EPROM_HDD_INDEX);
EPROM_SetUp_data_Write(EPROM_SENSOR_USE, Val_EPROM_SENSOR_USE);
EPROM_SetUp_data_Write(EPROM_SENSOR_ACTIVE, Val_EPROM_SENSOR_ACTIVE);
EPROM_SetUp_data_Write(EPROM_AUDIO_SET, Val_EPROM_AUDIO_SET);
EPROM_SetUp_data_Write(EPROM_AUDIO_CHANNEL, Val_EPROM_AUDIO_CH);
EPROM_SetUp_data_Write(EPROM_RECORDING_2_FLAG,0x00);
for(i=0;i<6;i++) EPROM_SetUp_data_Write(EPROM_SCHEDULE_BASE+i,0x55);
for(i=0;i<6;i++) EPROM_SetUp_data_Write(EPROM_PASSWORD_BASE+i,0x01);
xioWriteByte(QUAD_REG_CH_STAT, Val_EPROM_CAMERA_OF_SET); // Quad REGISTER setup
#ifdef LANIF
// we do not touch MAC address field
//for(i=0;i<6;i++) EPROM_SetUp_data_Write(EPROM_NET_MAC0+i, i*10); // Default MAC address is 20:21:22:23:24:25
EPROM_SetUp_data_Write(EPROM_NET_GATEWAY0, 0xC0); // Default gateway is 192.168.1.254 (c0.a8.1.fe)
EPROM_SetUp_data_Write(EPROM_NET_GATEWAY1, 0xa8);
EPROM_SetUp_data_Write(EPROM_NET_GATEWAY2, 0x01);
EPROM_SetUp_data_Write(EPROM_NET_GATEWAY3, 0xfe);
EPROM_SetUp_data_Write(EPROM_NET_IP0, 0xC0); // Default IP is 192.168.1.90 (c0.a8.1.5a)
EPROM_SetUp_data_Write(EPROM_NET_IP1, 0xA8);
EPROM_SetUp_data_Write(EPROM_NET_IP2, 0x01);
EPROM_SetUp_data_Write(EPROM_NET_IP3, 0x5A);
EPROM_SetUp_data_Write(EPROM_NET_SUB2, 0xff); // Default subnet mask is 255.255.255.0
EPROM_SetUp_data_Write(EPROM_NET_SUB3, 0x00);
EPROM_SetUp_data_Write(EPROM_NET_ATTRIB, 0x01); // Default attribute is bit7 on for accepting client
EPROM_SetUp_data_Write(EPROM_NET_CPORT_H, (u8)(Val_EPROM_PORTNUM_C>>8));
EPROM_SetUp_data_Write(EPROM_NET_CPORT_L, (u8) Val_EPROM_PORTNUM_C);
EPROM_SetUp_data_Write(EPROM_NET_DPORT_H, (u8)(Val_EPROM_PORTNUM_D>>8));
EPROM_SetUp_data_Write(EPROM_NET_DPORT_L, (u8) Val_EPROM_PORTNUM_D);
#endif
}
//===============================================================================
//
//===============================================================================
void EPROM_Read_All(void)
{
#ifdef TEST_AV_OUT_ONOFF
Val_EPROM_AV_OUT_ONOFF=EPROM_SetUp_data_Read(EPROM_AV_OUT_ONOFF);
#endif
#ifdef DISPLAY_IP_ADDRESS
EPROM_Read_IP_Address();
Val_gv_show_rm_IP = EPROM_SetUp_data_Read(EPROM_SHOW_IP_ADDRESS);
#endif
#ifdef POWER_ON_RECORD
Val_EPROM_POWER_ON_RECORD = EPROM_SetUp_data_Read(EPROM_POWER_ON_RECORD);
#endif
Val_EPROM_EACH_QUAD = EPROM_SetUp_data_Read(EPROM_EACH_QUAD);
Val_EPROM_CAMERA_OF_SET = EPROM_SetUp_data_Read(EPROM_CAMERA_OF_SET);
Val_EPROM_CAMERA_OF_RECORD = EPROM_SetUp_data_Read(EPROM_CAMERA_OF_RECORD);
Val_EPROM_VIDIO_QUALITY = EPROM_SetUp_data_Read(EPROM_VIDIO_QUALITY);
Val_EPROM_RECORD_FRAME_RATE = EPROM_SetUp_data_Read(EPROM_RECORD_FRAME_RATE);
Val_EPROM_ALARM_DURATION = EPROM_SetUp_data_Read(EPROM_ALARM_DURATION);
Val_EPROM_WRAPPING_FLAG[0] = EPROM_SetUp_data_Read(EPROM_M_WRAPPING_FLAG);
Val_EPROM_RECORD_DURATION = EPROM_SetUp_data_Read(EPROM_RECORD_DURATION);
Val_EPROM_OVERWRAP_RECORD = EPROM_SetUp_data_Read(EPROM_OVERWRAP_SELECT);
Val_EPROM_HDD_INDEX = EPROM_SetUp_data_Read(EPROM_HDD_INDEX);
Val_EPROM_WRAPPING_FLAG[1] = EPROM_SetUp_data_Read(EPROM_S_WRAPPING_FLAG);
Val_EPROM_SENSOR_USE = EPROM_SetUp_data_Read(EPROM_SENSOR_USE);
Val_EPROM_SENSOR_ACTIVE = EPROM_SetUp_data_Read(EPROM_SENSOR_ACTIVE);
Val_EPROM_PORTNUM_C = EPROM_Read_NetPortNum(EPROM_NET_CPORT_H);
Val_EPROM_PORTNUM_D = EPROM_Read_NetPortNum(EPROM_NET_DPORT_H);
Val_EPROM_AUDIO_SET = EPROM_SetUp_data_Read(EPROM_AUDIO_SET);
Val_EPROM_AUDIO_CH = EPROM_SetUp_data_Read(EPROM_AUDIO_CHANNEL);
}
//===============================================================================
//
//===============================================================================
u16 EPROM_Read_NetPortNum(u8 port)
{
u16 ret;
ret = EPROM_SetUp_data_Read(port);
ret = ((ret<<8)&0xff00) | (u16) EPROM_SetUp_data_Read(port+1);
return ret;
}
//===============================================================================
//
//===============================================================================
#ifdef DISPLAY_IP_ADDRESS
void EPROM_Read_IP_Address(void)
{
u8 i;
for(i=0;i<4;i++)
{
Val_EPROM_rm_IP[i] = EPROM_SetUp_data_Read(EPROM_IP_ADDRESS_01 + i);
Val_EPROM_rm_SumMask[i] = EPROM_SetUp_data_Read(EPROM_IP_SUMMASK_01 + i);
Val_EPROM_rm_Gateway[i] = EPROM_SetUp_data_Read(EPROM_IP_GATEWAY_01 + i);
Val_EPROM_rm_DNS[i] = EPROM_SetUp_data_Read(EPROM_IP_DNS_01 + i);
}
}
void EPROM_Write_IP_Address(void)
{
u8 i;
for(i=0;i<4;i++)
{
EPROM_SetUp_data_Write(EPROM_IP_ADDRESS_01+i,Val_EPROM_rm_IP[i]);
EPROM_SetUp_data_Write(EPROM_IP_SUMMASK_01+i,Val_EPROM_rm_SumMask[i]);
EPROM_SetUp_data_Write(EPROM_IP_GATEWAY_01+i,Val_EPROM_rm_Gateway[i]);
EPROM_SetUp_data_Write(EPROM_IP_DNS_01+i,Val_EPROM_rm_DNS[i]);
}
}
#endif
#if USE_ADJ
void EPROM_Default (u8 bMode)
{
defBrightness = 0xAA;//0x2D;
defContrast = 0x75;//20051104 david modify 0x64;//0x3C;
defSaturation = 0xBA;//20051104 david modify 0xDC;//0x46;
defColorTemp = 0x45;//20051104 david modify 0x64;
switch (bMode)
{
case 1:
EPROM_SetUp_data_Write(EPROM_ADDR_BRIGHTNESS_40, defBrightness);
EPROM_SetUp_data_Write(EPROM_ADDR_CONTRAST_40, defContrast);
EPROM_SetUp_data_Write(EPROM_ADDR_SATURATION_40, defSaturation);
EPROM_SetUp_data_Write(EPROM_ADDR_COLORTEMP_40, defColorTemp);
YUV_SetBrightness(YUV_MAD_1, defBrightness);
YUV_SetContrast(YUV_MAD_1, defContrast);
YUV_SetSaturation(YUV_MAD_1, defSaturation);
YUV_SetColorTemp(YUV_MAD_1, defColorTemp);
break;
case 2:
EPROM_SetUp_data_Write(EPROM_ADDR_BRIGHTNESS_42, defBrightness);
EPROM_SetUp_data_Write(EPROM_ADDR_CONTRAST_42, defContrast);
EPROM_SetUp_data_Write(EPROM_ADDR_SATURATION_42, defSaturation);
EPROM_SetUp_data_Write(EPROM_ADDR_COLORTEMP_42, defColorTemp);
YUV_SetBrightness(YUV_MAD_2, defBrightness);
YUV_SetContrast(YUV_MAD_2, defContrast);
YUV_SetSaturation(YUV_MAD_2, defSaturation);
YUV_SetColorTemp(YUV_MAD_2, defColorTemp);
break;
case 3:
EPROM_SetUp_data_Write(EPROM_ADDR_BRIGHTNESS_48, defBrightness);
EPROM_SetUp_data_Write(EPROM_ADDR_CONTRAST_48, defContrast);
EPROM_SetUp_data_Write(EPROM_ADDR_SATURATION_48, defSaturation);
EPROM_SetUp_data_Write(EPROM_ADDR_COLORTEMP_48, defColorTemp);
YUV_SetBrightness(YUV_MAD_3, defBrightness);
YUV_SetContrast(YUV_MAD_3, defContrast);
YUV_SetSaturation(YUV_MAD_3, defSaturation);
YUV_SetColorTemp(YUV_MAD_3, defColorTemp);
break;
case 4:
EPROM_SetUp_data_Write(EPROM_ADDR_BRIGHTNESS_4A, defBrightness);
EPROM_SetUp_data_Write(EPROM_ADDR_CONTRAST_4A, defContrast);
EPROM_SetUp_data_Write(EPROM_ADDR_SATURATION_4A, defSaturation);
EPROM_SetUp_data_Write(EPROM_ADDR_COLORTEMP_4A, defColorTemp);
YUV_SetBrightness(YUV_MAD_4, defBrightness);
YUV_SetContrast(YUV_MAD_4, defContrast);
YUV_SetSaturation(YUV_MAD_4, defSaturation);
YUV_SetColorTemp(YUV_MAD_4, defColorTemp);
break;
default:
break;
}
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -