- 博客(12)
- 资源 (8)
- 问答 (1)
- 收藏
- 关注
原创 C# 串口通讯的数据丢失和同步异步问题
串口通讯最痛苦的在于无法深入了解串口内部的规则,只能调用c#提供的SerialPort类,但是使用的时候也出现了很多问题,有的是自身的有的是由于不了解造成的。首先SerialPort类提供了很多很好的方法,对于读写都很有帮助,但是有的读是同步,有的是异步,同步就是和主程序保持一致,只有运行完了ReadByte之后才能运行程序之后的代码,异步就是重新开启一个线程来处理这些问题,主程序不受
2013-05-17 19:44:46 6031
原创 c# SerialPort使用时出现“已关闭Safe handle”的错误
我在使用串口的时候出现了两个错误,基本上还属于有几率才能触发,第一个是已关闭Safe handle”的错误,第二个是由于线程退出或应用程序请求,已中止 I/O 操作。造成第一个错误的原因是在关闭串口前就关闭了线程,这样就会出现这样的错误。不过经过在网上的查找资料发现,先关闭串口后关闭进程会出现第二种错误。发生的原因应该就是串口关闭的时机的问题。在这里纠结了半天,每次点击停止监听串口都会将整个程序退
2013-05-10 14:52:13 5116
原创 c# 串口的读写
做项目正好做到了这部分,查了很多相关的资料,终于成功了,这次利用到串口主要是因为gprs模块,发现串口也分2线和四线的2线的不支持全双工,四线的才支持,所以做之前要先把硬件是否支持弄清楚。串口的读写分为两种形式:多线程,和单线程。多线程需要自己起一个线程运行监听串口的功能,单线程可以使用c#自带的DataReceived。首先,c#中有using System.IO.Ports;库里面
2013-05-09 09:27:07 2982
原创 c# 委托和委托事件
委托很好用,c#的委托有点函数指针的感觉,它能简化判断语句的使用,还能为窗口添加新的事件。weituo.csusing System;using System.Collections.Generic;using System.Linq;using System.Text;namespace fenzhi{ public delegate int AddDelegate(
2013-05-17 20:29:39 620
原创 c# 快速排序算法实现
快速排序的基础原理就是分治算法,通过越来越小的划分块,来实现减小时间复杂度的问题。public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(ob
2013-05-17 20:04:30 674
原创 c# winform页面信息的打印
对于打印页面来说,网页打印有很大的优势,因为有函数直接打印window.Print()就可以了很方便,但是对于winform除了使用一些第三方的类库之外就需要自己写代码了。PrintDocument printDocument1 = new PrintDocument();PrintPreviewDialog printPreviewDialog1 = new PrintPreviewDi
2013-05-17 19:56:42 3653 1
转载 转载自zhaohongyu113 的linux监控程序-程序自动重启方法
使用脚本实现自动重启首先想到的最简单的使用shell脚本,大概思路:ps -ef | grep “$1″ | grep -v “grep” | wc –l 是获取 $1 ($1 代表进程的名字)的进程数,脚本根据进程数来决定下一步的操作。通过一个死循环,每隔 1 秒检查一次系统中的指定程序的进程数,这里也可使用crontab来实现。这种方法比较土,还是可以基本解决问题,但是
2013-05-06 11:02:43 669
原创 qt 监听linux下进程的CPU使用率和内存使用率
qt 监听linux下进程的CPU使用率和内存使用率主要是总结一下网上查找到的资料,代码如下:有两种形式:形式一,利用命令行,然后获得命令行的数据。形式二,读取linux下的一个环境配置信息文件,里面映射这很多系统信息,例如cpu使用情况,进程情况等等。代码;#include "mainwindow.h"#include "ui_mainwindow.h"#
2013-05-06 10:26:28 1774
转载 c++函数内改变外部变量的值
chat(int&a); chat(int *a); 这两个函数是完全不同意义的东西,你的理解主要是在int&a和int* a这个类型上面。要注意int&和int*是两个完全不同的类型。int&是引用类型,而int*是指向int类型变量的指针类型。 void chat(int&a) { a=20; } 调用此函数: int x=100; chat(x); // 此时x的值变为20了 如果函数如
2013-05-05 20:23:04 2036
原创 valgrind-3.8.1的安装与使用研究
目前只知道这个工具可以测试linux下的内存泄漏问题,很好用,下载地址是http://www.valgrind.org/downloads/valgrind-3.8.1.tar.bz2安装:[root@localhost ~]# cd valgrind-3.8.1[root@localhost valgrind-3.8.1]# ./configure && make && ma
2013-05-05 12:32:03 2341
原创 qt 实现控件的模拟人类习惯的上下左右控制
qt 实现控件的模拟人类习惯的上下左右控制为了做一个项目是嵌入式开发所以需要按键操作界面,所以需要一个可以模拟人类习惯的上下左右按键的控制。但是qt,不知道为什么keypress不支持上下左右的按键响应,所以在不利用到eventfilter的情况下只能,转换了wsad的四个按键。算法思想如下:其实也不算是什么算法吧。有两个主要的函数,一个函数负责获取到任何控件对应主界面的相对位
2013-05-05 11:18:46 1578 1
转载 转载于:envenler的Qt内存泄漏问题
今天对于自己写的Qt程序在内存泄漏上起了很大怀疑,怀疑自己的程序中很多地方存在泄漏。然后就找了一下资料,自己写了个小程序和大家分享一下。首先我们知道Qt有一套回收内存的机制,下面是网摘的规则,如下:1、所有继承自QOBJECT类的类,如果在new的时候指定了父亲,那么它的清理时在父亲被delete的时候delete的,所以如果一个程序中,所有的QOBJECT类都指定了父亲,那么他们
2013-05-05 10:24:36 709
.net开发 获取串口列 出现错误,没有的串口也显示出来很奇怪
2013-07-19
TA创建的收藏夹 TA关注的收藏夹
TA关注的人