分享

这个工具,专为电气工程师准备的

 googplay 2024-04-26 发布于广东

前言

数据转换在软件开发,尤其是上位机开发中,应用非常广泛。

作为一个电气工程师出身,我刚开始学上位机的时候,常常因为弄不清楚各个数据类型之间的转换关系,而无法获取到自己想要的数据。

因此,为了让大家少走弯路,我开源了一个数据转换库的项目,把它放到gitee上,希望对大家有所帮助。

大纲

整个数据转换库总共包含15个类,囊括了常用的各种数据类型之间的互相转换,具体如下图所示:

图片

每个数据转换类中的所有方法都增加了注释,如下所示,这样大家使用起来会更加方便。

        /// <summary>
        /// 根据起始地址和长度自定义截取字节数组
        /// </summary>
        /// <param name="data">字节数组</param>
        /// <param name="start">开始字节</param>
        /// <param name="length">截取长度</param>
        /// <returns>字节数组</returns>
        [Description("根据起始地址和长度自定义截取字节数组")]
        public static byte[] GetByteArrayFromByteArray(byte[] data, int start, int length)
        {
            if (start < 0) throw new ArgumentException("开始索引不能为负数");

            if (length <= 0) throw new ArgumentException("长度必须为正数");

            if (data.Length < (start + length)) throw new ArgumentException("字节数组长度不够或开始索引太大");

            byte[] result = new byte[length];

            Array.Copy(data, start, result, 0, length);

            return result;
        }

安装方法

安装方法有两种,一种是通过Nuget安装,在Nuget中搜索thinger.DataConvertLib,如下图所示:

图片

另外一种方式,可以直接通过Gitee获取源码,然后将dll文件和xml文件添加到项目中,进行使用。

Gitee链接:https:///fujiajin/thinger.cn.DataConvertTool

图片

使用方法

整个数据转换库包含上百种方法,但是大家不用担心,只要掌握了规律,使用起来很简单,下面以ByteArrayLib为例来介绍一下:

图片
类的名称是按照返回值来分类的,比如返回布尔值或者布尔数组,就使用BitLib,如果返回字节数组,就用ByteArrayLib,如果返回Short或Short数组,就用ShortLib,以此类推。
方法的名称是按照Get...From...来定义的,意思就是需要获取什么类型数据,通过什么类型的数据及其相关参数。

举例说明:

如果我们希望将字节数组转换成浮点数组,因为返回值是浮点数组,我们就可以使用FloatLib里的方法,然后通过调用GetFloatArrayFromByteArray这个方法来实现,基于VS强大的智能提示,我相信大家可以很容易上手。

图片

测试方法

这次还有一个重磅更新,就是基于反射和特性做了一个测试工具,直接运行效果如下:

图片

这上面罗列了通信库的所有的类和每个类对应的方法,每个类和方法都有对应的注释,然后通过表格输入正确的数据,点击执行结果,即可得到对应的结果。

举例说明:

图片

我们选择ByteArrayLib类中的GetByteArrayFromFloat方法,这个方法是将一个浮点数转换成一个字节数组,可以自己修改大小端,根据ABCD转换成了一个4个字节的字节数组,得到结果为[63,128,0,0]。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多