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

📄 menuprocess.c

📁 通过车载终端采集GPS数据
💻 C
📖 第 1 页 / 共 5 页
字号:
    char num[2];

    num[0] = disNum + '0';
    num[1] = 0;
    device_time = device_time + 1;
    if ((device_time < 7) && (device_time > 0))
    {        
        display_attribute( device_time,2,0 );
        display_string(num); 
        deviceNum[device_time - 1] = num[0];
    }
    else 
        device_time = 6;

    return NOCHANGE_MENU; 
}

//设备号查询菜单
char search_deviceNum(char FlashLcd)
{
    char key;
    Byte tmpBuf[3];
    if (nMenuIndex == 0)
    {
        if (FlashLcd == FLASH_SCREEN)
        {
            Byte DevAscii[7];
            lcd_clear_srceen();
            display_attribute( 0,1,0 );
            display_string(sysMsg[28]); 
            get_device_id(tmpBuf);
            bcdArray_to_asciiArray(tmpBuf,DevAscii,3);
            DevAscii[6] = 0;
            display_attribute( 0,2,0 );
            display_string(DevAscii);
        }
        //第一次进入界面时要获取设备号      
        return (get_deviceNum());        
    }

    if (nMenuIndex == 1)
    {
        key = get_key();
        switch (key)
        {
            case KEY_CODE_NUM0:
                input_devNum(0);
                break;
    
            case KEY_CODE_NUM1:
                input_devNum(1);
                break;

            case KEY_CODE_NUM2:
                input_devNum(2); 
                break;

            case KEY_CODE_NUM3:
                input_devNum(3); 
                break;

            case KEY_CODE_NUM4:
                input_devNum(4); 
                break;

            case KEY_CODE_NUM5:
                input_devNum(5); 
                break;

            case KEY_CODE_NUM6:
                input_devNum(6);  
                break;

            case KEY_CODE_NUM7:
                input_devNum(7);
                break;

            case KEY_CODE_NUM8:
                input_devNum(8);
                break;

            case KEY_CODE_NUM9:
                input_devNum(9);  
                break;
            
            case KEY_CODE_ESC:
                if (device_time == 0)
                {
                    nMenuIndex = 0;
                    return PREVIEW_MENU;
                }
                if ((device_time > 0) && (device_time < 7))
                {
                    display_attribute( device_time,2,0 );
                    display_string(" "); 
                    device_time = device_time - 1;
                    deviceNum[device_time] = 0;
                    return NOCHANGE_MENU;
                }
                break;
        
            case KEY_CODE_ENTER:
                asciiArray_to_bcdArray(deviceNum,tmpBuf,3);
                set_device_id(tmpBuf);
                return PREVIEW_MENU;
                break;

            case KEY_CODE_NO:
                return NOKEY_MENU;
                break;

            default:
                return NOCHANGE_MENU;
                break;
        }
    }
} 

#define PROGRAM_MAINHOST 3//主机程序
#define PROGRAM_TERM 2//终端程序

/*语音/程序更新菜单*/
char menu44Process(char FlashLcd)
{
    char key;

    if (FlashLcd == FLASH_SCREEN)
        comm_menu(sysMsg[30],sysMsg[31], NULL, NULL);//,sysMsg[32]);

    key = get_key();
    switch (key)
    {
        case KEY_CODE_NUM1:/*更新语音*/
            return NEXT_MENU1;
            break;

        case KEY_CODE_NUM2:/*更新程序*/
            return NEXT_MENU2;
            break;

//        case KEY_CODE_NUM3:/*终端程序更新*/
//            return NEXT_MENU3;
 //           break;
        
//        case KEY_CODE_NUM4:/*主机程序更新*/
//            return NEXT_MENU4;
//            break;
      
        case KEY_CODE_ESC:
        case KEY_CODE_ENTER:
            return PREVIEW_MENU;
            break; 

        case KEY_CODE_NO:
            return NOKEY_MENU;
            break;

        default:
            return NOCHANGE_MENU;
            break; 
    }
}

//USB下载,选择线路后按键操作处理
void menu_USBdownload_voice(Byte lineNum)
{
    Uint16 status;

    lcd_clear_srceen();
    display_attribute( 0,1,0 );
    display_string(sysMsg[20]); 
    display_attribute( 0,2,0 );
    display_string(sysMsg[21]);
    status = readserial_toflash(lineNum);
    if (status == 1)
    {
        lcd_clear_srceen();
        display_attribute( 0,1,0 );
        display_string(sysMsg[35]);
        display_attribute( 0,2,0 );
        display_string(sysMsg[36]);
        nMenuIndex = 1;
    }
    else
    {   //上传成功
        lcd_clear_srceen();
        display_attribute( 0,1,0 );
        display_string(sysMsg[37]);
        nMenuIndex = 1;
    }
}


/*USB更新终端程序菜单*/
char update_terminalProgram(char FlashLcd)
{
    char key; 
    key = get_key();
    if (FlashLcd == FLASH_SCREEN)
    {
        Byte nTmp;
        lcd_clear_srceen();
        display_attribute( 0,1,0 );
        display_string("正在下载..."); 
        nTmp = readserial_to_termProgram(PROGRAM_TERM);
        lcd_clear_srceen();
        display_attribute( 0,1,0 );
        if (1 == nTmp)
            display_string("U盘类型错误,更新程序失败"); 
        else
            display_string("U盘中数据错误,请重新下载U盘");
         return NOCHANGE_MENU;
    }
    switch (key)
    {   
    case KEY_CODE_ESC:
    case KEY_CODE_ENTER:
        return PREVIEW_MENU;
        break;
    case KEY_CODE_NO:
        return NOKEY_MENU;
        break;
    default:
        return NOCHANGE_MENU;
    }
}

/*USB更新主机程序菜单*/
char update_mainProgram(char FlashLcd)
{
/*    char key; 
    Byte nValue;
    key = get_key();
    if (FlashLcd == FLASH_SCREEN)
    {
        lcd_clear_srceen();
        display_attribute( 0,1,0 );
        display_string("正在下载..."); 
        nValue = readserial_to_hostProgram(PROGRAM_MAINHOST);
        lcd_clear_srceen();
        display_attribute( 0,1,0 );
        if (2 == nValue)
            display_string("更新程序成功"); 
        else if (1 == nValue)
            display_string("更新程序失败");
        else//return 3
            display_string("U盘中数据错误,请重新下载U盘");
         return NOCHANGE_MENU;
    }
    switch (key)
    {   
    case KEY_CODE_ESC:
    case KEY_CODE_ENTER:
        return PREVIEW_MENU;
        break;
    case KEY_CODE_NO:
        return NOKEY_MENU;
        break;
    default:
        return NOCHANGE_MENU;
    }*/
}


char update_voiceByUSB(char FlashLcd)
{
    char key; 
    static Byte USB_lineNum;//记录选择的线路号
    unsigned char i,j,k;

    key = get_key();
    if (nMenuIndex == 1)
    {   //上传成功
        if ((key == KEY_CODE_ESC) || (key == KEY_CODE_ENTER))
        {
            nMenuIndex = 0;
            USB_lineNum = 0;
            return PREVIEW_MENU;
        }
        if (key == KEY_CODE_NO)
            return NOKEY_MENU;
        else 
            return NOCHANGE_MENU;
    }
    
    if (FlashLcd == FLASH_SCREEN)
    {   //显示线路号,供用户选择下载线路
        lcd_clear_srceen();
        k = 8;
        if (k < 14)
        {
            for (i = 0;i < 6;i ++)
            {
                if (i < 4)
                {
                    display_attribute( 0,i,0 );
                    display_string(runSet[k]);
                }
                else 
                {
                    j = i - 4;
                    display_attribute( 8,j,0 );
                    display_string(runSet[k]);
                }
                k ++;
            }
        }    
    }

    switch (key)
    {
        case KEY_CODE_NUM1:
            display_attribute( 0,0,1 );
            display_string("1");
            USB_lineNum = 1;
            break;

        case KEY_CODE_NUM2:
            display_attribute( 0,1,1 );
            display_string("2");
            USB_lineNum = 2;
            break;

        case KEY_CODE_NUM3:
            display_attribute( 0,2,1 );
            display_string("3");
            USB_lineNum = 3;
            break;

        case KEY_CODE_NUM4:
            display_attribute( 0,3,1 );
            display_string("4");
            USB_lineNum = 4;
            break;

        case KEY_CODE_NUM5:
            display_attribute( 8,0,1 );
            display_string("5");
            USB_lineNum = 5;
            break;

        case KEY_CODE_NUM6:
            display_attribute( 8,1,1 );
            display_string("6");
            USB_lineNum = 6;
            break;

        case KEY_CODE_ESC:
            USB_lineNum = 0;
            nMenuIndex = 0;
            return PREVIEW_MENU;
            break;

        case KEY_CODE_ENTER:
            if (0 != USB_lineNum)
                menu_USBdownload_voice(USB_lineNum);
            return NOCHANGE_MENU;
            break;

        case KEY_CODE_NO:
            return NOKEY_MENU;
            break;

        default:
            return NOCHANGE_MENU;
            break;
    }
    return  NOCHANGE_MENU;
}
        
  
    
/*串口语音更新菜单*/
unsigned char update_1s = 0,update_row = 12; 
char update_voiceBySerialInterface(char FlashLcd)
{
/*    char key;
    FORMAT_BUFFER *format;

    if (0 == nMenuIndex)
    {      
        nMenuIndex = 1;
        set_formatbuffer_status(RESPONSE_WAITING);
        inter_uart_init(1);
    } 
    if (FlashLcd == FLASH_SCREEN)
    {
        lcd_clear_srceen();
        display_attribute( 0,1,0 );
        display_string(sysMsg[XT_YYZZGX]);
    }
            
    format = get_format_buffer();
    switch (format -> status)  
    {
        case RESPONSE_VALID:
            lcd_clear_srceen();
            display_attribute( 0,1,0 );
            display_string(sysMsg[XT_YYGXCG]);
            inter_uart_init(0);
            set_formatbuffer_status(RESPONSE_NOUSE);
            break;
                
        case RESPONSE_WAITING:
            if (update_1s == 0)
            {
                update_1s = 1;
                start_glitter();
            }
            if(get_glitter_status() == GLITTER_ACTION)
            { 
                update_1s = 1;
                start_glitter();
                display_attribute( update_row,1,0 );        
                display_string(".");
                update_row ++;
                if (update_row == 16)
                {
                    display_attribute( 12,1,0 );        
                    display_string("    ");
                    update_row = 12;
                } 
            }
            nMenuIndex = 2;
            break;  
    
        case RESPONSE_FAILED:     
        case RESPONSE_TIMEOUT:
            lcd_clear_srceen();
            display_attribute( 4,1,0 );
            display_string(sysMsg[XT_GXSB]);
            inter_uart_init(0);
            set_formatbuffer_status(RESPONSE_NOUSE);
            break;
    
        case RESPONSE_NOUSE:
        default:
            break;
    }    

    key = get_key();
    switch (key)
    {
        case KEY_CODE_ESC:
            nMenuIndex = 0;
            inter_uart_init(0);
            update_1s = 0;
            return  PREVIEW_MENU;
            break;

        case KEY_CODE_ENTER:
            if (nMenuIndex == 2)
                return NOCHANGE_MENU;
            else
            {
                nMenuIndex = 0;
                inter_uart_init(0);
                update_1s = 0;
                return  PREVIEW_MENU;
            }

⌨️ 快捷键说明

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