当前位置:首页 > 嵌入式 > 嵌入式云IOT技术圈
[导读]干货分享,值得收藏!

微信公众号:杨源鑫
关注可了解更多的教程及排版技巧。问题或建议,请公众号留言;
如果你觉得本公众号对你有帮助,欢迎赞赏!!

第一次用MarkDown写公众号文章,希望多多支持,技术也需要升级!

协议做如下规定

规定数据协议:

序列号    长度    状态字    数据长度   数据1   数据2    数据3

以空格作为数据单元。
例如:

00001 00007 1   3  34567 26358 32698   
 (1)   (2) (3) (4)  (5)   (6)   (7)

以上各个编号字段代表的基本含义如下:

(1)00001就是数字1,即代表序列号为1

(2)00007就是数字7,即代表长度为7

(3)1代表状态字

(4)3代表数字长度

(5)34567代表数据1

(6)26358代表数据2

(7)32698代表数据3

这样就找到规律了,假设数据都为整型或者负整型,我们就可以根据这个规则来实现以下代码:

#include 
#include 
#include 
//根据空格拆分字符串 
int partition(char *src, char *par, int pos)
{
  int i,j;
  i = pos;
  //取得一个非空字符 
  while(src[i] == ' ')
    ++i;
  if(src[i] != '\0')
  {
    j = 0;
    while((src[i] != '\0') && (src[i] != ' '))
    {
        //判断条件是否满足 
        if((src[i] > '9') || (src[i] < '0') && (src[i] != '-'))
            return -1 ;
      par[j] = src[i];
      ++i;
      ++j;
    }
    par[j]='\0';
    return i;
  }
  else
    return -1;
}

int main(void)
{
    int serial_number ;
    int lenght ;
    int status ;
    int data_length;
    int data1,data2,data3; 

    int position = 0;
    int para_flag = 1 ; 
    int parameter_item = 0;
    char partition_string[20] = {0};
    char *data = "00001 00007 1 3 34567 26358 32698"
    while(para_flag)
    {
        if(para_flag == 0)
            break ; 
        if((position = partition(data,partition_string,position)) != -1)
        {
            ++parameter_item ;
            switch(parameter_item)
            {
                case 1:
                    serial_number = atoi(partition_string);
                    break ;
                case 2:
                    lenght = atoi(partition_string);
                    break ;
                case 3:
                    status = atoi(partition_string);    
                    break ;
                case 4:
                    data_length = atoi(partition_string);   
                    break ;
                case 5:
                    data1 = atoi(partition_string); 
                    break ;
                case 6:
                    data2 = atoi(partition_string); 
                    break ;
                case 7
                    data3 = atoi(partition_string); 
                    para_flag = 0 ;
                    break ;
            }
        }
    }
    printf("序号:%d\n",serial_number);
    printf("长度:%d\n",lenght);
    printf("状态字:%d\n",status);
    printf("数据长度:%d\n",data_length);
    printf("数据1:%d\n",data1);
    printf("数据2:%d\n",data2);
    printf("数据3:%d\n",data3);
    return 0;   

运行结果:

另外,推荐一下韦东山老师的嵌入式课程:

移动互联网,人工智能,物联网等技术正在飞速发展,这都离不开嵌入式技术的支持,如果您想创业自己开发产品,韦东山老师的视频一定可以帮助您完成创客梦想。

[分享]韦东山嵌入式linux 第1期 ARM裸机实战
https://j.youzan.com/zRcvW9
[分享]韦东山嵌入式linux第2期  驱动大全
https://j.youzan.com/o3nvW9
[分享]韦东山嵌入式linux 第3期 项目实战
https://j.youzan.com/z0cvW9
[分享]韦东山第4期 Android系统视频
https://j.youzan.com/ifMlW9
[分享]韦东山嵌入式Linux arm 不带s3c2440开发板java入门视频
https://j.youzan.com/1VnvW9
[分享]韦东山嵌入式linux视频不带ARM9开发板c++入门 手把手指导
https://j.youzan.com/NdnvW9
[分享]韦东山嵌入式Linux SPI arm视频不带s3c2440开发板 手把手指导
https://j.youzan.com/xHcvW9
[分享]录制完毕韦东山嵌入式Linux视频JZ2440s3c2440开发板设备树详解
https://j.youzan.com/lmnvW9


免责声明:本文内容由21ic获得授权后发布,版权归原作者所有,本平台仅提供信息存储服务。文章仅代表作者个人观点,不代表本平台立场,如有问题,请联系我们,谢谢!

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭