本文转自:https://docs.microsoft.com/en-us/dotnet/api/system.io.ports.serialport?redirectedfrom=MSDN&view=netframework-4.7.2 SerialPort Class Definition Namespace: System.IO.Ports Assemblies: System.dll, System.IO.Ports.dll Represents a serial port resour…
从Microsoft .Net 2.0版本以后,就默认提供了System.IO.Ports.SerialPort类,用户可以非常简单地编写少量代码就完成串口的信息收发程序.本文将介绍如何在PC端用C# .Net 来开发串口应用程序. 1. 串口硬件信号定义 DB9 Connector 信号定义.串口测试将2.3针脚短接即可. 2. 串口端口号搜索 string[] portList = System.IO.Ports.SerialPort.GetPortNames(); ; i < portLi…
C#中使用System.IO.Ports.SerialPort进行串口通信网上资料也很多,但都没有提及一些细节: 比如 串口有时候并不会一次性把你想要的数据全部传输给你,可能会分为1次,2次,3次分别传送一部分数据给你,这时候一般会设置字符串的结束符来判定是否传输完毕(一般设置为\n ,\r) 传输过程中字符串的后面都会跟着无数个\0\0\0;经过同事测试,每次都从串口缓存中取出所有的传输数据,然后再进行判断,可以获取完整的字符串:代码如下: //读取完整字符串 硬件扫描枪设置传输结束符为\r…
System.IO.IOException: The handle is invalid. 00022846 11:39:49.098 AM [892] 00022847 11:39:49.098 AM [892] at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) 00022848 11:39:49.098 AM [892] at System.IO.__Error.WinIOError() 000228…
 [等待事件]等待事件系列(3+4)--System IO(控制文件)+日志类等待   1  BLOG文档结构图     2  前言部分   2.1  导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~: ① 控制文件类等待 ② 日志类等待   2.2  相关参考文章链接 [推荐] 等待事件系列(1)--User I/O类型(下) http://blog.itpub.net/26736162/viewspace-2124435…
我们在编写网络程序的时候,经常会进行如下操作: 申请一个缓冲区 从数据源中读入数据至缓冲区 解析缓冲区的数据 重复第2步 表面上看来这是一个很常规而简单的操作,但实际使用过程中往往存在如下痛点: 数据读不全: 可能不能在一次read操作中读入所有需要的数据,因此需要在缓冲区中维护一个游标,记录下次读取操作的起始位置,这个游标带了了不小的复杂度: 从缓冲区读数据时,要根据游标计算缓冲区起始写位置,以及剩余空间大小.增加了读数据的复杂度. 解析数据也是复用这个缓冲区的,解析的时候也要判断游标起始位置…
手机的请求Fiddler可以捕捉,但是手机一直无法上网,在logs中看到的日志如下: !SecureClientPipeDirect failed: System.IO.IOException 由于远程方已关闭传输流,身份验证失败. for pipe (CN=*.baidu.com, O=DO_NOT_TRUST, OU=Created 解决办法: 将fiddler设置中 Decrypt Https traffic 选项去掉 问题原因: 如果勾选次选项,需要手机中安装fiddler的证书…
@echo.@if exist "%windir%\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe" goto INSTALL4.0 :INSTALL4.0@echo ◎ 开始安装服务2.0@%windir%\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe   xx.Service@echo.@echo √ 服务安装完成!@goto Ed :ERR@echo.@echo × 程序…
一.空操作符(??)在程序中经常会遇到对字符串或是对象判断null的操作,如果为null则给空值或是一个指定的值.通常我们会这样来处理: .string name = value; if (name == null) { name = string.Empty; } 2.使用三元操作符(? :)对上面对吗进行优化: string name = value == null ? string.Empty : value; 上面的两种方式 的代码不够简洁,?? 操作符来进行进一步优化,?? 操作符意思…
在程序运行的时候,如果直接获取一个目录路径,然后执行删除(包括子目录及文件): System.IO.Directory.Delete(path,true); 或者 System.IO.DirectoryInfo downloadedMessageInfo = new DirectoryInfo(path); downloadedMessageInfo.Delete(true); 如果手动在目录里面复制一个文件然后再粘贴一个副本相当于添加文件或者目录(而不是删除)就会报错: {System.IO.…