2013年5月9日
摘要: 做项目正好做到了这部分,查了很多相关的资料,终于成功了,这次利用到串口主要是因为gprs模块,发现串口也分2线和四线的2线的不支持全双工,四线的才支持,所以做之前要先把硬件是否支持弄清楚。串口的读写分为两种形式:多线程,和单线程。多线程需要自己起一个线程运行监听串口的功能,单线程可以使用c#自带的DataReceived。首先,c#中有using System.IO.Ports;库里面有个专门提供给串口的类SerialPort,这个类介绍:代码使用实例;using System;using System.Collections.Generic;using System.ComponentMod 阅读全文
posted @ 2013-05-09 09:27 月神苍龙 阅读(914) 评论(0) 推荐(0) 编辑
  2013年5月6日
摘要: 使用脚本实现自动重启首先想到的最简单的使用shell脚本,大概思路:ps -ef | grep “$1″ | grep -v “grep” | wc –l 是获取 $1 ($1 代表进程的名字)的进程数,脚本根据进程数来决定下一步的操作。通过一个死循环,每隔 1 秒检查一次系统中的指定程序的进程数,这里也可使用crontab来实现。这种方法比较土,还是可以基本解决问题,但是有1s的延迟,笔者在应用中未采用这种方法,有关这个shell脚本,请参看文章后面的附件代码。exec+fork方式笔者最终采用的exec+fork方式来实现的,具体思想如下:1,exec函数把当前进程替换为一个新的进程,新进 阅读全文
posted @ 2013-05-06 11:02 月神苍龙 阅读(193) 评论(0) 推荐(0) 编辑
摘要: qt 监听linux下进程的CPU使用率和内存使用率主要是总结一下网上查找到的资料,代码如下:有两种形式:形式一,利用命令行,然后获得命令行的数据。形式二,读取linux下的一个环境配置信息文件,里面映射这很多系统信息,例如cpu使用情况,进程情况等等。代码;#include "mainwindow.h"#include "ui_mainwindow.h"#include"qprocess.h"#include"QProcess"#include"string.h"#include"q 阅读全文
posted @ 2013-05-06 10:26 月神苍龙 阅读(1607) 评论(0) 推荐(0) 编辑
  2013年5月5日
摘要: 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了 如果函数如下: void chat (int*a) { *a=20; } 调用: int x=10; chat(&x); //此时x的值也会变为20; 这是他们有联系 阅读全文
posted @ 2013-05-05 20:23 月神苍龙 阅读(3415) 评论(0) 推荐(0) 编辑
摘要: 目前只知道这个工具可以测试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 && makeinstall 完成后进行测试看是否安装成功。[ubuntu@root ~]#valgrind看结果是否为:[ubuntu@root ~]#valgrindvalgrind: no p 阅读全文
posted @ 2013-05-05 12:32 月神苍龙 阅读(473) 评论(0) 推荐(0) 编辑
摘要: qt 实现控件的模拟人类习惯的上下左右控制为了做一个项目是嵌入式开发所以需要按键操作界面,所以需要一个可以模拟人类习惯的上下左右按键的控制。但是qt,不知道为什么keypress不支持上下左右的按键响应,所以在不利用到eventfilter的情况下只能,转换了wsad的四个按键。算法思想如下:其实也不算是什么算法吧。有两个主要的函数,一个函数负责获取到任何控件对应主界面的相对位置,另一个函数负责判断控件的上下左右位置,加入到一个临时的list中,然后通过如果按上,那么左右对其影响大的想法,获得最小距离的那个,具体算法可以下载代码看很简单。如图:比如最开始的焦点在1控件,如果我按上那么就会先拿到 阅读全文
posted @ 2013-05-05 11:18 月神苍龙 阅读(1264) 评论(0) 推荐(0) 编辑
摘要: 今天对于自己写的Qt程序在内存泄漏上起了很大怀疑,怀疑自己的程序中很多地方存在泄漏。然后就找了一下资料,自己写了个小程序和大家分享一下。首先我们知道Qt有一套回收内存的机制,下面是网摘的规则,如下:1、所有继承自QOBJECT类的类,如果在new的时候指定了父亲,那么它的清理时在父亲被delete的时候delete的,所以如果一个程序中,所有的QOBJECT类都指定了父亲,那么他们是会一级级的在最上面的父亲清理时被清理,而不用自己清理;2、程序通常最上层会有一个根的QOBJECT,就是放在setCentralWidget()中的那个QOBJECT,这个QOBJECT在 new的时候不必指定它的 阅读全文
posted @ 2013-05-05 10:24 月神苍龙 阅读(215) 评论(0) 推荐(0) 编辑
  2013年4月19日
摘要: c# Xml解析类和应用这是面向对象的课程设计作业,就是自己写xml解析类并且完成由xml文件向图形的转化。这里用了两种方法,第一种是c#自己提供的xml解析函数,第二种是自己的xml解析函数。xml解析函数(原创)using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Windows.Forms;using System.IO;namespace WindowsFormsApplication1{public class xmlParser {string s 阅读全文
posted @ 2013-04-19 12:07 月神苍龙 阅读(347) 评论(0) 推荐(0) 编辑
  2013年4月16日
摘要: 窗口间传值方法方法一: 利用窗口的初始化,来传递参数,这种只适用一个窗口打开另一个窗口,在新窗口中传入参数。Form1.csString s="123";Form2f2=new f2(s);f2.show();Form2.cspublic Form2(string s){InitializeComponent(); Button1.text=s;}这时窗口2的button按钮的值就是s的值123。方法二:利用ShowDialog的返回值判定子窗口是否销毁,然后把子窗口的属性传递到form1中。Form1.csprivate string m_IP;public string 阅读全文
posted @ 2013-04-16 18:15 月神苍龙 阅读(227) 评论(0) 推荐(0) 编辑
  2013年3月14日
摘要: 其实也不能算是一个教程,就是目前好多高手和牛人们的配置教程都是以前的,很少有现在新版的教程,所以我配置的时候边从网上学习,边实验就出现了很多的问题(我是64位系统),所以自己来记录下这个过程也方便自己也方便他人。第一步:java jdk首先是下载java的jdk,我这里用的是64位版本,http://www.xiazaiba.com/html/5015.html,然后安装。之后开始配置系统环境:打开环境变量,这里上面的是你当前用户的系统环境,下面是整个电脑的系统环境,一般来说只要设置整个电脑的系统环境变量就行了,所以我们在下面的对话框选择path打开后将年装的javajdk的地址加入其中,注意 阅读全文
posted @ 2013-03-14 10:54 月神苍龙 阅读(234) 评论(0) 推荐(0) 编辑