项目日志:Day30 --- 2020.9.11

本文探讨了5G技术在工业领域的广泛应用,特别是在智能设备和工业物联网方面的发展。作者在深圳国际电子展上观察到了5G技术的成熟应用,并在文中详细介绍了如何在嵌入式系统中解决空按OK键的问题,包括使用标志位和计算函数来优化输入流程。

任务:

  • 空按 OK 键处理;
  • 解决各种小 BUG;

上午

上午去深圳看了一下国际电子展
在这里插入图片描述
5G 在工业上的应用已经这么熟练了吗,很多智能设备以及工业物联网都打着 5G 的旗号了;
果然我们这还是小乡村呀,乡下人进城;


下午

解决一下 OK 键问题;

用一个标志位bool isOk = false; //判断是否输入了数值,以防止空按 OK 键;判断是否空按 OK 键;而且空按后要仍然触控该位置继续输入状态,所以输入判断中要保留当前触控位置;这里我把计算函数加了个参数,方便使用(加参确实好用很多),不然太死板,要加各种判断;

void CalculateLocation(u8 address2)     //通过返回的地址计算行和列;
{
    int row, col;
    row = (address2) / 16;      //用参数来决定是要触摸下一个地址所对应的坐标,还是重新触摸该地址坐标;
    col = (address2) % 16;

    Xh = (172 + col * 56) / 255;
    Xl = (172 + col * 56) % 255;
    Yh = (205 + row * 50) / 255;
    Yl = (205 + row * 50) % 255;
    Sdata_simulateTouch_data[10] = Xh;
    Sdata_simulateTouch_data[11] = Xl;
    Sdata_simulateTouch_data[12] = Yh;
    Sdata_simulateTouch_data[13] = Yl;

    return;
}
void isInput()
{
    int n = 72;

    while(n--) {
        if(code_state == 0) {       //若切换了页面则直接退出;
            isNeedJudge = true;
            break;
        }
        Send_Dwin(Read_input, 7);
        delay_ms(1);
        if(address1 == 0x80 && data == 1) {
            Read_input[5] = 0x00;
            Sdata_hidedata[4] = 0x51 + address2 / 16;
            Sdata_hidedata[5] = address2 % 16 * 0x10;
            Sdata_showdata[4] = Sdata_hidedata[4];
            Sdata_showdata[5] = Sdata_hidedata[5];
            Sdata_showdata[7] = (address2 - 1) * 0x02;        //这是解决了cancel的显示问题,要记录需要显示的地址;
            Send_Dwin(Sdata_hidedata, 8);
            CalculateLocation(address2 * 0x02);
            isOk = false;
            isNeedJudge = false;    //扫描到一个后就不需再扫描了;
            return;
        }
    
        Read_input[5]++;
    }

    Read_input[5] = 0x00;
    return;
}
    if (INT_H_KEY1 == 0)    //OK
    {
        delay_ms(10);

        if (INT_H_KEY1 == 0)
        {
            BEEP = 1;
            if(code_state == 1) {
                Send_Dwin(Sdata_simulateTouch_ok, 14);
            }
            while (!INT_H_KEY1)
                ;
            BEEP = 0;
            delay_ms(5);   //等待中断;

            if(isOk == false) {
                Send_Dwin(Sdata_simulateTouch_data, 14);
            }
            else if(code_state == 1 && isNeedJudge == false && isOk == true) {
                CalculateLocation(address2 + 2);
                
                //因为前面判断输入时隐藏了,所以这边要先加上;
                if(Sdata_hidedata[5] == 0xF0) {     
                    Sdata_hidedata[4] += 0x01;
                    Sdata_hidedata[5] = 0x00;
                }
                else {
                    Sdata_hidedata[5] += 0x10;
                }      
                Sdata_showdata[7] = address2;   //需要的显示的控件地址;
                Send_Dwin(Sdata_hidedata, 8);   //隐藏下一个显示控件;
                Send_Dwin(Sdata_simulateTouch_data, 14);
                Send_Dwin(Sdata_showdata, 8);
                if(Sdata_showdata[5] == 0xF0) {     //显示的越界处理;
                    Sdata_showdata[4] += 0x01;
                    Sdata_showdata[5] = 0x00;
                }
                else {
                    Sdata_showdata[5] += 0x10;
                }  
            
                isNeedJudge = false;
            }
        }

    }

这样就解决了空按问题,接下来就是上下滑动问题了,还有输入状态下的自动增加行,天呐,果然工程量超级大;


评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值