C#串口总结的几个疑惑 5
最近通过串口通信控件来学习C#,学完了后,发现自己对好多方面比较迷惑,还请知道的给与解答:1、write或者writeLine发送内容,是一下发送完,还是根据其write...
最近通过串口通信控件来学习C#,学完了后,发现自己对好多方面比较迷惑,还请知道的给与解答:
1、write或者writeLine发送内容,是一下发送完,还是根据其writeBuffersize大小发送
2、如果根据writebuffersize大小发送,那么如果超出部分是自动下次发送,还是就丢弃
3、同理ByteToRead是读取缓冲区中字节大小,而ReadBufferSize是缓冲区大小,如果发送来的字节过多(比如一篇超长文章),那么是只读取一次,读取完了再读后面的内容;还是读取一次之后(最多是缓冲区大小),然后后面的就丢弃不读取了。
4、有没有什么办法可以将发送文件拆开成固定大小,然后等发送接收完了,返回一个应答,再接着发送呢 展开
1、write或者writeLine发送内容,是一下发送完,还是根据其writeBuffersize大小发送
2、如果根据writebuffersize大小发送,那么如果超出部分是自动下次发送,还是就丢弃
3、同理ByteToRead是读取缓冲区中字节大小,而ReadBufferSize是缓冲区大小,如果发送来的字节过多(比如一篇超长文章),那么是只读取一次,读取完了再读后面的内容;还是读取一次之后(最多是缓冲区大小),然后后面的就丢弃不读取了。
4、有没有什么办法可以将发送文件拆开成固定大小,然后等发送接收完了,返回一个应答,再接着发送呢 展开
2个回答
展开全部
1、会根据WriteBufferSize的大小,自动分段发送,不会丢弃数据;
2、会根据ReadBufferSize的大小,自动分段读取,不会丢弃数据;
你怀疑的读取和发送过程中的溢出的情况,跟串口驱动分配的缓冲大小有关;
应该还跟系统内存大小有关,C# 对溢出的处理已经做了封装,我们只管使用吧
3、大文件的拆分发送,这个根据你自己的情况,对文件做分割,比如分割成4K大小;
发送端一次性发送完4k,接收端开始接收数据并统计字节,接收到4k的时候,接收端
发送接收4K结束的指令到发送端,发送端开始发送第二段数据,如此循环。
2、会根据ReadBufferSize的大小,自动分段读取,不会丢弃数据;
你怀疑的读取和发送过程中的溢出的情况,跟串口驱动分配的缓冲大小有关;
应该还跟系统内存大小有关,C# 对溢出的处理已经做了封装,我们只管使用吧
3、大文件的拆分发送,这个根据你自己的情况,对文件做分割,比如分割成4K大小;
发送端一次性发送完4k,接收端开始接收数据并统计字节,接收到4k的时候,接收端
发送接收4K结束的指令到发送端,发送端开始发送第二段数据,如此循环。
2013-09-15
展开全部
1:根据缓冲区大小分成几块 没有发完会一直发送的
2:同上
3:读取跟发送是一个道理的
4:你说的那个叫协议 可以自定义 也可以用现成的一些工业传输协议的
1,2,3 的内容不知道你有没有接触过单片机或者类似短信猫的东西 短信猫为例
串口助手作为发送端 串口助手在敲完命令以后 需要在后面加上 十六进制的 0x1A(不同猫可能不一样) 这意思是告诉猫 指令发送完毕 你执行 同理 在1,2,3里面虽然你没有明确的给一个结束的符号 但是你在初始串口的时候不是有一个 停止位什么的吗 那就是系统默认的串口设置 具体也不好解释 只能查询uart设计原理了
2:同上
3:读取跟发送是一个道理的
4:你说的那个叫协议 可以自定义 也可以用现成的一些工业传输协议的
1,2,3 的内容不知道你有没有接触过单片机或者类似短信猫的东西 短信猫为例
串口助手作为发送端 串口助手在敲完命令以后 需要在后面加上 十六进制的 0x1A(不同猫可能不一样) 这意思是告诉猫 指令发送完毕 你执行 同理 在1,2,3里面虽然你没有明确的给一个结束的符号 但是你在初始串口的时候不是有一个 停止位什么的吗 那就是系统默认的串口设置 具体也不好解释 只能查询uart设计原理了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询