原文:C#使用struct直接转换下位机数据

编写上位机与下位机通信的时候,涉及到协议的转换,比较多会使用到二进制。传统的方法,是将数据整体获取到byte数组中,然后逐字节对数据进行解析。这样操作工作量比较大,对于较长数据段更容易计算位置出错。 其实,对于下位机给出通讯的数据结构的情况下,可以直接使用C 的struct将数据直接转换。需要使用到Marshal。 数据结构 假定下位机 C语言编写 给到我们的数据结构是这个,传输方式为小端方式 方 ...

2021-01-20 14:50 1 829 推荐指数:

查看详情

C# WPF上位实现和下位TCP通讯

下位使用北京大华程控电源DH1766-1,上位使用WPF。实现了电压电流实时采集,曲线显示。上午在公司调试成功,手头没有程控电源,使用TCP服务端模拟。昨天写的TCP服务端正好排上用场。 界面如下: 服务端 服务端实在上篇基础上实现的。需要做如下更改: while ...

Wed Mar 20 04:52:00 CST 2019 0 704
关于C# byte[]与struct转换

转自:http://blog.chinaunix.net/uid-215617-id-2213082.html Some of the C# code I've been writing recently communicates via TCP/IP with legacy C ...

Wed Oct 26 18:10:00 CST 2016 1 5908
c#通过串口及CAN模块实现上位及下位通讯

目录 前言 一、串口、CAN总线 二、使用步骤 1.RS232串口通讯(指令下发与接收) 2.CAN总线通讯 总结 前言 学习及工作中我们经常会遇到上位下位通讯等工作,结合场景使用不同的通讯方式实时通讯,以下为工作中遇到的上位下位进行实时通讯,采用RS232串口和CAN ...

Fri Sep 24 01:58:00 CST 2021 0 388
C#各种数组直接数据复制/转换

之前做Opengl程序,用的的C#的SharpGL这个库,里面有各种奇怪绑定的函数,比如原型为: 的函数被他绑定成: 然后我就被逼着学习了各种float[] 转 int[] 的方法,比较他们的效率(其实我还是感觉c++比较快,一个指针类型转换,欧 ...

Thu Jan 28 00:11:00 CST 2016 1 5325
C# 连蒙带骗不知所以然的搞定USB下位读写

公司用了一台发卡机,usb接口,半双工,给了个dll,不支持线程操作,使得UI线程老卡。 懊恼了,想自己直接通过usb读写,各种百度,然后是无数的坑,最终搞定。 现将各种坑和我自己的某些猜想记录一下,也供各位参考。 一、常量定义 private const short ...

Sat Jun 09 01:37:00 CST 2018 4 2495
开源纯C#工控网关+组态软件(四)上下位通讯原理

一、 网关的功能:承上启下 最近有点忙,更新慢了。感谢园友们给予的支持,现在github上已经有。目标是最好的开源组态,看来又近一步^^ 之前有提到网关是物联网的关键环节,它的作用就是承上启下。 下位下位的语言,上位有上位的思路。网关就是一个翻译,把下位的语言转成通用语,再 ...

Sat Oct 28 17:06:00 CST 2017 9 11828
C#struct的字节对齐、转换操作和复制为二进制数据(byte[])

在做C#与其它程序通信的系统时,往往会使用struc操作结构化的数据(如数据包等)。 本文简要提出一些使用思路,欢迎各位大牛赐教。 一、STRUCT结构设计 当数据的结构确定时,总结为下面两种情况: 1、数据长度确定(包括字符串): 此时可以直接利用struct来构造数据 ...

Thu Mar 14 05:14:00 CST 2013 0 3110
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM