极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 12462|回复: 5

Arduino 各种数据序列化与反序列化的类库

[复制链接]
发表于 2015-2-5 23:35:10 | 显示全部楼层 |阅读模式
无论你通过什么途径通讯,都是数据的传输,但是当一次传的数据多了,发送前数据转为byte[],接收到后转回多个数据,会比较麻烦,因为一直使用C#开发,里面类的序列化与反序列化很方便,根据这个思路编了这个类库。
DataSerial类里包含了
BoolArray,ByteArray,CharArray,IntArray,LongArray,FloatArray,StringArray等类,分别对应不同的数据类型,
而每个子类包含了:
Add()//加入一个数据
Inser()//插入一个数据
Remove()//删除一个数据
Clear()//清除全部数据
Serialize()//序列化数据,就是生成Byte[]数组
Deserialize()//反序列化数据,就是Byte[]生成类的对象
还有其他方法就不列举了

DataSerial本身也包含这些方法,怎么用呢?
DataSerial ds1;//实例化
        ds1.BoolArray.Add(true);//增加
        ds1.BoolArray.Inser(false,1);//插入
        ds1.BoolArray.RemoveAt(1);//删除
        ds1.BoolArray.Add(true);
        ds1.BoolArray.Add(false);
        ds1.ByteArray.Add(11);
        ds1.ByteArray.Add(22);
        ds1.ByteArray.Add(33);
        ds1.ByteArray.Add(44);
        ds1.CharArray.Add('A');
        ds1.CharArray.Add('B');
        ds1.CharArray.Add('C');
        ds1.CharArray.Add('D');
        ds1.IntArray.Add(1111);
        ds1.IntArray.Add(2222);
        ds1.IntArray.Add(3333);
        ds1.IntArray.Add(4444);
        ds1.LongArray.Add(111111111);
        ds1.LongArray.Add(222222222);
        ds1.LongArray.Add(333333333);
        ds1.LongArray.Add(444444444);
        ds1.FloatArray.Add(1111.1111);
        ds1.FloatArray.Add(2222.2222);
        ds1.FloatArray.Add(3333.3333);
        ds1.FloatArray.Add(4444.4444);
        ds1.StringArray.Add("AAAA");
        ds1.StringArray.Add("BBBBBB");
        ds1.StringArray.Add("CCCCCCCC");
        ds1.StringArray.Add("DDDDDDDDDD");
        byte *bytea = ds1.Serialize();//序列化成 byte[]数据流了,可以发送出去
        ds1.Clear();

        DataSerial ds2;//接收方实例化对象
        ds2.Deserialize(bytea);//反序列化,现在上面ds1那堆数据都在ds2里了,可以逐个访问
水平不高,比较耗内存,在Arduino UNO里数据多就会丢失,内存小啊,才2K
Arduino DUE上很正常,需要的留邮箱
回复

使用道具 举报

发表于 2015-2-6 11:47:18 | 显示全部楼层
好東西要支持一下, 感謝分享.  
我的電郵: [email protected]
回复 支持 反对

使用道具 举报

发表于 2015-2-6 13:53:40 | 显示全部楼层
感谢分享。
我的电邮:[email protected]
回复 支持 反对

使用道具 举报

发表于 2015-2-6 19:53:23 | 显示全部楼层
楼主给力。感谢
[email protected]
回复 支持 反对

使用道具 举报

发表于 2015-2-7 11:10:14 | 显示全部楼层
楼主好人~
可是为什么一定要留邮箱才能给代码呢?上传到这里不是挺好的么?
[email protected]
回复 支持 反对

使用道具 举报

发表于 2015-7-27 11:08:48 | 显示全部楼层
求库~~~~
[email protected]
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-16 20:17 , Processed in 0.076613 second(s), 23 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表