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

电视剧怎么做短视频网站专业关键词优化平台

电视剧怎么做短视频网站,专业关键词优化平台,提供网站建设公司报价,重庆今天刚刚发生的新闻事件在 C# 串口通信的一发一收场景里,处理不同功能码的帧数据可采用以下合理的代码结构,它能让代码更具可读性、可维护性和可扩展性。 实现思路 定义帧结构:创建一个类来表示通信帧,其中包含功能码、数据等信息。功能码处理逻辑&…

 

在 C# 串口通信的一发一收场景里,处理不同功能码的帧数据可采用以下合理的代码结构,它能让代码更具可读性、可维护性和可扩展性。

实现思路

  1. 定义帧结构:创建一个类来表示通信帧,其中包含功能码、数据等信息。
  2. 功能码处理逻辑:使用字典或者switch语句来根据不同的功能码执行相应的处理逻辑。
  3. 数据接收与解析:在串口接收事件中解析接收到的数据,并根据功能码调用对应的处理方法。
using System;
using System.Collections.Generic;
using System.IO.Ports;// 定义通信帧类
public class CommunicationFrame
{public byte FunctionCode { get; set; }public byte[] Data { get; set; }public CommunicationFrame(byte functionCode, byte[] data){FunctionCode = functionCode;Data = data;}
}// 定义串口通信类
public class SerialCommunication
{private SerialPort serialPort;private readonly Dictionary<byte, Action<CommunicationFrame>> frameHandlers = new Dictionary<byte, Action<CommunicationFrame>>();public SerialCommunication(string portName, int baudRate){serialPort = new SerialPort(portName, baudRate);serialPort.DataReceived += SerialPort_DataReceived;}// 注册功能码处理方法public void RegisterHandler(byte functionCode, Action<CommunicationFrame> handler){if (!frameHandlers.ContainsKey(functionCode)){frameHandlers.Add(functionCode, handler);}}// 打开串口public void Open(){if (!serialPort.IsOpen){serialPort.Open();}}// 关闭串口public void Close(){if (serialPort.IsOpen){serialPort.Close();}}// 发送数据public void Send(CommunicationFrame frame){if (serialPort.IsOpen){byte[] dataToSend = new byte[1 + frame.Data.Length];dataToSend[0] = frame.FunctionCode;Array.Copy(frame.Data, 0, dataToSend, 1, frame.Data.Length);serialPort.Write(dataToSend, 0, dataToSend.Length);}}// 数据接收处理private void SerialPort_DataReceived(object sender, SerialDataReceivedEventArgs e){try{if (serialPort.BytesToRead > 0){byte functionCode = (byte)serialPort.ReadByte();int dataLength = serialPort.BytesToRead;byte[] data = new byte[dataLength];serialPort.Read(data, 0, dataLength);CommunicationFrame frame = new CommunicationFrame(functionCode, data);if (frameHandlers.TryGetValue(functionCode, out var handler)){handler(frame);}}}catch (Exception ex){Console.WriteLine($"Error receiving data: {ex.Message}");}}
}class Program
{static void Main(){SerialCommunication serialComm = new SerialCommunication("COM1", 9600);// 注册功能码处理方法serialComm.RegisterHandler(1, HandleFunctionCode1);serialComm.RegisterHandler(2, HandleFunctionCode2);serialComm.Open();// 发送示例数据byte[] data = { 0x01, 0x02, 0x03 };CommunicationFrame frameToSend = new CommunicationFrame(1, data);serialComm.Send(frameToSend);Console.WriteLine("Press any key to exit...");Console.ReadKey();serialComm.Close();}// 处理功能码 1 的方法static void HandleFunctionCode1(CommunicationFrame frame){Console.WriteLine($"Received frame with function code 1. Data length: {frame.Data.Length}");}// 处理功能码 2 的方法static void HandleFunctionCode2(CommunicationFrame frame){Console.WriteLine($"Received frame with function code 2. Data length: {frame.Data.Length}");}
}

http://www.dtcms.com/wzjs/493246.html

相关文章:

  • 做外贸进大公司网站百度下载并安装
  • 简单ppt模板下载免费完整版北京seo案例
  • 哪家做的网站有利于百度推广精准推广
  • 项目代理宁波seo排名优化哪家好
  • 如何让百度k掉网站免费的网页入口
  • wordpress鼠标滑过后变色比较好的网络优化公司
  • 用搬瓦工做储存网站成都seo培
  • 鹿城做网站济南网络推广
  • 保定网站搜索引擎优化北京网站排名推广
  • 安徽中小企业网站建设百度权重优化软件
  • 网站开发用什么配置电脑爱站网排行榜
  • 福州网站建设哪家公司好广告联盟骗局
  • b2c电子商务网站网络推广引流
  • 网站开发的学习路线关键词怎么选择技巧
  • 现在去横琴会变黄码吗seo权重优化软件
  • 关于做公司网站建设你应该知道的天津seo托管
  • 深圳专业高端网站建设多少钱网站友情链接代码
  • 江苏广宇建设集团有限公司 网站搜狗友链交换
  • 网站制作的关键技术山东公司网站推广优化
  • 知名网站建设多少钱wordpress建站公司
  • 如何改wordpress网站图标热搜榜百度
  • 如何用php做网站管理系统黑龙江新闻
  • 网站建设公司 2018足球比赛统计数据
  • wordpress企业网站制作网络销售怎么才能找到客户
  • 苏州企业做网站河北百度推广
  • 男人和女人做性网站网络优化工程师主要做什么
  • 做医药行业找药的网站嘉兴关键词优化报价
  • 九亿app开发公司重庆专业seo
  • 中企动力做的网站后台如何登陆市场营销推广策划
  • 郑州地区网站建设公司cms建站