⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 menuprocess_dopt.c

📁 pdh控制程序
💻 C
📖 第 1 页 / 共 4 页
字号:
        }
        else
        {
            memcpy( &buffer[1], "R O:M-    S-    ", LCD_LAST_CASE );
            for( counter=0; counter<2; counter++ )
            {
                alarm = get_remote_fiber_alarm( counter );
                fiber_alarm_display( &buffer[1][6+6*counter], alarm, flash_status );
            }
        }
        LcdDisplay_length( ROW_1, CHAR_0, &buffer[0][0], LCD_LAST_CASE );
        LcdDisplay_length( ROW_2, CHAR_0, &buffer[1][0], LCD_LAST_CASE );
    }
    return key_process_status( &KeyPro );
}

void e1_alarm_display( BYTE *pbuffer, BYTE alarm, BYTE e1number, BYTE flash_status )
{
    BYTE xdata buffer[2];

	buffer[0] = NUMBER_CHAR_ADDRESS + e1number+1;
    memcpy( pbuffer, rownull, 1 );

    switch( alarm )
    {
    case E1_ALARM:
        flash_char_status( pbuffer, buffer, flash_status, 1 );
        break;

    default:
//        flash_char_status( pbuffer, buffer, SHOW_CHAR_STATUS, 1 );
        break;
    }
}

void e1_nomal_alarm_display( BYTE *pbuffer, BYTE e1number )
{
    BYTE xdata buffer[2];

	buffer[0] = 0x30 + e1number+1;
    memcpy( pbuffer, rownull, 1 );
    flash_char_status( pbuffer, buffer, SHOW_CHAR_STATUS, 1 );
}

BYTE menu_2_e1_local_alarm( BYTE FlashLcd, BYTE *row0, BYTE *palarm )
{
    BYTE xdata buffer[LCD_MAX_CASE];
    BYTE xdata alarm, counter;
    BYTE xdata flash_status;
    SYSTEM_INFOMATION xdata *psys = &gSystemInfo;

    flash_status = flash_time(  );

    KeyPro.keyEnter = key_do_nothing;
    KeyPro.keyLeft = key_do_nothing;
    KeyPro.keyRight = key_do_nothing;
    KeyPro.keyCanncel = menu_1_preview;

    if( FlashLcd == FLASH_SCREEN )
    {
        LcdDisplay_length( ROW_1, CHAR_0, row0, LCD_LAST_CASE );
        LcdDisplay_length( ROW_2, CHAR_0, rownull, LCD_LAST_CASE );
    }
    else
	{
        memcpy( buffer, rownull, LCD_LAST_CASE );
        alarm = light_e1_alarm( palarm );
        if( alarm == INVALID )
        {
            for( counter=0; counter<psys->max_system_e1; counter++ )
            {
                alarm = (*palarm++)&E1_ALARM_STATUS;
                e1_nomal_alarm_display( &buffer[counter*2], counter );
            }
            LcdDisplay_length( ROW_1, CHAR_0, " Local E1 OK   ", LCD_LAST_CASE );
        }
        else
        {
            LcdDisplay_length( ROW_1, CHAR_0, row0, LCD_LAST_CASE );
            for( counter=0; counter<psys->max_system_e1; counter++ )
            {
                alarm = (*palarm++)&E1_ALARM_STATUS;
                e1_alarm_display( &buffer[counter*2], alarm, counter, flash_status );
            }
        }
			
        LcdDisplay_length( ROW_2, CHAR_0, buffer, LCD_LAST_CASE );
    }
/*    {
        memcpy( buffer, rownull, LCD_LAST_CASE );
        for( counter=0; counter<psys->max_system_e1; counter++ )
        {
            alarm = (*palarm++)&E1_ALARM_STATUS;
            e1_alarm_display( &buffer[counter*2], alarm, counter, flash_status );
        }
        LcdDisplay_length( ROW_2, CHAR_0, buffer, LCD_LAST_CASE );
    }*/

    return key_process_status( &KeyPro );
}

BYTE menu_2_e1_remote_alarm( BYTE FlashLcd, BYTE *row0, BYTE *palarm )
{
    SYSTEM_INFOMATION xdata *psys = &gSystemInfo;
    BYTE xdata buffer[16];
    BYTE xdata alarm, counter;
    BYTE xdata flash_status;

    flash_status = flash_time(  );

    KeyPro.keyEnter = key_do_nothing;
    KeyPro.keyLeft = menu_1_left;
    KeyPro.keyRight = menu_1_right;
    KeyPro.keyCanncel = menu_1_preview;

    if( FlashLcd == FLASH_SCREEN )
    {
        LcdDisplay_length( ROW_1, CHAR_0, row0, LCD_LAST_CASE );
        LcdDisplay_length( ROW_2, CHAR_0, rownull, LCD_LAST_CASE );
    }
    else
	{
        memcpy( buffer, rownull, LCD_LAST_CASE );
        if( (check_remote_status() == ALARM) )
        {
            LcdDisplay_length( ROW_1, CHAR_0, row0, LCD_LAST_CASE );
            flash_char_status( &buffer[4], "unknown", flash_status, 7 );
        }
        else
        {
            memcpy( buffer, rownull, LCD_LAST_CASE );
            alarm = light_e1_alarm( palarm );
            if( alarm == INVALID )
            {
                for( counter=0; counter<psys->max_system_e1; counter++ )
                {
                    e1_nomal_alarm_display( &buffer[counter*2], counter );
                }
                LcdDisplay_length( ROW_1, CHAR_0, " Remote E1 OK   ", LCD_LAST_CASE );
            }
            else
            {
                LcdDisplay_length( ROW_1, CHAR_0, row0, LCD_LAST_CASE );
                for( counter=0; counter<psys->max_system_e1; counter++ )
                {
                    alarm = (*palarm++)&E1_ALARM_STATUS;
                    e1_alarm_display( &buffer[counter*2], alarm, counter, flash_status );
                }
            }
        }
        LcdDisplay_length( ROW_2, CHAR_0, buffer, LCD_LAST_CASE );
    }
/*   {
        memcpy( buffer, rownull, LCD_LAST_CASE );
        if( (check_remote_status() == ALARM) )
        {
            flash_char_status( &buffer[4], "unknown", flash_status, 7 );
        }
        else
        {
            for( counter=0; counter<psys->max_system_e1; counter++ )
            {
                alarm = (*palarm++)&E1_ALARM_STATUS;
                e1_alarm_display( &buffer[counter*2], alarm, counter, flash_status );
            }
        }
        LcdDisplay_length( ROW_2, CHAR_0, buffer, LCD_LAST_CASE );
    }
*/
    return key_process_status( &KeyPro );
}

BYTE local_e1_alarm( BYTE FlashLcd )
{
    SYSTEM_DEVICE_STATUS xdata *psdev = &gsystemStauts;

    return menu_2_e1_local_alarm( FlashLcd, " Local E1 LOS  ", psdev->local.e1_status );
}

BYTE remote_e1_alarm( BYTE FlashLcd )
{
    SYSTEM_DEVICE_STATUS xdata *psdev = &gsystemStauts;

    return menu_2_e1_remote_alarm( FlashLcd, " Remote E1 LOS ", psdev->remote.e1_status );
}

BYTE menu_yes_no_left( void )
{
     if( gSystemInfo.yes_no == SET_NO )
          gSystemInfo.yes_no = SET_YES;
    return NOCHANGE_MENU;
}

BYTE menu_yes_no_rigth( void )
{
     if( gSystemInfo.yes_no == SET_YES )
          gSystemInfo.yes_no = SET_NO;
    return NOCHANGE_MENU;
}

#if _ALS_
BYTE menu_1_als_set( BYTE FlashLcd )
{
    SYSTEM_INFOMATION xdata *psys = &gSystemInfo;

    if( FlashLcd == FLASH_SCREEN )
        psys->set_value = 0;
    return menu_main_show( "    ALS Set    ", FlashLcd );
}

BYTE menu_als_yes_no( void )
{
    SYSTEM_INFOMATION xdata *psys = &gSystemInfo;
	SYSTEM_DEVICE_STATUS xdata *psdev = &gsystemStauts;
	BYTE fiber, status;

    if( psys->yes_no == SET_YES )
    {
        if( psys->als_port == 0 )
            fiber = A_FIBER;
        else
            fiber = B_FIBER;
		status = GetSystemFiberCloseDown( LACAL_EQU );

        if( status == IDB_ENABLE_LASER_CLOSE )
            status = IDB_DISABLEE_LASER_CLOSE;
        else
            status = IDB_ENABLE_LASER_CLOSE;

		SetSystemFiberCloseDown( status );
		save_fiber_close( psdev->local.laser_close );
    }
    return PREVIEW_MENU;
}
#endif

void yes_no_display( BYTE FlashLcd, SYSTEM_INFOMATION *psys )
{
    BYTE list_char = 7;
    BYTE xdata buffer[LCD_MAX_CASE];

    if( FlashLcd == FLASH_SCREEN )
	{
        psys->yes_no = SET_YES;
		LcdDisplay_length( ROW_2, CHAR_0, rownull, LCD_MAX_CASE );
	}
    else
    {
        if( psys->yes_no == SET_NO )
            list_char = 12;
    }

    memcpy( buffer, rownull, LCD_LAST_CASE );

    memcpy( buffer, "    Yes   no   ", LCD_LAST_CASE );
    LcdDisplay_length( ROW_2, CHAR_0, buffer, 7 );
    LcdDisplay_length( ROW_2, CHAR_8, &buffer[8], 4 );
    diaplay_char( ROW_2, list_char, LCD_PRINT_TRIANGLE );/*7/12*/

	if( list_char == 7 )
	    LcdDisplay_length( ROW_2, CHAR_12, rownull, 1 );
	else
	    LcdDisplay_length( ROW_2, CHAR_7, rownull, 1 );
}

#if 0
BYTE als_set( BYTE FlashLcd )
{
    BYTE xdata buffer[LCD_MAX_CASE];
    SYSTEM_INFOMATION xdata *psys = &gSystemInfo;
    BYTE value;

    KeyPro.keyEnter = menu_als_yes_no;
    KeyPro.keyLeft = menu_yes_no_left;
    KeyPro.keyRight = menu_yes_no_rigth;
    KeyPro.keyCanncel = menu_1_preview;

    if( psys->set_value == 0 )
    {
		value = GetSystemFiberCloseDown( LACAL_EQU );
        if( value == IDB_ENABLE_LASER_CLOSE )
            memcpy( buffer, " Set M ALS EN ", LCD_LAST_CASE );
        else
            memcpy( buffer, " Set M ALS DIS", LCD_LAST_CASE );
    }
    else
    {
		value = GetSystemFiberCloseDown( LACAL_EQU );
        if( value == IDB_ENABLE_LASER_CLOSE )
            memcpy( buffer, " Set S ALS EN ", LCD_LAST_CASE );
        else
            memcpy( buffer, " Set S ALS DIS", LCD_LAST_CASE );
    }

    LcdDisplay_length( ROW_1, CHAR_0, buffer, LCD_LAST_CASE );
    yes_no_display( FlashLcd, psys );

    return key_process_status( &KeyPro );
}
void get_als_status( BYTE *pbuffer )
{
	BYTE value;

	memcpy( pbuffer, "  M:     S:    ", LCD_LAST_CASE );

	value = GetSystemFiberCloseDown( LACAL_EQU );
	if( value == IDB_ENABLE_LASER_CLOSE )
		memcpy( &pbuffer[4], "DIS", 3 );
	else
		memcpy( &pbuffer[4], "EN ", 3 );

	value = GetSystemFiberCloseDown( LACAL_EQU );
	if( value == IDB_ENABLE_LASER_CLOSE )
		memcpy( &pbuffer[11], "DIS", 3 );
	else
		memcpy( &pbuffer[11], "EN ", 3 );
}

BYTE menu_als_set_left( void )
{
     if( gSystemInfo.als_port == 1 )
          gSystemInfo.als_port = 0;
    return NOCHANGE_MENU;
}

BYTE menu_als_set_rigth( void )
{
     if( gSystemInfo.als_port == 0 )
          gSystemInfo.als_port = 1;
    return NOCHANGE_MENU;
}
#endif

#if _ALS_
BYTE menu_2_als_set( BYTE FlashLcd )
{
    SYSTEM_INFOMATION xdata *psys = &gSystemInfo;
    BYTE xdata buffer[LCD_MAX_CASE];
    BYTE xdata list_char = 6;

    KeyPro.keyEnter = key_go_next;
    KeyPro.keyLeft = menu_set_left;
    KeyPro.keyRight = menu_set_rigth;
    KeyPro.keyCanncel = menu_1_preview;

    if( FlashLcd == FLASH_SCREEN )
    {
        LcdDisplay_length( ROW_1, CHAR_0, rownull, LCD_MAX_CASE );
        LcdDisplay_length( ROW_2, CHAR_0, rownull, LCD_MAX_CASE );
        psys->als_port = 0;
    }
    LcdDisplay_length( ROW_1, CHAR_0, "    ALS  set    ", LCD_MAX_CASE );

    memcpy( &buffer[0], rownull, LCD_LAST_CASE );

    flash_char_status( &buffer[1], "Local", SHOW_CHAR_STATUS, 5 );

    flash_char_status( &buffer[8], "Remote", SHOW_CHAR_STATUS, 6 );

    LcdDisplay_length( ROW_2, CHAR_0, buffer, 6 );
    LcdDisplay_length( ROW_2, CHAR_8, &buffer[8], 6 );

    if(  psys->set_value == 1 )
        list_char = 14;
    diaplay_char( ROW_2, list_char, LCD_PRINT_TRIANGLE );
	if( list_char == 6 )
		LcdDisplay_length( ROW_2, CHAR_14, rownull, 1 );
	else
		LcdDisplay_length( ROW_2, CHAR_6, rownull, 1 );

    return key_process_status( &KeyPro );
}
#endif
#if 0
BYTE menu_3_als_set( BYTE FlashLcd )
{
    SYSTEM_INFOMATION xdata *psys = &gSystemInfo;
    BYTE xdata buffer[2][LCD_MAX_CASE];
    BYTE xdata list_char = 7;

    KeyPro.keyLeft = key_do_nothing;
    KeyPro.keyRight = key_do_nothing;
    KeyPro.keyCanncel = menu_1_preview;

    memcpy( &buffer[0][0], rownull, LCD_LAST_CASE );
    memcpy( &buffer[1][0], rownull, LCD_LAST_CASE );

    if( psys->set_value == 0 )
    {
        KeyPro.keyEnter = key_go_next;
        memcpy( &buffer[0][0], " Local ALS set ", LCD_LAST_CASE );
    }
    else
    {
        KeyPro.keyEnter = key_do_nothing;
        memcpy( &buffer[0][0], " Remote ALS set ", LCD_LAST_CASE );
    }

    get_als_status(  &buffer[1][0] );

    if( FlashLcd == FLASH_SCREEN )
    {
        LcdDisplay_length( ROW_1, CHAR_0, rownull, LCD_MAX_CASE );
        LcdDisplay_length( ROW_2, CHAR_0, rownull, LCD_MAX_CASE );
    }
    else
    {
        if( psys->als_port )
            list_char = 14;
    }
    LcdDisplay_length( ROW_1, CHAR_0, &buffer[0][0], LCD_LAST_CASE );

    LcdDisplay_length( ROW_2, CHAR_0, &buffer[1][0], 7 );
    LcdDisplay_length( ROW_2, CHAR_8, &buffer[1][8], 6 );

    if( psys->set_value == 0 )
	    diaplay_char( ROW_2, list_char, LCD_PRINT_TRIANGLE );
	if( list_char == 7 )
	    LcdDisplay_length( ROW_2, CHAR_14, &buffer[1][14], 1 );
	else
	    LcdDisplay_length( ROW_2, CHAR_7, &buffer[1][7], 1 );

    return key_process_status( &KeyPro );
}
#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -