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

📄 dialog.c

📁 Keil平台
💻 C
📖 第 1 页 / 共 2 页
字号:
//    TextOut( 0, 6, "结束", 0);
//    TextOut( 6, 6, NewAlarmStr(DlgLineBuf, Gui.page, 3), 0);
}
/****************************************************************************/
void OldAlmProc(uchar msg_type, uchar msg_data)
{
    int i = 1;
    switch (msg_type)
    {
    case MSG_INIT:
        i = GetOldAlarmCount();
        Dpage.max_size = i;
        if (i == 0)
            PageNumMax(i);
        else
            PageNumMax(i-1);
        PageNumEnd();
        break;
    case MSG_KEY:
        switch (msg_data)
        {
        case KEY_UP:    PageNumPrev();  break;
        case KEY_DOWN:  PageNumNext();  break;
        case KEY_LEFT:  PageNumHome();  break;
        case KEY_RIGHT: PageNumEnd();   break;
        case KEY_ESC:   PostMsg(MSG_CLOSE, 0);;   break;
        }
        LcdCls();
        msg_type = 0;
        msg_data = 0;
        break;
    case MSG_PAINT:
        i = GetOldAlarmCount();
        if (Dpage.max_size != i)
        {
            Dpage.max_size = i;
            PostMsg(MSG_INIT, 0);
        }
        if (i)
        {
            PageNumMax(i-1);
            TextOut(0, 0, "序号", 0);
            TextOut(6, 0, OldAlarmStr(DlgLineBuf, Gui.page, 0), 0);

            TextOut(0, 2, "类型", 0);
            for (i = 0; i <24; i++)
                DlgLineBuf[i] = ' ';

            DlgLineBuf[i] = '\0';
            TextOut(6, 2, DlgLineBuf, 0);
            TextOut(6, 2, OldAlarmStr(DlgLineBuf, Gui.page, 1), 0);

            TextOut( 0, 4, "开始", 0);
            TextOut( 6, 4, OldAlarmStr(DlgLineBuf, Gui.page, 2), 0);

            TextOut( 0, 6, "结束", 0);
            TextOut( 6, 6, OldAlarmStr(DlgLineBuf, Gui.page, 3), 0);
        }
        else
        {
            PageNumMax(i);
            TextOut(8, 2, "无历史告警", 0);
        }
        PageNumPut();
        break;
    case MSG_FOCUSMOVE:
        switch (msg_data)
        {
        case FOCUS_HOME:  PageNumHome(); break;
        case FOCUS_END:   PageNumEnd();  break;
        case FOCUS_PREV:  PageNumPrev(); break;
        case FOCUS_NEXT:  PageNumNext(); break;
        }
        //load old alarm from epprom
        msg_type = 0;
        msg_data = 0;
        break;
    default:    break;
    }
    DefaultWinProc(msg_type, msg_data);
}
/****************************************************************************/
/****************************************************************************/
int ComIbufsize(uchar port)
{
    return 5;
}
int ComIcount(uchar port)
{
    return 5;//Com[port].icount;
}

void PortibufProc(uchar msg_type, uchar msg_data)
{
    int i, j, y;
    int combuf_size, combuf_count;
    const CONTROL  *ctrl;
    ctrl = &Win[Gui.active_win].controls[Gui.active_ctrl];
    switch (msg_type)
    {
    case MSG_INIT:
        Dpage.sync_stop = 0;
        LcdCursorSize(8);
        Dpage.module = GetGuiModule();
        combuf_size  = ComIbufsize(0);
        Dpage.h_size = (LCD_HSIZE-1);
        Dpage.w_size = (LCD_WSIZE/2);
        Dpage.page_size = (LCD_WSIZE/2)*(LCD_HSIZE-1);
        PageNumMax(combuf_size/Dpage.page_size);
        break;
    case MSG_KEY:
        switch (msg_data)
        {
        case KEY_OK:  Dpage.sync_stop = !Dpage.sync_stop;     break;
        case KEY_UP:    PageNumPrev();  break;
        case KEY_DOWN:  PageNumNext();  break;
        case KEY_LEFT:  PageNumHome();  break;
        case KEY_RIGHT: PageNumEnd();   break;
        case KEY_ESC:   PostMsg(MSG_CLOSE, 0);;   break;
        }
        LcdCls();
        msg_type = 0;
        msg_data = 0;
        break;
    case MSG_FOCUSMOVE:
        break;
    case MSG_PAINT:
        combuf_size = ComIbufsize(0);
        combuf_count = ComIcount(0);
        Dpage.num = PageNum();
        Dpage.begin_posit = Dpage.page_size * Dpage.num;
        Dpage.end_posit = Dpage.begin_posit + Dpage.page_size;
        if (Dpage.end_posit > combuf_size)
        {
            Dpage.end_posit = combuf_size;
        }
        // ctrl->data_type is com
        // ctrl->data_index is potr buf index
        if (Dpage.sync_stop)
        {
            TextOut(5, 0, "PAUSE", FONT_SMALL);
        }
        else
        {
            TextOut(5, 0, "IN   ", FONT_SMALL);
            Dpage.cursor_posit = 5;//ComSyncIbuf(Dpage.module, &DlgTempBuf[0]);
            Dpage.cursor_posit = Dpage.cursor_posit & 0x7FFF;
        }
        if ( (Dpage.cursor_posit >= Dpage.begin_posit) && (Dpage.cursor_posit <= Dpage.end_posit) )
        {
            Dpage.data1 = Dpage.cursor_posit - Dpage.begin_posit;
            LcdCursorSize(8);
            LcdCursor(2 * (Dpage.data1%(Dpage.w_size)) ,1 + Dpage.data1/Dpage.w_size);
        }
        else
        {
            LcdCursorSize(0);
        }
        /* COMX IN CURSOR:BEGIN~END/SIZE 0/540*/
        TextOut(0, 0, "COM", FONT_SMALL);

        fix2s(Dpage.module+1, 0x10, &DlgLineBuf[0]);
        TextOut(3, 0, &DlgLineBuf[0], FONT_SMALL);

        fix2s(Dpage.cursor_posit, 0x30, &DlgLineBuf[0]);
        TextOut(11, 0, &DlgLineBuf[0], FONT_SMALL);
        TextOut(14, 0, ":", FONT_SMALL);
        fix2s(Dpage.begin_posit+1, 0x30, &DlgLineBuf[0]);
        TextOut(15, 0, &DlgLineBuf[0], FONT_SMALL);
        TextOut(18, 0, "~", FONT_SMALL);
        fix2s(Dpage.end_posit, 0x30, &DlgLineBuf[0]);
        TextOut(19, 0, &DlgLineBuf[0], FONT_SMALL);
        TextOut(22, 0, "/", FONT_SMALL);
        fix2s(combuf_size, 0x30, &DlgLineBuf[0]);
        TextOut(23, 0, &DlgLineBuf[0], FONT_SMALL);
        for (i = Dpage.begin_posit, y = 1, j = 0; i < Dpage.end_posit; i++)
        {
            b2hex(DlgTempBuf[i], &DlgLineBuf[j]);
            j += 2;
            if (j > (LCD_WSIZE - 1))
            {
                DlgLineBuf[j] = '\0';
                TextOut(0, y, &DlgLineBuf[0], FONT_SMALL);
                y++;
                j = 0;
             }
        }
        DlgLineBuf[j] = '\0';
        if(j)
        {
          TextOut(0, y, &DlgLineBuf[0], FONT_SMALL);
        }
//      msg_type = 0;
//      msg_data = 0;
        PageNumPut();
        break;
    default:                break;
    }
    DefaultWinProc(msg_type, msg_data);
}
/****************************************************************************/
void PortobufProc(uchar msg_type, uchar msg_data)
{
    int i, j, y;
    int combuf_size, combuf_count;
    const CONTROL  *ctrl;
    ctrl = &Win[Gui.active_win].controls[Gui.active_ctrl];
    switch (msg_type)
    {
    case MSG_INIT:
        Dpage.sync_stop = 0;
        LcdCursorSize(8);
        Dpage.module = GetGuiModule();
        combuf_size = 0;//ComObufsize(0);
        Dpage.h_size = (LCD_HSIZE-1);
        Dpage.w_size = (LCD_WSIZE/2);
        Dpage.page_size = (LCD_WSIZE/2)*(LCD_HSIZE-1);
        PageNumMax(combuf_size/Dpage.page_size);
        break;
    case MSG_KEY:
        switch (msg_data)
        {
        case KEY_OK:  Dpage.sync_stop = !Dpage.sync_stop;     break;
        case KEY_UP:    PageNumPrev();  break;
        case KEY_DOWN:  PageNumNext();  break;
        case KEY_LEFT:  PageNumHome();  break;
        case KEY_RIGHT: PageNumEnd();   break;
        case KEY_ESC:   PostMsg(MSG_CLOSE, 0);;   break;
        
        }
        LcdCls();
        msg_type = 0;
        msg_data = 0;
        break;
    case MSG_FOCUSMOVE:
        break;
    case MSG_PAINT:
        combuf_size = 0;//ComObufsize(0);
        combuf_count = 0;//ComOcount(0);
        Dpage.num = PageNum();
        Dpage.begin_posit = Dpage.page_size * Dpage.num;
        Dpage.end_posit = Dpage.begin_posit + Dpage.page_size;
        if (Dpage.end_posit > combuf_size)
        {
            Dpage.end_posit = combuf_size;
        }
        // ctrl->data_type is com
        // ctrl->data_index is potr buf index
        if (Dpage.sync_stop)
        {
            TextOut(5, 0, "PAUSE", FONT_SMALL);
        }
        else
        {
            TextOut(5, 0, "OUT  ", FONT_SMALL);
            Dpage.cursor_posit = 5;//ComSyncObuf(Dpage.module, &DlgTempBuf[0]);
            Dpage.cursor_posit = Dpage.cursor_posit & 0x7FFF;
        }
        if ( (Dpage.cursor_posit >= Dpage.begin_posit) && (Dpage.cursor_posit <= Dpage.end_posit) )
        {
            Dpage.data1 = Dpage.cursor_posit - Dpage.begin_posit;
            LcdCursorSize(8);
            LcdCursor(2 * (Dpage.data1%(Dpage.w_size)) ,1 + Dpage.data1/Dpage.w_size);
        }
        else
        {
            LcdCursorSize(0);
        }
        /* COMX OUT CURSOR:BEGIN~END/SIZE 0/540*/
        TextOut(0, 0, "COM", FONT_SMALL);
        fix2s(Dpage.module+1, 0x10, &DlgLineBuf[0]);
        TextOut(3, 0, &DlgLineBuf[0], FONT_SMALL);
        
        
        fix2s(Dpage.cursor_posit, 0x30, &DlgLineBuf[0]);
        TextOut(11, 0, &DlgLineBuf[0], FONT_SMALL);
        TextOut(14, 0, ":", FONT_SMALL);
        fix2s(Dpage.begin_posit+1, 0x30, &DlgLineBuf[0]);
        TextOut(15, 0, &DlgLineBuf[0], FONT_SMALL);
        TextOut(18, 0, "~", FONT_SMALL);
        fix2s(Dpage.end_posit, 0x30, &DlgLineBuf[0]);
        TextOut(19, 0, &DlgLineBuf[0], FONT_SMALL);
        TextOut(22, 0, "/", FONT_SMALL);
        fix2s(combuf_size, 0x30, &DlgLineBuf[0]);
        TextOut(23, 0, &DlgLineBuf[0], FONT_SMALL);
        for (i = Dpage.begin_posit, y = 1, j = 0; i < Dpage.end_posit; i++)
        {
            b2hex(DlgTempBuf[i], &DlgLineBuf[j]);
            j += 2;
            if (j > (LCD_WSIZE - 1))
            {
                DlgLineBuf[j] = '\0';
                TextOut(0, y, &DlgLineBuf[0], FONT_SMALL);
                y++;
                j = 0;
             }
        }
        DlgLineBuf[j] = '\0';
        if(j)
        {
            TextOut(0, y, &DlgLineBuf[0], FONT_SMALL);
        }
//      msg_type = 0;
//      msg_data = 0;
        PageNumPut();
        break;
    default:                break;
    }
    DefaultWinProc(msg_type, msg_data);
}
/****************************************************************************/
/****************************************************************************/
void CommandProc(uchar type)
{
    int newpassword;
    int renewpassword;
    switch (type)
    {
    case 0:
        PostMsg(MSG_CLOSE, 0);
        break;
    case 1://清除历史告警
        if (MsgBox("确认操作","清除历史告警?", MB_OKCANCEL))
        {
            AlarmClear();
            MsgBox("系统信息","历史告警清除完成", MB_OK);
        }
        break;
    case 2://初始化
        if (MsgBox("确认操作","系统参数初始化将为默认值", MB_OKCANCEL))
        {
            //SPutB(0, 'X');
//            InitModule();
            MsgBox("系统信息","操作完成,按复位键", MB_OK);
        }
        break;
    case 3://修改密码
        newpassword = GetModuleData(MODULE_JKMK|DATA_TEMP, 21, 0);
        renewpassword = GetModuleData(MODULE_JKMK|DATA_TEMP, 22, 0);
        if (newpassword == 0)
        {
            MsgBox("系统信息","密码不能为 0 ", MB_OK);
            break;
        }
        if (newpassword == renewpassword)
        {
            MsgBox("系统信息","密码修改成功", MB_OK);
            SetModuleData(MODULE_JKMK|DATA_MKCFG, 39, 0, newpassword);
            SaveModuleData(MODULE_JKMK|DATA_MKCFG, 39, 0);
            PostMsg(MSG_CLOSE, 0);

        }
        else
        {
            MsgBox("系统信息","两次输入新密码不同,请重新输入", MB_OK);
        }
        break;
    case 4:
        if (MsgBox("确认操作","清除用户密码?", MB_OKCANCEL))
        {
            SetModuleData(MODULE_JKMK|DATA_MKCFG, 39, 0, 0);
            SaveModuleData(MODULE_JKMK|DATA_MKCFG, 39, 0);
            MsgBox("系统信息","用户密码清除成功", MB_OK);
        }

        break;
    case 5:
        PostMsg(MSG_CLOSE, 0);
        break;
    case 6:        
        break;
    case 7:         //载入备份
        if (MsgBox("确认操作","载入系统参数备份", MB_OKCANCEL))
        {
            SaveModuleBak();
            MsgBox("系统信息","操作完成", MB_OK);
        }
        break;
    case 8:         //保存备份
        if (MsgBox("确认操作","系统参数保存到备份", MB_OKCANCEL))
        {
            LoadModuleBak();
            MsgBox("系统信息","操作完成", MB_OK);
        }
    case 9:         //保存备份为当前参数
        if (MsgBox("确认操作","保存全部系统参数", MB_OKCANCEL))
        {
            SaveModule();
            MsgBox("系统信息","操作完成", MB_OK);
        }
        break;
      break;
    case 10:
//        TranFrameTest(GetGuiModule());
        MsgBox("系统信息","测试报文已发送,请查看接收报文", MB_OK);
        break;
    case 11:
//        ComReset();
//        ComClearIbuf(GetGuiModule());
//        ComClearObuf(GetGuiModule());
        MsgBox("系统信息","缓冲区清除成功", MB_OK);
        break;
    default:break;

    }
}
/****************************************************************************/
/*
0   系统延时    
1   屏幕保护
2   均充周期时间
3   均充保护时间
4   稳流均充时间
5   转均充延时
6   电池测试时间
7   放电时间
*/



void TimeOut(uchar index)
{
    index =index;
    switch (index)
    {
    case 0:
        
        break;
    case 1:/*屏幕保护*/
        LcdOffLamp();
        break;
    case 2:/*均充周期*/
        break;
    case 3:/*均充保护周期*/
        break;
    case 4:/* 稳流均充时间*/
        break;
    case 5:/* 转均充延时*/
        break;
    case 6:/* 放电测试时间*/
        break;
    }
}
/****************************************************************************/
/****************************************************************************/

⌨️ 快捷键说明

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