前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >嵌入式开发的一个骚操作!

嵌入式开发的一个骚操作!

作者头像
李肖遥
发布于 2024-04-18 05:09:42
发布于 2024-04-18 05:09:42
12200
代码可运行
举报
运行总次数:0
代码可运行

目录

  • 1 映射表在串口数据解析中的应用
    • 1.1 数据结构
  • 1.2 指令、函数映射表
    • 1.3 串口解析函数实现
  • 2 映射表在UI设计中的应用
    • 2.1 数据结构
    • 2.2 函数映射表
    • 2.3 定义两个变量保存当前场景和上一个场景
    • 2.4 按下Up按键 跳转到指定场景current_stage的值根据映射表改变
    • 2.5 场景改变后 根据映射表执行相应的函数Handler

1 映射表在串口数据解析中的应用

1.1 数据结构

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
typedef struct 
{
    char CMD[CMDLen];
    unsigned char (*cmd_operate)(char *data);
}Usart_Tab;

1.2 指令、函数映射表

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
static const Usart_Tab InstructionList[CMDMax]=
{
    {"PWON",PowOn},
    {"PWOFF",PowOff},
    {"HDCP",HdcpOnOff},
    {"/V",QueryKaVersion},
    {"EDIDUpgrade",UpdataEDID},
    {"Psave",Psave},
    {"Precall",Precall},
    {"Pclear",Pclear},
};

1.3 串口解析函数实现

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
unsigned char DataAnalysis(char *buf)
{
  unsigned char i,Result;
  char *NEXT=NULL;
  for(i=0;i<CMDMax;i++)
  {
    NEXT=StrCmp(buf,(char*)InstructionList[i].CMD);
    if(NEXT!=NULL)
    {
      usartfuncp=InstructionList[i].cmd_operate;
      Result=(*usartfuncp)(NEXT);
    }
  }
  return Result;
}

2 映射表在UI设计中的应用

2.1 数据结构

菜单枚举:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
typedef enum
{
  stage1=0,
  stage2,
  stage3,
  stage4,
  stage5,
  stage6,
  stage7,
  stage8,
  stage9,
}SCENE;

数据结构:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
typedef struct {
  void (*current_operate)(); //当前场景的处理函数
  SCENE Index;               //当前场景的标签
  SCENE Up;                  //按下Up键跳转的场景
  SCENE Down;                //按下Down键跳转的场景
  SCENE Right;               //按下Left键跳转的场景
  SCENE Left;                //按下Right键跳转的场景
}STAGE_TAB;

2.2 函数映射表

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
STAGE_TAB stage_tab[]={
  #.    operate       Index    Up     Down    Left   Right   
  {Stage1_Handler,  stage1,  stage4,  stage7,  stage3, stage2},
  {Stage2_Handler,  stage2,  stage5,  stage8,  stage1, stage3},
  {Stage3_Handler,  stage3,  stage6,  stage9,  stage2, stage1},
  {Stage4_Handler,  stage4,  stage7,  stage1,  stage6, stage5},
  {Stage5_Handler,  stage5,  stage8,  stage2, stage4,  stage6},
  {Stage6_Handler,  stage6,  stage9,  stage3, stage5,  stage4},
  {Stage7_Handler,  stage7,  stage1,  stage4, stage9,  stage8},
  {Stage8_Handler,  stage8,  stage2,  stage5, stage7,  stage9},
  {Stage9_Handler,  stage9,  stage3,  stage6, stage8,  stage7},
};

2.3 定义两个变量保存当前场景和上一个场景

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
char current_stage=stage1;
char prev_stage=current_stage;

2.4 按下Up按键 跳转到指定场景current_stage的值根据映射表改变

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
current_stage =stage_tab[current_stage].Up;

2.5 场景改变后 根据映射表执行相应的函数Handler

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
if(current_stage!=prev_stage)
{
  stage_tab[current_stage].current_operate();
  prev_stage=current_stage;
}

文章来源:物联网IoT技术

版权声明:本文来源网络,免费传达知识,版权归原作者所有。如涉及作品版权问题,请联系我进行删除。

‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧ END ‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-04-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 技术让梦想更伟大 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
『学习笔记』Nginx 基础入门与配置详解
🎈今日推荐——https://cloud.tencent.com/developer/article/2469533
数字扫地僧
2024/11/23
2030
『学习笔记』Nginx 基础入门与配置详解
基于银河麒麟系统部署 Nginx(常见问题总结,建议收藏保存!)
在当今的互联网时代,Nginx 作为一款高性能的 Web 服务器和反向代理服务器,因其轻量级、高并发处理能力和灵活的配置而被广泛应用于各种 Web 应用场景。银河麒麟操作系统(Kylin OS)作为一款国产操作系统,以其稳定性和安全性在众多领域得到了广泛应用。本文将详细介绍如何在银河麒麟操作系统上部署 Nginx,包括安装、配置、优化以及常见问题的排查与解决,帮助读者快速掌握在银河麒麟系统上部署 Nginx 的全过程。
全干程序员demo
2025/04/18
3400
基于银河麒麟系统部署 Nginx(常见问题总结,建议收藏保存!)
Nginx技术全面解析:从基础到高级应用
大家好,我是腾讯云开发者社区的 Front_Yue,本篇文章将针对Nginx的性能优化和高级配置进行详细介绍。
Front_Yue
2024/01/21
9581
Nginx技术全面解析:从基础到高级应用
『学习笔记』使用 Nginx 作为反向代理服务器详细配置指引
🎈今日推荐——https://cloud.tencent.com/developer/article/2470059
数字扫地僧
2024/11/24
1.6K0
『学习笔记』使用 Nginx 作为反向代理服务器详细配置指引
Nginx 总结
如果是使用了两层或以上cdn(使用了cdn和web防火墙也适用),那么在nginx的配置文件http{}字段中加入
yiyun
2022/04/01
2820
Nginx学习笔记
Nginx(Engine X)是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP代理服务器。由于其高并发处理能力、低内存占用、模块化设计和高可配置性,Nginx被广泛应用于现代互联网架构中。
九转成圣
2024/06/08
1670
Nginx-基础总结(上)
1.proxy_set_header :在将客户端请求发送给后端服务器之前,更改来自客户端的请求头信息。 2.proxy_connect_timeout:配置Nginx与后端代理服务器尝试建立连接的超时时间。 3.proxy_read_timeout : 配置Nginx向后端服务器组发出read请求后,等待相应的超时时间。 4.proxy_send_timeout:配置Nginx向后端服务器组发出write请求后,等待相应的超时时间。 5.proxy_redirect :用于修改后端服务器返回的响应头中的Location和Refresh。
云计算小黑
2022/12/28
4550
nginx代理详细讲解
西里网
2025/03/25
2030
使用Nginx反向代理做小偷站
本教程适用于军哥的LNMP。 下面介绍的是反代别人的网站(类似于小偷),并替换相关内容 1.编译nginX cd /root apt-get update apt-get install -y git gcc g++ make automake #安装依赖包,Centos将apt-get更改为yum git clone https://github.com/yaoweibin/ngx_http_substitutions_filter_module wget http://nginx.org/downlo
用户2135432
2018/06/04
3K0
前端开发者必备:Nginx入门实战宝典,从部署到优化一网打尽
Nginx,正确发音为"engine-x",诞生于2004年,由俄罗斯程序员Igor Sysoev匠心打造。它迅速崛起为互联网基础架构中的关键技术组件。
空白诗
2024/06/14
1.5K0
前端开发者必备:Nginx入门实战宝典,从部署到优化一网打尽
如何在Ubuntu 18.04上部署Odoo 11
Odoo是世界上最受欢迎的一体化商业软件,包含CRM,网站,电子商务,计费,会计,制造,仓库,项目管理,库存等多种商业应用程序,无缝地 集成。
星哥玩云
2022/07/13
2.1K0
如何在Ubuntu 18.04上部署Odoo 11
linux安装nginx以及nginx常用配置
Nginx是一款高性能的Web服务器和反向代理服务器。它具有轻量级、高并发和低资源消耗的特点,越来越受到广泛的关注和应用。
玖叁叁
2023/04/10
3K0
使用 Nginx 和 Apache2 配置反向代理
反向代理是一种服务器配置方式,用来代理和转发客户端的请求到后端服务器上。它可以在负载均衡、缓存、加速、安全性等方面提供帮助。常见的反向代理服务器有 Nginx 和 Apache2。本文将详细讲解如何使用 Nginx 和 Apache2 来配置反向代理,将请求代理到不同的端口或服务器上。
alanzeng
2025/01/14
4190
如何在 CentOS 8 上安装 Odoo 13
Odoo 是世界上最流行的多功能商业软件。它提供了一系列商业应用程序,包括 CRM,网站,电子商务,账单,账户,工业制造,仓库,项目管理,库存管理,等等,所有的东西都无缝集成。
雪梦科技
2020/05/11
4.1K0
如何在 CentOS 8 上安装  Odoo 13
nginx 安装和使用
**清除缓存** 缓存文件是根据proxy_cache_key` 这个指令生成的,所以找到对应的缓存文件,删除即可
chuchur
2022/10/25
1.1K0
关于反向代理的两种实践方式
配置多网址重定向到主网址,比如访问 simple.com 跳转到 www.simple.com
乐心湖
2021/01/18
1.1K0
Google Map api国内正常使用该如何配置(2021最新)
最近有客户要求给他们网站做地图方面的功能,由于某些原因,网站必须使用google map,而且希望用到geocoding。大家知道google map api调用国内已经访问不了,虽然网上有很多教程,什么替换ip啊,把maps.google.com改成maps.google.cn。但其实这些方法都是掉了牙的,早就不管用。
仙士可
2021/03/08
7K1
Google Map api国内正常使用该如何配置(2021最新)
后端开发人员必备的一份NGINX学习清单
作为一名服务端研发工程师,接触服务器的时间也比较多。在项目对外提供服务,我们一般会使用NGINX来提供对外的服务,因此NGINX的操作也非常多,这就需要我们对NGINX比较熟悉,因此特意整理了一份相对完善的清单。
兔云小新LM
2024/06/29
1840
Nginx 使用详解:搭建高性能的 Web 服务器
在互联网的世界里,Web 服务器是我们访问网站、获取信息的入口。Nginx(发音"engine x")作为一款轻量级、高性能的 Web 服务器和反向代理服务器,因其出色的性能和可扩展性而备受推崇。本文将围绕 Nginx 的使用进行详解,让你轻松掌握如何搭建高性能的 Web 服务器。
繁依Fanyi
2024/01/02
2.2K0
Nginx 配置
在了解具体的Nginx配置项之前我们需要对于Nginx配置文件的构成有所概念,一般来说,Nginx配置文件会由如下几个部分构成:
一滴水的眼泪
2020/09/24
1.9K0
相关推荐
『学习笔记』Nginx 基础入门与配置详解
更多 >
LV.1
这个人很懒,什么都没有留下~
目录
  • 目录
  • 1 映射表在串口数据解析中的应用
    • 1.1 数据结构
  • 1.2 指令、函数映射表
    • 1.3 串口解析函数实现
  • 2 映射表在UI设计中的应用
    • 2.1 数据结构
    • 2.2 函数映射表
    • 2.3 定义两个变量保存当前场景和上一个场景
    • 2.4 按下Up按键 跳转到指定场景current_stage的值根据映射表改变
    • 2.5 场景改变后 根据映射表执行相应的函数Handler
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档