生成ASICII码用于命令反馈

简介: 生成ASICII码用于命令反馈

说明

Sprintf 功能 把格式化的数据写入某个字符串缓冲区。

头文件

stdio.h

原型

int sprintf( char buffer, const charformat, [ argument] … );

转换字符

%% 印出百分比符号,不转换。

%c 整数转成对应的 ASCII 字元。

%d 整数转成十进位。

%f 倍精确度数字转成浮点数。

%o 整数转成八进位。

%s 整数转成字符串。

%x 整数转成小写十六进位。

%X 整数转成大写十六进位


代码


void SendRepayPacket(char*replay_cmd,unsigned int pCmdData)
{ unsignedchar pPacket[20];
unsignedshort wdLen = 0;
     unsignedchar btCheckSum = 0;
     unsignedchar i;
     unsignedchar pCmdData_buffer[20];
     unsignedshort sendBufferLen = 0;
     sprintf(pCmdData_buffer,"%s,%d,",replay_cmd,pCmdData);
     wdLen= strlen(pCmdData_buffer);
     pPacket[0]= DALI_STX;
     pPacket[1]= (wdLen + 1) & 0xFF;
     pPacket[2]= (wdLen + 1) >> 8;
     pPacket[3]= Address;
     for(i= 0;i<wdLen;i++)
     {
               pPacket[4+ i] = pCmdData_buffer[i];
     }       
     for(i=0;i< wdLen;i++)
     {
               btCheckSum+= pCmdData_buffer[i];
     }
     pPacket[4+ wdLen] = btCheckSum;
     pPacket[5+ wdLen] = DALI_ETX;
     sendBufferLen= wdLen + 5 + 1;
     MAX3485_UART_SendData(pPacket,sendBufferLen);
}



void SendRepayPacket_2(char*replay_cmd,unsigned int pCmdData,unsigned int pCmdData1)
{ unsignedchar pPacket[20];
unsignedshort wdLen = 0;
     unsignedchar btCheckSum = 0;
     unsignedchar i;
     unsignedchar pCmdData_buffer[20];
     unsignedshort sendBufferLen = 0;
     sprintf(pCmdData_buffer,"%s,%d,%d,",replay_cmd,pCmdData,pCmdData1);
     wdLen= strlen(pCmdData_buffer);
     pPacket[0]= DALI_STX;
     pPacket[1]= (wdLen + 1) & 0xFF;
     pPacket[2]= (wdLen + 1) >> 8;
     pPacket[3]= Address;
     for(i= 0;i<wdLen;i++)
     {
               pPacket[4+ i] = pCmdData_buffer[i];
     }       
     for(i=0;i< wdLen;i++)
     {
               btCheckSum+= pCmdData_buffer[i];
     }
     pPacket[4+ wdLen] = btCheckSum;
     pPacket[5+ wdLen] = DALI_ETX;
     sendBufferLen= wdLen + 5 + 1;
     MAX3485_UART_SendData(pPacket,sendBufferLen);
}


目录
打赏
0
0
1
0
2
分享
相关文章
DolphinScheduler2.x 伪分布式部署
DolphinScheduler2.x 伪分布式部署
259 0
WPF MVVM系统入门-上
本文详细讲解WPF,MVVM开发,实现UI与逻辑的解耦。
315 0
《Java工程师必读手册》——Java极客主义系列——Java函数优雅之道(8)
《Java工程师必读手册》——Java极客主义系列——Java函数优雅之道(8)
163 0
Linux 是如何管理内存的?(二)
Linux 内存管理模型非常直接明了,因为 Linux 的这种机制使其具有可移植性并且能够在内存管理单元相差不大的机器下实现 Linux,下面我们就来认识一下 Linux 内存管理是如何实现的。
119 0
Linux 是如何管理内存的?(二)
好客租房28-state和this.setState(this.setState修改状态)
好客租房28-state和this.setState(this.setState修改状态)
143 0
Java:前程似锦的 NIO 2.0(二)
Java 之所以能够霸占编程语言的榜首,其强大、丰富的类库功不可没,几乎所有的编程问题都能在其中找到解决方案。但在早期的版本当中,输入输出(I/O)流并不那么令开发者感到愉快: 1)JDK 1.4 之前的 I/O 没有缓冲区的概念、不支持正则表达式、支持的字符集编码有限等等; 2)JDK 1.4 的时候引入了非阻塞 I/O,也就是 NIO 1.0,但遍历目录很困难,不支持文件系统的非阻塞操作等等。 为了突破这些限制,JDK 1.7 的时候引入了新的 NIO,也就是本篇文章的主角——NIO 2.0。
ECS使用体验
我是金融工程专业的大二学生,初次接触阿里云服务器ECS,在使用过程中遇到了一些困难,但成功解决,使用体验收获颇丰。
Android——工具对话框
一,日期对话框            代码:   //日期时间对话框 //获得时间相关实例,目的是为了初始化日期选择对话框弹出来的初始时间 Calendar calender=Calendar.
1095 0
2025年最新版最细致Maven安装与配置指南(任何版本都可以依据本文章配置)
本文详细介绍了Maven的项目管理工具特性、安装步骤和配置方法。主要内容包括: Maven概述:解释Maven作为基于POM的构建工具,具备依赖管理、构建生命周期和仓库管理等功能。 安装步骤: 从官网下载最新版本 解压到指定目录 创建本地仓库文件夹 关键配置: 修改settings.xml文件 配置阿里云和清华大学镜像仓库以加速依赖下载 设置本地仓库路径 附加说明:包含详细的配置示例和截图指导,适用于各种操作系统环境。 本文提供了完整的Maven安装和配置
2025年最新版最细致Maven安装与配置指南(任何版本都可以依据本文章配置)
AI助理
登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问

你好,我是AI助理

可以解答问题、推荐解决方案等