sourcearray的长度不够C#
我有以下问题: 我尝试将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=总字节数;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
问题是您正在使用
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字节的内容”
?因为:你的代码不是这样做的