c# - sourcearray 不够长 C#
问题描述
我有以下问题:我尝试将字节数组从我的 PC 发送到设备。可发送的最大数据为 59 字节。字节 1-4 用于对发送的包进行计数。因此,每个包的总字节数为 55。
现在我得到一个错误源数组不够长,即使剩余的字节数超过 55。
有人知道我的问题是什么吗?
uint RAW_DATA_SIZE = 55; 字节[] 参数; uint byteCount = 0; FileInfo fi = new FileInfo (Path.GetFileNameWithoutExtension(args[0])+".hex"); Console.WriteLine(fi.Length); // 发送的整个 HEX 数据的大小 TotalSentBytes = Convert.ToUInt32(fi.Length); //将long转换为uint uint dataSize = TotalSentBytes;
解决方案
问题是您将其byteCount
用作方法的sourceIndex
参数(请参阅Microsoft DocsArray.Copy
中的签名):
Array.Copy(Encoding.ASCII.GetBytes(content), 0, parameters,
4 * sizeof(byte), remainingBytes > RAW_DATA_SIZE ? RAW_DATA_SIZE : remainingBytes);
我已替换byteCount
为 0,因为您想从源数组的开头进行复制。
推荐阅读
- asp.net-web-api - OData-query is throwing error for $expand query
- google-sheets - Attendance marking/counting issue, Google Sheets
- ssis - 在 SSIS 任务中避免 Jade Db 源连接超时
- python-2.7 - 我不明白错误的含义是什么
- python - 如何将浏览器返回的json对象转换为python lambda函数中的字符串
- javascript - 使用参数设置状态
- javascript - window.print 不适用于 android 和 ios 设备以及解决此问题的任何想法
- yii2 - Yii2 更新查询与 where in 和 not in 条件
- python - django-tables2:LinkColumn:详细视图链接未呈现
- laravel - 403 Forbidden 如何在apache服务器中启用Put请求