huipengzhao
码龄18年
关注
提问 私信
  • 博客:74,494
    74,494
    总访问量
  • 18
    原创
  • 779,588
    排名
  • 19
    粉丝
  • 0
    铁粉

个人简介:码农一头。

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:辽宁省
  • 加入CSDN时间: 2007-04-14
博客简介:

小完能的专栏

查看详细资料
个人成就
  • 获得16次点赞
  • 内容获得19次评论
  • 获得54次收藏
  • 代码片获得107次分享
创作历程
  • 5篇
    2014年
  • 1篇
    2013年
  • 1篇
    2012年
  • 7篇
    2011年
  • 9篇
    2010年
TA的专栏
  • 编译工具链
    3篇
  • Linux开发环境
    8篇
  • C/C++编程
    1篇
  • Python编程
    5篇
  • Linux内核编程
    1篇
  • 技术资料
    2篇
创作活动更多

2024 博客之星年度评选报名已开启

博主的专属年度盛宴,一年仅有一次!MAC mini、大疆无人机、华为手表等精美奖品等你来拿!

去参加
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

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 ·
4416 阅读 ·
1 点赞 ·
1 评论 ·
3 收藏

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 ·
2599 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

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 ·
5361 阅读 ·
0 点赞 ·
8 评论 ·
3 收藏

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

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

Python编程.利用ctypes调用Windows API

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

开发环境中的环境变量

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

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 ·
765 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

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 ·
608 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

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 ·
8252 阅读 ·
4 点赞 ·
2 评论 ·
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 ·
6701 阅读 ·
0 点赞 ·
1 评论 ·
8 收藏

Lock screen when logged in gnome env as root

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

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

必须写在这,要不然过一段时间又要忘记。每个编译器都有默认的-march选项,其值一般都随主流芯片走。比如老一点的arm交叉编译器,默认的选项可能是-march=armv4t,新一点的则可能是-march=armv6等等。用老编译器编出来的二进制文件,只要没使用特殊指令
原创
发布博客 2011.08.27 ·
4091 阅读 ·
1 点赞 ·
0 评论 ·
7 收藏

LOG Helper

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

nfs 和 tftp

在Linux各个发行版上,软件的安装方法略有不同,但使用方法基本一样。记录一下nfs和tftp的服务器端配置方法,免得每次都要google。修改了配置之后记得重启服务。//==========================================
原创
发布博客 2011.01.23 ·
834 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

用脚本动态创建设备节点

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

bashrc and vimrc

最近不得不在CentOS上工作,因为这是客户要求使用的Linux图形桌面。但CentOS在易用性上的考虑太少,默认的.bashrc和.vimrc一点也不好用。我只好把Ubuntu上的.bashrc和.vimrc复制过去,幸好有VMware这种东西。VMware每次都帮
原创
发布博客 2010.10.20 ·
1124 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

PCI总线驱动概要

在《Linux内核修炼之道》里,文章作者对如何使用Kconfig和Makefile定位内核源码有精彩的阐述。并且该作者还在《Linux那些事儿 之 我是PCI》系列文章中对X86架构下的PCI总线和设备驱动做了很详细的分析。由于工作需要,我在此基础上分析了ARM体系结构的PCI总
原创
发布博客 2010.10.05 ·
5735 阅读 ·
0 点赞 ·
2 评论 ·
15 收藏

Ubuntu的常用编程环境备忘录

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

BMP格式详解

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

Alpha Blend and some Optimizition

2009年2月24日 今天发现了我们的UIFramework中Redraw()函数的动作逻辑在绘制Alpha通道图像时有bug。一般情况下,Alpha Blend 的算法很简单:C = C0 * ( 1 - A1 ) + C1 * A1      【公式1】其
原创
发布博客 2010.09.30 ·
1070 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏
加载更多