sourcearray的长度不够C#

sourcearray的长度不够C#,c#,arrays,C#,Arrays,我有以下问题: 我尝试将bytearray从PC发送到设备。可发送的最大数据量为59字节。字节1-4用于计算发送的包裹数量。所以每个包的总字节数是55 现在我得到一个错误sourcearray不够长,即使剩余的字节数大于55 有人知道我的问题是什么吗 uint RAW_DATA_SIZE = 55; byte[] parameters; uint byteCount = 0; FileInfo fi = new FileInfo (Path.GetFileNam

我有以下问题: 我尝试将bytearray从PC发送到设备。可发送的最大数据量为59字节。字节1-4用于计算发送的包裹数量。所以每个包的总字节数是55

现在我得到一个错误sourcearray不够长,即使剩余的字节数大于55

有人知道我的问题是什么吗

uint RAW_DATA_SIZE = 55; byte[] parameters; uint byteCount = 0; FileInfo fi = new FileInfo (Path.GetFileNameWithoutExtension(args[0])+".hex"); Console.WriteLine(fi.Length); // Size of the whole HEX data sent TotalSentBytes = Convert.ToUInt32(fi.Length); //Convert long to uint uint dataSize = TotalSentBytes; uint原始数据大小=55; 字节[]参数; uint字节数=0; FileInfo fi=newfileinfo(Path.GetFileNameWithoutExtension(args[0])+“.hex”); 控制台写入线(fi.长度);//发送的整个十六进制数据的大小 TotalSentBytes=Convert.ToUInt32(fi.Length)//将long转换为uint uint dataSize=总字节数;
问题是您正在使用
byteCount
作为
数组的
sourceIndex
参数。Copy
方法(请参见中的签名):


我已将
字节计数
替换为0,因为您希望从源数组开始复制。

问题是您使用
字节计数
作为
数组的
源索引
参数。copy
方法(请参阅中的签名):


我已将
字节数
替换为0,因为您希望从源数组开始复制。

好的,我现在有了答案。 我使用Fileinfo获取要发送的总字节数

 FileInfo fi = new FileInfo (Path.GetFileNameWithoutExtension(args[0])+".hex");
 Console.WriteLine(fi.Length);               // Size of the whole HEX data sent
 TotalSentBytes = Convert.ToUInt32(fi.Length);   //Convert long to uint
现在,我通过以下方式获得保存在.hex文件中的bytearray的长度:

byte[] contentOfBytes = Encoding.ASCII.GetBytes(content); //get content of hex-file
uint dataSize = Convert.ToUInt32(contentOfBytes.Length);  //get number of elements in the bytearray

现在我不再有任何错误了。

好的,我现在有了答案。 我使用Fileinfo获取要发送的总字节数

 FileInfo fi = new FileInfo (Path.GetFileNameWithoutExtension(args[0])+".hex");
 Console.WriteLine(fi.Length);               // Size of the whole HEX data sent
 TotalSentBytes = Convert.ToUInt32(fi.Length);   //Convert long to uint
现在,我通过以下方式获得保存在.hex文件中的bytearray的长度:

byte[] contentOfBytes = Encoding.ASCII.GetBytes(content); //get content of hex-file
uint dataSize = Convert.ToUInt32(contentOfBytes.Length);  //get number of elements in the bytearray

现在我再也没有收到任何错误。

这里哪一行失败了?这听起来像是ASCII.GetBytes,在这种情况下:
内容是什么?更重要的是:为什么每次都发送相同的
内容?也。。。感觉可能前4个字节应该取决于我们这次实际发送的内容?(这看起来像一个典型的帧长度前缀?)。您是否打算每次发送“最多55字节的
内容”
?因为:这不是你的代码所做的,这行代码在这里失败了?这听起来像是ASCII.GetBytes,在这种情况下:
内容是什么?更重要的是:为什么每次都发送相同的
内容?也。。。感觉可能前4个字节应该取决于我们这次实际发送的内容?(这看起来像一个典型的帧长度前缀?)。您是否打算每次发送“最多55字节的
内容”
?因为:你的代码不是这样做的