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

📄 menuprocess_sopt.c

📁 pdh控制程序
💻 C
字号:
#ifndef _MENU_PROCESS_SIGLE_OPTICAL_C_
#define _MENU_PROCESS_SIGLE_OPTICAL_C_

#include "menu.h"
#include "menuprocess.h"
#include "menudrive.h"

#if _LCD_MENU_

void get_main_menu_buffer_sigle_optical( BYTE *pbuffer, BYTE flash_status )
{
    SYSTEM_DEVICE_STATUS xdata *psdev = &gsystemStauts;
    IDBSTATUS rc = OK;
    BYTE *ppbuffer;
    BYTE xdata flash[LCD_LAST_CASE];

    memset( flash, SHOW_CHAR_STATUS, sizeof(flash) );
    ppbuffer = pbuffer;

    ppbuffer += 2;
    ppbuffer += 2;

    if( (light_fiber( psdev->local.fiber_status ) !=INVALID)
        || (light_fiber( psdev->remote.fiber_status ) !=INVALID) )
    {
        rc = ERROR;
        flash_char_status( ppbuffer, "OPT", flash_status, 3 );
    }

    ppbuffer += 4;
    if( (light_e1_alarm( psdev->local.e1_status ) !=INVALID)
        || (light_e1_alarm( psdev->remote.e1_status ) !=INVALID) )
    {
        rc = ERROR;
        flash_char_status( ppbuffer, "E1", flash_status, 2 );
    }

    ppbuffer += 3;
    if( (light_e1_loop( psdev->local.e1_status ) !=INVALID)
        || (light_e1_loop( psdev->remote.e1_status ) !=INVALID) )
    {
        rc = ERROR;
        flash_char_status( ppbuffer, "LOOP", flash_status, 4 );
    }

    if( rc == OK )
    {
        ppbuffer = pbuffer + 7;
        flash_char_status( ppbuffer, "OK!", SHOW_CHAR_STATUS, 3 );
    }
    LcdDisplay_length( ROW_2, CHAR_0, pbuffer, LCD_MAX_CASE );
}

BYTE MenuHeadDisplay_sigle_optical( BYTE FlashLcd )
{
    BYTE xdata buffer[LCD_MAX_CASE];
    SYSTEM_INFOMATION xdata *psys = &gSystemInfo;
    BYTE *pbuffer;
    BYTE flash_status = FlashLcd;

    flash_status = flash_time(  );

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

    LcdDisplay_length( ROW_1, CHAR_0, psys->pdevice, LCD_MAX_CASE );
	memcpy( buffer, rownull, LCD_MAX_CASE );
    pbuffer = buffer;
    get_main_menu_buffer_sigle_optical( pbuffer, flash_status );
    return key_process_status( &KeyPro );
}


BYTE fiber_alarm_show_sigle_optical( BYTE FlashLcd )
{
    SYSTEM_DEVICE_STATUS xdata *psdev = &gsystemStauts;
    BYTE xdata buffer[2][LCD_MAX_CASE];
    BYTE alarm;
    BYTE 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, rownull , LCD_MAX_CASE);
        LcdDisplay_length( ROW_2, CHAR_0, rownull, LCD_MAX_CASE );
    }
    else
	{
        memcpy( &buffer[0], "Local  :        ", LCD_MAX_CASE );
        alarm = psdev->local.fiber_status[0]&FIBER_ALARM_STATUS;
        fiber_alarm_display( &buffer[0][9], alarm, flash_status );
        LcdDisplay_length( ROW_1, CHAR_0, &buffer[0][0], LCD_MAX_CASE );

        memcpy( &buffer[1], "Remote :         ", LCD_MAX_CASE );
        if( check_remote_status() == ALARM )
        {
            flash_char_status( &buffer[1][9], "unknown", flash_status, 7 );
        }
        else
        {
            alarm = psdev->remote.fiber_status[0]&FIBER_ALARM_STATUS;
            fiber_alarm_display( &buffer[1][9], alarm, flash_status );
        }
        LcdDisplay_length( ROW_2, CHAR_0, &buffer[1][0], LCD_MAX_CASE );
    }

    return key_process_status( &KeyPro );
}

BYTE menu_3_alarm_show_sigle_optical( BYTE FlashLcd )
{
    SYSTEM_INFOMATION xdata *psys = &gSystemInfo;

	switch( psys->set_value )
	{
	case 0:
		return fiber_alarm_show_sigle_optical( FlashLcd );

	case 1:
		return e1_alarm_show( FlashLcd );
	}
    return NOCHANGE_MENU;
}

#if _ALS_
BYTE als_set_sigle_optical( 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;

	value = GetSystemFiberCloseDown( LACAL_EQU );
	if( value == IDB_DISABLEE_LASER_CLOSE )
	    memcpy( buffer, " Set ALS enable  ", LCD_MAX_CASE );
	else
	    memcpy( buffer, " Set ALS disable  ", LCD_MAX_CASE );

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

    return key_process_status( &KeyPro );
}

BYTE get_als_status_sigle_optical( BYTE *pbuffer )
{
	BYTE value;
    SYSTEM_INFOMATION xdata *psys = &gSystemInfo;
    BYTE flash_status;

    flash_status = flash_time(  );

	memcpy( pbuffer, " ALS :          ", LCD_MAX_CASE );

	 if( psys->set_value == 1 )
	 {
	     if( check_remote_status() == ALARM )
	     {
	        flash_char_status( &pbuffer[7], "unknown", flash_status, 7 );
	        return 14;
	     }
	 }

	value = GetSystemFiberCloseDown( psys->set_value+1 );
	if( value == IDB_DISABLEE_LASER_CLOSE )
	{
		memcpy( &pbuffer[7], "disable", 7 );
		return 14;
	}
	else
	{
		memcpy( &pbuffer[7], "enable ", 7 );
		return 13;
	}
}

BYTE menu_3_als_set_sigle_optical( 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;

    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;
    }

    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_MAX_CASE );
    }
    else
    {
        KeyPro.keyEnter = key_do_nothing;
        memcpy( &buffer[0][0], " Remote ALS set  ", LCD_MAX_CASE );
    }
	LcdDisplay_length( ROW_1, CHAR_0, &buffer[0][0], LCD_MAX_CASE );

	list_char = get_als_status_sigle_optical(  &buffer[1][0] );
	LcdDisplay_length( ROW_2, CHAR_0, &buffer[1][0], list_char );
    if( psys->set_value == 0 )
		diaplay_char( ROW_2, list_char, LCD_PRINT_TRIANGLE );

    return key_process_status( &KeyPro );
}
#endif
/*
BYTE menu_2_als_set_sigle_optical( BYTE FlashLcd )
{
    SYSTEM_INFOMATION xdata *psys = &gSystemInfo;
    BYTE xdata buffer[2][LCD_MAX_CASE];
    BYTE list_char = 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 );
    }

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

    memcpy( &buffer[0][0], rownull, LCD_LAST_CASE );
    memcpy( &buffer[1][0], rownull, LCD_LAST_CASE );
    memcpy( &buffer[0][0], " Local ALS set ", LCD_LAST_CASE );
    LcdDisplay_length( ROW_1, CHAR_0, &buffer[0][0], LCD_LAST_CASE );

    list_char = get_als_status_sigle_optical(  &buffer[1][0] );

    LcdDisplay_length( ROW_2, CHAR_0, &buffer[1][0], list_char );

    diaplay_char( ROW_2, list_char, LCD_PRINT_TRIANGLE );

    return key_process_status( &KeyPro );
}
*/
#endif
#endif


⌨️ 快捷键说明

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