2163|0

108

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

【TI首届低功耗设计大赛】智能手表之短信功能实现 [复制链接]

本帖最后由 zhanghuichun 于 2014-11-15 19:39 编辑

/*
        短信的界面
        */

void GUI_Message(void)
{
        WM_HWIN hButton1;
        WM_HWIN hButton2;
        WM_HWIN hButton3;
        WM_HWIN hButton4;
        WM_HWIN hText1;
        WM_HWIN hText2;
        WM_HWIN hText3;
        WinPara.hMessage = WM_CreateWindowAsChild(0, 0,
                                                                                                                                                                                WinPara.xSizeWin, WinPara.ySizeWin,
                                                                                                                                                                                WinPara.hWinMain,
                                                                                                                                                                                WM_CF_SHOW | WM_CF_STAYONTOP,
                                                                                                                                                                                _cbMessage, 0);
               
        
        hButton1 = BUTTON_CreateEx(20, 5,
                                                                                                                90, 30,
                                                                                                                WinPara.hMessage,
                                                                                                                WM_CF_SHOW, 0, GUI_ID_BUTTON1);
        
        BUTTON_SetText(hButton1,"New Message");
        BUTTON_SetSkin(hButton1, BUTTON_SKIN_FLEX);        
        
        hButton2 = BUTTON_CreateEx(130, 5,
                                                                                                                90, 30,
                                                                                                                WinPara.hMessage,
                                                                                                                WM_CF_SHOW, 0, GUI_ID_BUTTON2);
        
        BUTTON_SetText(hButton2,"EXIT");
        BUTTON_SetSkin(hButton2, BUTTON_SKIN_FLEX);        
        
        hButton3 = BUTTON_CreateEx(20, 265,
                                                                                                                90, 30,
                                                                                                                WinPara.hMessage,
                                                                                                                WM_CF_SHOW, 0, GUI_ID_BUTTON3);
        BUTTON_SetText(hButton3,"Last");
        BUTTON_SetSkin(hButton3, BUTTON_SKIN_FLEX);
        
        hButton4 = BUTTON_CreateEx(130, 265,
                                                                                                                90, 30,
                                                                                                                WinPara.hMessage,
                                                                                                                WM_CF_SHOW, 0, GUI_ID_BUTTON4);
                                                                                                               
        BUTTON_SetText(hButton4,"Next");
        BUTTON_SetSkin(hButton4, BUTTON_SKIN_FLEX);
        
        
        hText1 = TEXT_CreateEx(10, 45,
                                                                                                WinPara.xSizeWin-20, 40,
                                                                                                WinPara.hMessage,
                                                                                                WM_CF_SHOW,
                                                                                                TEXT_CF_LEFT|TEXT_CF_VCENTER,
                                                                                                GUI_ID_TEXT1,
                                                                                                "Time:");
        TEXT_SetTextColor(hText1, GUI_WHITE);
        
        hText2 = TEXT_CreateEx(10, 85,
                                                                                                WinPara.xSizeWin-20, 40,
                                                                                                WinPara.hMessage,
                                                                                                WM_CF_SHOW,
                                                                                                TEXT_CF_LEFT|TEXT_CF_VCENTER,
                                                                                                GUI_ID_TEXT2,
                                                                                                "Number:");
        TEXT_SetTextColor(hText2, GUI_WHITE);

        hText3 = TEXT_CreateEx(10, 125,
                                                                                                WinPara.xSizeWin-20, 70,
                                                                                                WinPara.hMessage,
                                                                                                WM_CF_SHOW,
                                                                                                TEXT_CF_LEFT|TEXT_CF_TOP,
                                                                                                GUI_ID_TEXT3,
                                                                                                "Text:");
                                                                                       
        TEXT_SetTextColor(hText3, GUI_WHITE);
        
        
}
/*
        短信界面的回调函数
        */
static void _cbMessage(WM_MESSAGE * pMsg)
{
        WM_HWIN hWin;
        WM_HWIN hButton;
        WM_HWIN hText;
        int xSize,ySize;
        
        int Id,NCode;
        
        
        hWin = pMsg->hWin;
        switch (pMsg->MsgId)
        {
                case WM_NOTIFY_PARENT:
                        Id    = WM_GetId(pMsg->hWinSrc);
                        NCode = pMsg->Data.v;
        
                        if(NCode == WM_NOTIFICATION_RELEASED )
                        {               
                                if(Id == GUI_ID_BUTTON1)                                      
                                {                                
                                        GUI_NewMessage();
        
                                }
                                else if(Id == GUI_ID_BUTTON2)                                      
                                {                                
                                        //lseek_num = 0;
                                        messagesnum = 0;
                                        WM_DeleteWindow(WinPara.hMessage);
                                }                                
                                else if(Id == GUI_ID_BUTTON3)                                      
                                {
                                        if(messagesnum > 0)
                                        {
                                                int addr = lseek_num[messagesnum - 1];
                                                char databuff[200];
                                                char utf8buff[200];
                                                
                                                messagesnum--;
                                                myres = f_open(&myfsrc, "0:/messages.txt", FA_READ | FA_OPEN_EXISTING);                                                
                                                
                                                f_lseek(&myfsrc, addr);
                                                
                                                        f_gets(databuff, sizeof(databuff), &myfsrc);
                                                        //USART_printf(USART1, "\r\n $%s$ \r\n", databuff);
                                                        hText = WM_GetDialogItem(pMsg->hWin, GUI_ID_TEXT1);
                                                        TEXT_SetText(hText, databuff);
                                                        addr += strlen(databuff) + 1;                                       
                                                        f_lseek(&myfsrc, addr);
                                                        
                                                        f_gets(databuff, sizeof(databuff), &myfsrc);
                                                        //USART_printf(USART1, "\r\n $%s$ \r\n", databuff);
                                                        hText = WM_GetDialogItem(pMsg->hWin, GUI_ID_TEXT2);
                                                        TEXT_SetText(hText, databuff);
                                                        addr += strlen(databuff) + 1;
                                                        f_lseek(&myfsrc, addr);
                                                        
                                                        f_gets(databuff, sizeof(databuff), &myfsrc);
                                                        //USART_printf(USART1, "\r\n $%s$ \r\n", databuff);
                                                        hText = WM_GetDialogItem(pMsg->hWin, GUI_ID_TEXT3);
                                                        
                                                        StrUnicodeToUTF8(databuff, utf8buff);
                                                        TEXT_SetText(hText, utf8buff);        
                                                        f_close(&myfsrc);        
                                        }
                                        else
                                        {
                                                GUI_MessageBox("No messages"," ",GUI_MESSAGEBOX_CF_MOVEABLE);
                                        }                                       
                                }
                                else if(Id == GUI_ID_BUTTON4)                                      
                                {                                
                                        char databuff[200];
                                        char utf8buff[200];
                                       
                                        myres = f_open(&myfsrc, "0:/messages.txt", FA_READ | FA_OPEN_EXISTING);
                                        lseek_num[0] = 0;
                                        f_lseek(&myfsrc, lseek_num[messagesnum]);
                                       
                                        if(!f_eof(&myfsrc))
                                        {
                                                int addr;
                                                
                                                f_gets(databuff, sizeof(databuff), &myfsrc);
                                                //USART_printf(USART1, "\r\n $%s$ \r\n", databuff);
                                                hText = WM_GetDialogItem(pMsg->hWin, GUI_ID_TEXT1);
                                                TEXT_SetText(hText, databuff);
                                                //lseek_num[messagesnum] += strlen(databuff) + 1;                                       
                                                addr = lseek_num[messagesnum] + strlen(databuff) + 1;                                       
                                                f_lseek(&myfsrc, addr);
                                                
                                                f_gets(databuff, sizeof(databuff), &myfsrc);
                                                //USART_printf(USART1, "\r\n $%s$ \r\n", databuff);
                                                hText = WM_GetDialogItem(pMsg->hWin, GUI_ID_TEXT2);
                                                TEXT_SetText(hText, databuff);
                                                addr += strlen(databuff) + 1;
                                                f_lseek(&myfsrc, addr);
                                                
                                                f_gets(databuff, sizeof(databuff), &myfsrc);
                                                //USART_printf(USART1, "\r\n $%s$ \r\n", databuff);
                                                hText = WM_GetDialogItem(pMsg->hWin, GUI_ID_TEXT3);
                                                StrUnicodeToUTF8(databuff, utf8buff);
                                                TEXT_SetText(hText, utf8buff);
                                                //lseek_num[messagesnum] += strlen(databuff) + 1;
                                                lseek_num[messagesnum+1] = addr + strlen(databuff) + 1;                                       
                                                messagesnum++;
                                        }
                                        else
                                        {
                                                GUI_MessageBox("No messages"," ",GUI_MESSAGEBOX_CF_MOVEABLE);
                                        }
                                        f_close(&myfsrc);
                                }
                                
                        }        
                break;
        case WM_PAINT:
                //
    // Draw background
    //
                xSize = WM_GetWindowSizeX(hWin);
                ySize = WM_GetWindowSizeY(hWin);
                GUI_SetColor(GUI_DARKGRAY);
               
                GUI_FillRect(0,0,xSize,ySize);
        
                break;
        }
}
短信读取界面:

发送短信界面:


 
点赞 关注

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表