深度解析:元宇宙养殖农业DAPP系统开发逻辑详细方案

简介: 深度解析:元宇宙养殖农业DAPP系统开发逻辑详细方案

源文件(dispatch.c):

u32 func_ChipCheck(u8 cmd_in, u8 cmd_out)
{

/*do something*/
PRINT_WARN("func %s,line num: %d, %p,%d!\r\n", __FUNCTION__, __LINE__, cmd_in, 2);
return (0);

}

u32 func_DataTrans(u8 cmd_in, u8 cmd_out)
{

/*do something*/
PRINT_WARN("func %s,line num: %d, %p,%d!\r\n", __FUNCTION__, __LINE__, cmd_in, 2);
return (0);

}
u32 func_DataSave(u8 cmd_in, u8 cmd_out)
{

/*do something*/
PRINT_WARN("func %s,line num: %d, %p,%d!\r\n", __FUNCTION__, __LINE__, cmd_in, 2);
return (0);

}
复制
建立索引关系,即functionlist中的功能接口和funcCodelist的接口名称一一对应起来,同时编写索引查找函数。在源文件进行定义:

pFunc functionlist[] = {

func_ChipCheck,
func_DataTrans,
func_DataSave,

};

u8 funcCodelist[] =
{

ChipCheck,
DataTrans,
DataSave,

};
/**

  • 功能接口的回调函数

*

  • @author KingBoy (2020/5/24)

*

  • @param p 被调用的函数
  • @param cmd_in 输入参数
  • @param cmd_out 输出参数

*

  • @return u32 0-success

*/
u32 dispath_callback(pFunc p, u8 cmd_in, u8 cmd_out)
{

u32 ret = 0;
ret = (*p)(cmd_in, cmd_out);
return (ret);

}
/**

  • 功能派发接口

*

  • @author KingBoy (2020/5/23)

*

  • @param cmd_ptr 输入输出:数据起始地址
  • @param cmd_len 输入输出:数据长度

*/
void function_dispatch(u8 cmd_ptr, u32 cmd_len)
{

int func_code;

func_code = getEnumIndex(*(cmd_ptr));
PRINT_WARN("func %s,line num: %d, %02x\r\n", __FUNCTION__, __LINE__, func_code);
if (func_code != -1)
{
    //用法1,直接定义函数数组后调用
    //functionlist[func_code](cmd_ptr, cmd_ptr);
    //用法2,使用回调函数进行处理
    dispath_callback(functionlist[func_code], cmd_ptr, cmd_ptr);
}
else
{
    PRINT_WARN("func %s,line num: %d, %02x\r\n", __FUNCTION__, __LINE__, func_code);
}

}
/**

  • 获取功能的索引位置

*

  • @author KingBoy (2020/5/23)

*

  • @param value 功能码值

*

  • @return int 索引位置,-1为未找到

*/
int getEnumIndex(u8 value)
{

int i = 0;
for (i = 0; i < sizeof(funcCodelist); i++)
{
    if (value == funcCodelist[i])
    {
        return (i);
    }
}
if (i >= sizeof(funcCodelist))
{
    return (ERR_NOFUNC);
}

return (0);

}
复制
function_dispatch即处理的函数,cmd_ptr将外部数据传入,根据第一个字节的取值决定是执行哪个功能函数((cmd_ptr)),在getEnumIndex中获得该功能的索引位置,如果查到的位置合法(不是-1),则调用回调函数dispath_callback并将需要调用的功能函数functionlist[func_code]传入,同时传入函数的参数(u8 cmd_in, u8 *cmd_out)。

对于相似的功能接口来说,可以选择直接调用(functionlistfunc_code)或者是回调函数调用(dispath_callback(functionlist[func_code], cmd_ptr, cmd_ptr);)两者的处理等价。

如果使用回调函数,当想要修改功能时,可以只在dispath_callback进行操作而不需要对底层进行修改。

相关文章
|
12月前
|
安全 虚拟化
在数字化时代,网络项目的重要性日益凸显。本文从前期准备、方案内容和注意事项三个方面,详细解析了如何撰写一个优质高效的网络项目实施方案,帮助企业和用户实现更好的体验和竞争力
在数字化时代,网络项目的重要性日益凸显。本文从前期准备、方案内容和注意事项三个方面,详细解析了如何撰写一个优质高效的网络项目实施方案,帮助企业和用户实现更好的体验和竞争力。通过具体案例,展示了方案的制定和实施过程,强调了目标明确、技术先进、计划周密、风险可控和预算合理的重要性。
280 5
|
9月前
|
安全 算法 网络协议
解析:HTTPS通过SSL/TLS证书加密的原理与逻辑
HTTPS通过SSL/TLS证书加密,结合对称与非对称加密及数字证书验证实现安全通信。首先,服务器发送含公钥的数字证书,客户端验证其合法性后生成随机数并用公钥加密发送给服务器,双方据此生成相同的对称密钥。后续通信使用对称加密确保高效性和安全性。同时,数字证书验证服务器身份,防止中间人攻击;哈希算法和数字签名确保数据完整性,防止篡改。整个流程保障了身份认证、数据加密和完整性保护。
|
10月前
|
数据可视化 前端开发 测试技术
接口测试新选择:Postman替代方案全解析
在软件开发中,接口测试工具至关重要。Postman长期占据主导地位,但随着国产工具的崛起,越来越多开发者转向更适合中国市场的替代方案——Apifox。它不仅支持中英文切换、完全免费不限人数,还具备强大的可视化操作、自动生成文档和API调试功能,极大简化了开发流程。
|
9月前
|
机器学习/深度学习 人工智能 自然语言处理
企业级API集成方案:基于阿里云函数计算调用DeepSeek全解析
DeepSeek R1 是一款先进的大规模深度学习模型,专为自然语言处理等复杂任务设计。它具备高效的架构、强大的泛化能力和优化的参数管理,适用于文本生成、智能问答、代码生成和数据分析等领域。阿里云平台提供了高性能计算资源、合规与数据安全、低延迟覆盖和成本效益等优势,支持用户便捷部署和调用 DeepSeek R1 模型,确保快速响应和稳定服务。通过阿里云百炼模型服务,用户可以轻松体验满血版 DeepSeek R1,并享受免费试用和灵活的API调用方式。
588 12
|
10月前
|
机器学习/深度学习 传感器 人工智能
穹彻智能-上交大最新Nature子刊速递:解析深度学习驱动的视触觉动态重建方案
上海交大研究团队在Nature子刊发表论文,提出基于深度学习的视触觉动态重建方案,结合高密度可拉伸触觉手套与视觉-触觉联合学习框架,实现手部与物体间力量型交互的实时捕捉和重建。该方案包含1152个触觉感知单元,通过应变干扰抑制方法提高测量准确性,平均重建误差仅1.8厘米。实验结果显示,其在物体重建的准确性和鲁棒性方面优于现有方法,为虚拟现实、远程医疗等领域带来新突破。
257 32
|
9月前
|
存储 人工智能 并行计算
2025年阿里云弹性裸金属服务器架构解析与资源配置方案
🚀 核心特性与技术创新:提供100%物理机性能输出,支持NVIDIA A100/V100 GPU直通,无虚拟化层损耗。网络与存储优化,400万PPS吞吐量,ESSD云盘IOPS达100万,RDMA延迟<5μs。全球部署覆盖华北、华东、华南及海外节点,支持跨地域负载均衡。典型应用场景包括AI训练、科学计算等,支持分布式训练和并行计算框架。弹性裸金属服务器+OSS存储+高速网络综合部署,满足高性能计算需求。
|
12月前
|
Java 开发者 Spring
Spring AOP深度解析:探秘动态代理与增强逻辑
Spring框架中的AOP(Aspect-Oriented Programming,面向切面编程)功能为开发者提供了一种强大的工具,用以将横切关注点(如日志、事务管理等)与业务逻辑分离。本文将深入探讨Spring AOP的底层原理,包括动态代理机制和增强逻辑的实现。
239 4
|
搜索推荐 C++
【初阶数据结构】深度解析七大常见排序|掌握底层逻辑与原理(一)
【初阶数据结构】深度解析七大常见排序|掌握底层逻辑与原理
156 5
|
搜索推荐 索引
【初阶数据结构】深度解析七大常见排序|掌握底层逻辑与原理(二)
【初阶数据结构】深度解析七大常见排序|掌握底层逻辑与原理
159 4
【初阶数据结构】深入解析队列:探索底层逻辑
【初阶数据结构】深入解析队列:探索底层逻辑

推荐镜像

更多
  • DNS