当前位置: 首页 > news >正文

网站建设评价标准房产这么做网站才多点击量

网站建设评价标准,房产这么做网站才多点击量,网站开发套餐,成都大型广告公司有哪些让gpt生成一段代码用来把bin文件通过can总线发出去 c#代码还是比较强大的,各种功能基本都是一两行代码就实现了,这里记录一下对这个代码的理解和解读 主要代码如下,传入bin文件的地址即可将其从指定的can通道发送出去: public …

让gpt生成一段代码用来把bin文件通过can总线发出去

c#代码还是比较强大的,各种功能基本都是一两行代码就实现了,这里记录一下对这个代码的理解和解读

主要代码如下,传入bin文件的地址即可将其从指定的can通道发送出去:

public void SendBINFile(string binFilePath)
{if (!File.Exists(binFilePath)){Console.WriteLine("BIN file not found: " + binFilePath);return;}try{// 读取 BIN 文件byte[] binData = File.ReadAllBytes(binFilePath);int chunkSize = 8; // 每帧发送 8 字节int totalFrames = (binData.Length + chunkSize - 1) / chunkSize;Console.WriteLine($"Sending BIN file: {binFilePath}");Console.WriteLine($"Total data size: {binData.Length} bytes, Frames: {totalFrames}");for (int i = 0; i < totalFrames; i++){// 准备 CAN 消息byte[] frameData = new byte[chunkSize];int currentFrameSize = Math.Min(chunkSize, binData.Length - i * chunkSize);Array.Copy(binData, i * chunkSize, frameData, 0, currentFrameSize);TPCANMsg canMessage = new TPCANMsg{ID = 0x123, // 自定义消息 IDLEN = (byte)currentFrameSize,MSGTYPE = TPCANMessageType.PCAN_MESSAGE_STANDARD,DATA = frameData};// 发送 CAN 消息LastStatus = PCANBasic.Write(Pcan_Handle, ref canMessage);Thread.Sleep(1);if (LastStatus != TPCANStatus.PCAN_ERROR_OK){Console.WriteLine($"Error sending frame {i + 1}: {GetErrorText(LastStatus)}");}else{Console.WriteLine($"Frame {i + 1} sent: {BitConverter.ToString(frameData, 0, currentFrameSize)}");}}}catch (Exception ex){Console.WriteLine("Error sending BIN file: " + ex.Message);}
}

其他都比较简单易懂,其中最核心的就是for循环的这部分:

for (int i = 0; i < totalFrames; i++){// 准备 CAN 消息byte[] frameData = new byte[chunkSize];int currentFrameSize = Math.Min(chunkSize, binData.Length - i * chunkSize);Array.Copy(binData, i * chunkSize, frameData, 0, currentFrameSize);TPCANMsg canMessage = new TPCANMsg{ID = 0x123, // 自定义消息 IDLEN = (byte)currentFrameSize,MSGTYPE = TPCANMessageType.PCAN_MESSAGE_STANDARD,DATA = frameData};// 发送 CAN 消息LastStatus = PCANBasic.Write(Pcan_Handle, ref canMessage);Thread.Sleep(1);

其中framedata用来储存当前要发送的数据,最大8字节,每一个for循环都要进行一次发送。currentFrameSize是当前这轮发送时framedata的尺寸,除了最后一帧外全都是8。

Array.Copy(binData, i * chunkSize, frameData, 0, currentFrameSize)是将“bindata”这个bin文件的指定位置(i * chunkSize)指定大小(currentFrameSize)的数据复制到framedata中用于发送。

其次,Thread.Sleep(1)也是很重要的,250k波特率下每秒can总线发送报文的极限是2000条左右,为了均衡效率和稳定性,我们设置每次发送后延时1ms再继续发送,以避免总线过载或者可能发生的错误。

http://www.yayakq.cn/news/817974/

相关文章:

  • 百度免费校园网站建设域名转出过程网站能打开吗
  • 新绛网站建设wordpress音频防盗链
  • 国外优秀论文网站有关做网站项目的毕业答辩
  • 招商加盟网站的图应该怎么做镇平县两学一做专题网站
  • 营销型网站有哪些代表有哪些付费wordpress
  • 专业网站建设总结建材公司网站建设案例
  • 网站开发开源框架如何用excel做网站
  • 网站响应式首页模板下载建设企业网站的价格
  • 酒托做哪个网站好wordpress客户使用的后端
  • 建一个网站的手机电脑版制作一个企业网站多少钱
  • 香奈儿网站建设的目标大型购物网站设计
  • 博物馆网站建设方案临沂seo顾问
  • 网站建设好之后怎么上传东西南宁做网站科技公司
  • 网站结构seo怎样建设微网站
  • 石家庄网站制作公司哪家好山西省建设厅投诉网站
  • 铁岭市做网站wordpress网址改错了
  • 网站建设公司广告语 宣传语公司网站推广费用
  • wordpress设置权限seo搜索引擎优化岗位要求
  • 做淘客要有好的网站个人公众号怎么开通
  • 苏州网站建设多少钱安丘网站建设报价
  • 做58网站每天可以发几条白山网站制作
  • 网站服务费算什么费用招代理商的网站
  • 如何查询网站死链wordpress本地文章上传到服务器
  • 门户网站改造方案作文网
  • 网站运营技巧开源免费的网站程序
  • 东莞企业建站申请多少钱商业公司的域名
  • 网站开发费计入什么科目合适wordpress环保公司主题
  • app 网站建设施工企业成本管控思路
  • 普陀网站建设比较实惠网站开发方案报价
  • 做网站都需要用到什么软件wordpress 怎么置顶