自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 收藏
  • 关注

原创 Python编程.Bluetooth HID Mouse and Keyboard(四)

#!/usr/bin/env pythonimport Tkinter,sys,time,platformimport logclass Point: def __init__(self, x=0, y=0): self.x = x self.y = y return def __str__(self):

2014-01-20 15:32:39 4198 1

原创 Python编程.Bluetooth HID Mouse and Keyboard(三)

调用SDP Helper接口非常简单,基本上跟Sample Code差不多,只不过代码换成了Python编程。#!/usr/bin/env pythonimport ctypes,oshidd_report_desc = bytearray( [ 0x05, 0x01, # UsagePage GenericDesktop 0x09, 0x02, # Usag

2014-01-16 17:39:34 2489

原创 Python编程.Bluetooth HID Mouse and Keyboard(二)

根据Bluetooth HID协议,从Socket连接的角度来看,蓝牙设备其实是L2CAP连接的Host端。下面我就来实践这个Host端的流程。当然,根据上一篇文章的介绍,我首先要用C语言实现一些友好的接口,让Python程序通过ctypes能够很容易地使用。struct bthidd_t { int serv_ctrl; int serv_intr; int sock_ctrl;

2014-01-16 11:42:50 5131 8

原创 Python编程.Bluetooth HID Mouse and Keyboard(一)

有时候在家里用手机或者Pad打字时觉得太慢,很希望有个蓝牙键盘用用。可惜家里只有一个USB蓝牙适配器,没有蓝牙键盘。本想在Windows上实现一个虚拟蓝牙键鼠的软件,把我这个普通键盘变成蓝牙键盘,但后来发现微软的Bluetooth协议栈实在太烂,难以实现这个功能。于是退而求其次,看看在Ubuntu上用Bluez协议栈怎么来实现它。首先用简短的文字来聊聊Bluetooth的HID协议。Bth H

2014-01-15 10:47:15 11078 3

原创 Python编程.利用ctypes调用Windows API

Python是一种容易入门的编程语言,对于已经掌握C/C++或Java等任意一门编程语言的程序员来说,通过Python官网的Tutorial文档,可以在较短时间内掌握基本语法。 Ctypes是我喜欢的Python特性之一,它让你的Python程序可以方便地调用已有的C语言编写的动态链接库。在Windows操作系统上,利用ctypes提供的帮助,Python程序直接调用Windows API变得

2014-01-14 16:18:31 10198 1

转载 开发环境中的环境变量

一些环境变量设置在目录名列表中。这些名字和 PATH 环境变量使用的格式相同。特殊字符 PATH_SEPARATOR (安装编译程序的时候定义)用在目录名之间。在 UNIX 系统中,分隔符是冒号,而 Windows 系统中为分号。C_INCLUDE_PATH--------------编译 C 程序时使用该环境变量。该环境变量指定一个或多个目录名列表,查找头文件,就好像在命令行

2013-02-05 16:31:47 572

转载 HOWTO: using gprof with multithreaded applications

原文地址:http://sam.zoy.org/writings/programming/gprof.html  HOWTO: using gprof with multithreaded applications What is gprof? gprof is the GNU Profiler, a tool used when tracking which functions

2012-01-10 23:00:10 735

转载 diff + patch

创建一个patch:# diff -Naur olddir newdir > new.patch给olddir打上new.patch:# cd olddir# patch -p1 patch命令的-p选项(注意中间没有空格),表示打patch时,把patch文件中记录的路径的前num级忽略掉。在上面的例子中,diff对比的是olddir和newdir,故new.

2011-12-17 10:54:38 580

转载 warning: operation on ‘i’ may be undefined

dest[i++]=src[i];这行代码,编译时会遇到警告:warning: operation on ‘i’ may be undefined(对于i变量的操作,有可能是未定义的)改成i++;dest[i] = src[i];则警告消失。

2011-08-30 22:16:32 7941 2

转载 warning: dereferencing type-punned pointer will break strict-aliasing rules

【转载自】http://www.zeali.net/entry/454【以下是原文】warning: dereferencing type-punned pointer will break strict-aliasing rules  在 gcc 2.x 下编译没有

2011-08-28 10:38:53 6659 1

原创 Lock screen when logged in gnome env as root

gnome桌面环境下,root用户不能锁屏,官方的解释是出于各种安全性的考虑。我知道对于Linux主义者,直接用root作为第一身份登录系统是必须被千刀万剐的,可惜我不是完美主义者,我是方便主义者。OK,无论如何,我现在非常需要在root下有一个锁屏的方法——为了应付公司

2011-08-27 18:36:38 1317 1

原创 交叉编译时不要忘记-march编译选项

必须写在这,要不然过一段时间又要忘记。每个编译器都有默认的-march选项,其值一般都随主流芯片走。比如老一点的arm交叉编译器,默认的选项可能是-march=armv4t,新一点的则可能是-march=armv6等等。用老编译器编出来的二进制文件,只要没使用特殊指令

2011-08-27 15:33:54 3883

原创 LOG Helper

在终端打印LOG是最基础、最易用、某种程度上也是最经济的Debug方式。但是Base的规模大了,管理LOG也不是一件轻松的事情。最近项目组在Linux内核里写一个新的mach,和该mach专用的驱动。面对一坨一坨的日益增加的代码,Debug时想要从LOG上一眼找出问题点,以及

2011-03-05 18:12:00 1749

原创 nfs 和 tftp

在Linux各个发行版上,软件的安装方法略有不同,但使用方法基本一样。记录一下nfs和tftp的服务器端配置方法,免得每次都要google。修改了配置之后记得重启服务。//==========================================

2011-01-23 11:24:00 795

原创 用脚本动态创建设备节点

Linux系统的主设备号本来是固定的,这没有什么不好。但是,有许多理由要求Linux系统能够自动为设备动态分配主设备号——只要设备驱动程序提出申请。尤其是当你不打算给你的客户提供驱动程序源代码的时候,为了避免与客户的系统中的其他设备相冲突,采用动态获取主设备号的办法是一个好主意。

2010-12-03 07:43:00 1302

原创 bashrc and vimrc

最近不得不在CentOS上工作,因为这是客户要求使用的Linux图形桌面。但CentOS在易用性上的考虑太少,默认的.bashrc和.vimrc一点也不好用。我只好把Ubuntu上的.bashrc和.vimrc复制过去,幸好有VMware这种东西。VMware每次都帮

2010-10-20 20:29:00 1096

原创 PCI总线驱动概要

在《Linux内核修炼之道》里,文章作者对如何使用Kconfig和Makefile定位内核源码有精彩的阐述。并且该作者还在《Linux那些事儿 之 我是PCI》系列文章中对X86架构下的PCI总线和设备驱动做了很详细的分析。由于工作需要,我在此基础上分析了ARM体系结构的PCI总

2010-10-05 22:08:00 5618 2

原创 Ubuntu的常用编程环境备忘录

使Ubuntu成为时下最流行的发行版之一的一个重要原因就是它只需一张CD的空间,就能够安装一套用户体验很不错的操作系统。但现在一张CD的空间限制已经使Ubuntu工作组越来越锱铢必较,他们必须小心翼翼地筛选应用程序和函数库,以便节省出更多空间增加新的功能和UI效果。在10.04中

2010-10-05 00:43:00 766

原创 BMP格式详解

2009年7月10日BMP格式详解前言记得本科时候讲《计算机体系结构》的老师评价过中外教材的差别,他说按照老外的体系结构教材,你就真的能够做出一个CPU来(虽然只能做出很老很老的CPU),但国内的教材就很难教到这个程度。几个月前我从零开始写了一个简单的bmp解

2010-09-30 15:47:00 1112

原创 Alpha Blend and some Optimizition

2009年2月24日 今天发现了我们的UIFramework中Redraw()函数的动作逻辑在绘制Alpha通道图像时有bug。一般情况下,Alpha Blend 的算法很简单:C = C0 * ( 1 - A1 ) + C1 * A1      【公式1】其

2010-09-30 15:39:00 1035

原创 最简单的samba服务器配置

不管在家里还是在公司,由于我被Source Insight毒害得很深,所以总是Windows和Ubuntu Linux两个系统同时使用。于是两个系统之间数据共享就成为最基本的要求。 使用虚拟机运行Linux的情况稍微简单,直接配置虚拟机的共享路径即可。但也有遗憾之处是Li

2010-09-30 15:34:00 736

原创 线程终止

2009年4月15日 前段时间多线程编程,在调试的时候遇到麻烦。多线程的debug太困难,打log是不好用的,因为log本身也不一定是线程安全的。后来借助eclipse的可视化debug工具以及helgrind,问题算得到了比较好的解决。 这礼拜遇到的bug是,程

2010-09-30 15:03:00 772

原创 前言

本来没有兴趣再开博客了,但公司的web访问管理策略太严格,禁止打开非技术类博客网页,无奈还是要在这里开垦一块自留地,写一些备忘录性质的东西,以及保存一些引用源代码很多的文章,毕竟这里插入代码的功能对于撰写技术文档提供了方便。总的来说还是自用为主,如果顺便帮助了其他人,善莫大焉。以前跟哈萨伯聊起过,多亏了互联网上其他人的分享,使我们的学习变得更方便,可惜我自己对互联网几乎没有贡献。以后会慢慢写一些吧,也算是对互联网分享精神的回馈。

2010-09-30 14:44:00 385

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除