📄 readchip.c
字号:
#ifndef _READ_CHIP_C_
#define _READ_CHIP_C_
#include "api.h"
void get_chip_e1_use_status( SYSTEM_INFOMATION *psys, SYSTEM_DEVICE_STATUS *psdev )
{
BYTE local_e1_use;
BYTE counter;
local_e1_use = ReadChip( LOCAL_E1USE_ADDR );
if( psys->e1_use != local_e1_use )
{
psys->e1_use = local_e1_use;
for(counter=0; counter<psys->max_system_e1; counter++)
{
if( (psys->e1_use)&(BIT0<<counter) )
psdev->local.e1_status[counter] &= ~BIT6;
else
psdev->local.e1_status[counter] |= BIT6;
psdev->local.e1_status[counter] &= E1_NOALARM;
if( ((psys->alarm[4]>>counter)&BIT0) && ((psys->e1_use>>counter)&BIT0) )
psdev->local.e1_status[counter] |= E1_ALARM;
}
}
}
/*
void get_chip_fiber_alarm_status( SYSTEM_DEVICE_STATUS *psdev )
{
BYTE chip_status;
BYTE fiber;
chip_status = ReadChip( LOCAL_STATUS_ADDR );
fiber = get_use_fiber( psdev->local.fiber_status );
fiber = ( fiber + 1 ) % MAX_FIBER_NOMBER;
psdev->local.fiber_status[fiber] &= FIBER_NOALARM;
if( !((chip_status>>fiber)&BIT0) )
{
psdev->local.fiber_status[fiber] |= FIBER_LOS;
}
if( check_remote_status() == ALARM )
{
psdev->remote.fiber_status[0] &= FIBER_NOALARM;
psdev->remote.fiber_status[1] &= FIBER_NOALARM;
}
}
*/
void get_chip_fiber_use_status( SYSTEM_DEVICE_STATUS *psdev )
{
BYTE chip_status;
static BYTE chip_status_preview = INVALID;
SYSTEM_INFOMATION *psys = &gSystemInfo;
chip_status = ReadChip( LOCAL_HOOKSTATUS_ADDR );
if( chip_status_preview != chip_status )
{
chip_status_preview = chip_status;
if( !(chip_status&BIT1) )
{
psys->setbuffer[1] |= BIT4;
}
else
psys->setbuffer[1] &= ~BIT4;
psys->sendrc7017 = SETCMDSERIAL;
psys->SetCommandCounter = 0;
return;
}
if( !(chip_status&BIT2) )
{
psdev->local.fiber_status[0] &= FIBER_USE;
psdev->local.fiber_status[1] |= FIBER_NOUSE;
}
else
{
psdev->local.fiber_status[0] |= FIBER_NOUSE;
psdev->local.fiber_status[1] &= FIBER_USE;
}
}
BYTE system_alarm_status( BYTE *e1_status, BYTE *fiber_status )
{
BYTE fiber_alarm;
BYTE e1_alarm;
e1_alarm = light_e1_alarm( e1_status );
fiber_alarm = light_fiber( fiber_status );
if( (e1_alarm != INVALID) || (fiber_alarm != INVALID) )
return NOALARM;
return ALARM;
}
void chip_alarm_scan( void )
{
SYSTEM_INFOMATION *psys = &gSystemInfo;
SYSTEM_DEVICE_STATUS *psdev = &gsystemStauts;
BYTE alarm;
get_chip_e1_use_status( psys, psdev );
/* get_chip_fiber_alarm_status( psdev );*/
get_chip_fiber_use_status( psdev );
alarm = system_alarm_status( psdev->local.e1_status, psdev->local.fiber_status );
psdev->local.alarm_hook &= 0x0f;
psdev->local.alarm_hook |= (alarm<<4);
alarm = system_alarm_status( psdev->remote.e1_status, psdev->remote.fiber_status );
psdev->remote.alarm_hook &= 0x0f;
psdev->remote.alarm_hook |= (alarm<<4);
if( (gSystemInfo.remote_fiber_status[0] == ALARM)
&& (gSystemInfo.remote_fiber_status[1] == ALARM) )
{
psdev->remote.alarm_hook |= 0x10;
psdev->remote.laser_close[1] = 0;
}
else
psdev->remote.laser_close[1] = 1;
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -