SerialPort_DataReceived
全部标签 gem串口(1.0.4)作者:GuillaumePierronnet、AlanStern、DanielE.Shipton、Tobin理查德、赫克托·帕拉、瑞安·C·佩恩首页:http://github.com/hparra/ruby-serialport/使用RS-232串行端口的库。我正在使用这个gem,我的设备规范如下。9600bps7位1个停止位偶数当我收到如下数据时,解压后的数据仍然带有奇偶校验位。sp=SerialPort.new("/dev/serial-device",9600,7,1,SerialPort::EVEN)data=sp.getsdata.chars.eac
是否有可能强制任何通信来自例如Javascript/JQuery到任何串行端口?!google无法回答这个问题..但无论如何它应该是可能的..env在我的例子中是firefox..非常欢迎提供想法/知识。请贴上胶带 最佳答案 我认为这是可能的..查看:jUART,用于从JavaScript进行串口通信的跨平台浏览器插件https://github.com/billhsu/jUART 关于JavaScript/JQuery与SerialPort/COM1通信,我们在StackOverflo
我正在使用.NET4SerialPort对象与连接到COM1的设备通信。当我完成对设备的操作后,我在SerialPort上调用Close。我不调用Dispose,但我相信Close和Dispose在这里是同义词。通常这工作得很好。然而,有时我会在一段时间后收到以下异常(我看到的时间范围为5毫秒到175毫秒):System.ObjectDisposedException:SafehandlehasbeenclosedatSystem.Runtime.InteropServices.SafeHandle.DangerousAddRef(Boolean&success)atSystem.St
SerialPort.Open();我遇到了一个大问题我正在与USB虚拟COM端口(cdc)通信,它被列为COM2。它在TeraTerm/hyperTerminal等中运行良好。但是当我尝试在C#中打开端口时,它给了我异常Theport'COM2'doesnotexist。我使用SerialPort.GetPortNames()函数获取端口名称,调试时它看起来很好。我曾尝试将名称设置为硬编码,但没有成功。现在真正奇怪的是,它在某些PC上运行良好,而在其他PC上运行失败。在一些PC上,它总是失败,而在其他PC上,它有10%的时间失败。更奇怪的是它取决于所使用的USB端口,一些端口工作正常
我正在开发需要与COM端口交互的程序。从这个问答中学习:.NETSerialPortDataReceivedeventnotfiring,我这样写我的代码。namespaceConsoleApplication1{classProgram{staticSerialPortComPort;publicstaticvoidOnSerialDataReceived(objectsender,SerialDataReceivedEventArgsargs){stringdata=ComPort.ReadExisting();Console.Write(data.Replace("\r","\n
偶尔,我的一些集成测试会因上述消息而失败。我正在使用下面的代码来准备端口。for(inti=0;i我的假设是,因为它不可能是当前线程阻塞端口(因为它会尝试关闭它),所以它一定是另一个线程或进程在没有正确清理的情况下死亡(其他测试之一-没有其他访问此端口)。有没有办法重置SerialPort的状态,以便新线程/进程可以再次访问它?谢谢,理查德 最佳答案 这是SerialPort类中的一个缺陷,它使用内部辅助线程来等待端口上的事件。DataReceived、PinChanged和ErrorReceived事件的来源。该缺陷存在于Clos
我有一个C#windows窗体应用程序,它通过COM端口与USBdongle通信。我使用.Net2.0中的SerialPort类进行通信,并且串行端口对象在应用程序的生命周期内处于打开状态。应用程序向设备发送命令,也可以从设备接收未经请求的数据。我的问题发生在窗体关闭时-我在尝试关闭COM端口时(不幸的是随机地)得到一个ObjectDisposedException。这是Windows堆栈跟踪:System.ObjectDisposedExceptionwasunhandledMessage=SafehandlehasbeenclosedSource=SystemObjectName=
我编写了一个.net4.0控制台应用程序,它定期与GSM调制解调器对话以获取收到的SMS消息的列表(它是一个USB调制解调器,但代码通过串行端口驱动程序连接到它并发送AT命令-顺便说一句,它是SierraWireless调制解调器,但我无法更改它,而且我有最新的驱动程序)。发生的事情是在一段时间后(可能是几小时,也许是几天)它就停止工作了。这是一个日志片段...2012-04-1723:07:31DEBUGModemCheck(108)-ExecutingATcommand'AT+CPMS="ME"'...2012-04-1723:07:31DEBUGModemCheck(108)-F
有没有办法找出特定的所有可用波特率系统支持通过C#?这可以通过设备管理器-->端口获得但我想以编程方式列出这些。 最佳答案 我找到了几种方法来做到这一点。以下两个文件是起点http://support.microsoft.com/default.aspx/kb/99026http://msdn.microsoft.com/en-us/library/aa363189(VS.85).aspx线索在第一个文档的以下段落中Thesimplestwaytodeterminewhatbaudratesareavailableonapartic
我只是在回顾我在CF2.0上用C#编写的与串行端口通信的一些代码。我没有使用DataReceived事件,因为它不可靠。MSDNstatesthat:TheDataReceivedeventisnotgauranteedtoberaisedforeverybytereceived.UsetheBytesToReadpropertytodeterminehowmuchdataislefttobereadinthebuffer.我用read()轮询端口,并有一个委托(delegate)在读取数据时处理数据。我还在某处读到“轮询不好”(没有给出解释)。知道轮询为什么不好吗?除了通常的线程警告