Android系统源码,在c++代码中加堆栈调用日志输出调试功能

 分类:Android, C++, Java, Others 阅读 (1,575)  Android系统源码,在c++代码中加堆栈调用日志输出调试功能已关闭评论
5月 122020
 

本文基本Android8.1系统源码

stack.log的第一个参数是LOG_TAG,第二个是固定的ANDROID_LOG_DEBUG

 Posted by on 2020-05-12

树莓派gpio编程(二)声控器输入

 分类:C++, Others, Others 阅读 (1,408)  树莓派gpio编程(二)声控器输入已关闭评论
8月 222019
 
一、编程语言

使用c语言和wiringPi库

具体见树莓派gpio编程(一)控制Led灯

二、硬件连接

对于这种开关量的传感器,一般有三个针脚VCC、GND、OUT,通常情况下连接方式如下:

vcc接树莓派引脚的3.3v

gnd接树莓派的gnd

out接树莓派gpio0

三、软件编写

新建inputtest.c,并输入以下内容

四、软件编译

使用下面的命令编译程序

五、运行程序

在控制台中输入以下命令运行程序

./inputtest

六、运行结果

当发出声音,声控器被触发的时候会输出input is 1

否则输出input is 0

七、其他说明
  1. 对于避障器、测速器等开关量的传感器都可以使用此程序读取输入
 Posted by on 2019-08-22

软件开发中用到的几种图

 分类:Others, Others 阅读 (1,311)  软件开发中用到的几种图已关闭评论
8月 152019
 

一、思维导图

二、流程图

三、DFD数据流图

四、时序图

五、UML类图

 Posted by on 2019-08-15

树莓派gpio编程(一)控制Led灯

 分类:C++, Linux, Operating System, Others, Uncategorized 阅读 (2,613)  树莓派gpio编程(一)控制Led灯已关闭评论
7月 112019
 
一、编程语言

  个人比较喜欢c语言,所以后面的编程都会使用c语言。

  使用c语言的话可以使用用wiringPi类库。

  1、查看是否安装wiringPi类库,输入下面的命令,如果返回版本信息则表示已安装wiringPi库

  2、如果没有安装,输入下面的命令安装

  3、wiringPi源码

  github上有一个wiringPi的代码库,但那个并不是wiringPi的源码,其源码在下面这个地址中

  https://git.drogon.net/

二、硬件连接

  将Led灯的两个针脚分别连到GND和GPIO0两个接口上,网上有的教程还说要连上一个电阻,但是俺没有,就直接连上了。

三、软件编写

  新建一个ledblink.c文件,然后输入下面的代码

四、软件编译

  输入下面的命令编译

五、执行程序查看效果

  编译完成后,会生成一个ledblink的可执行程序,输入./ledblink运行,看led灯是不是开始闪烁了!

 Posted by on 2019-07-11

Linux下使用dd制作树莓派系统盘

 分类:Linux, Operating System, Others, Others 阅读 (3,282)  Linux下使用dd制作树莓派系统盘已关闭评论
7月 052019
 
一、文章背景

  本文基于Ubuntu16,pi zero WH,树莓派镜像版本2019-06-20_raspbian_full

  树梅派官方推荐使用Etcher制作镜像,但是下载速度实在是太慢了,使用dd也可以搞定。

二、下载镜像

  官网镜像下载地址:https://www.raspberrypi.org/downloads/raspbian/

  首先下载树梅派系统镜像包,是一个zip文件,如:2019-06-20_raspbian_full_latest.zip

  解决zip包后得到img镜像文件,如:2019-06-20-raspbian-buster-full.img

三、准备sd卡

  将sd卡连接电脑,然后执行df -h

  拔掉sd卡后再执行一次df -h

  有变化的那一项即是sd卡的设备名称,如:/dev/sdc1

  /dev/sdc即是sd卡的主设备名,先执行下面命令卸载它的子分区

  假如还有sdc2、sdc3统统卸载掉

四、烧录系统

  执行下面的命令烧录系统

  if=后面是镜像所在的路径

  of=后面是sd卡设备名称

 Posted by on 2019-07-05

树莓派无键盘情况下配置无线网络

 分类:Others, Others 阅读 (2,878)  树莓派无键盘情况下配置无线网络已关闭评论
7月 032019
 

转载自:http://shumeipai.nxez.com/2017/09/13/raspberry-pi-network-configuration-before-boot.html

 

不算是什么新功能了,在树莓派3B发布后不久,树莓派官方 Raspbian 系统久加入了允许在开机前对 WiFi 网络进行配置的机制。

注意,这个方法仅适用于全新安装树莓派系统到 SD 卡之后没有做过任何 Wi-Fi 配置的情况下有效。如果你之前配置过 Wi-Fi,再用本方法系统会默认使用已有的配置而忽略这里的配置。因此建议使用前重新安装系统。

一、WiFi 网络配置

用户可以在未启动树莓派的状态下单独修改 /boot/wpa_supplicant.conf 文件配置 WiFi 的 SSID 和密码,这样树莓派启动后会自行读取 wpa_supplicant.conf 配置文件连接 WiFi 设备。

操作方法简单:将刷好 Raspbian 系统的 SD 卡用电脑读取。在 boot 分区,也就是树莓派的 /boot 目录下新建 wpa_supplicant.conf 文件,按照下面的参考格式填入内容并保存 wpa_supplicant.conf 文件。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
country=CN
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
 
network={
ssid="WiFi-A"
psk="12345678"
key_mgmt=WPA-PSK
priority=1
}
 
network={
ssid="WiFi-B"
psk="12345678"
key_mgmt=WPA-PSK
priority=2
scan_ssid=1
}

说明以及不同安全性的 WiFi 配置示例:
#ssid:网络的ssid
#psk:密码
#priority:连接优先级,数字越大优先级越高(不可以是负数)
#scan_ssid:连接隐藏WiFi时需要指定该值为1

如果你的 WiFi 没有密码

1
2
3
4
network={
ssid="你的无线网络名称(ssid)"
key_mgmt=NONE
}

如果你的 WiFi 使用WEP加密

1
2
3
4
5
network={
ssid="你的无线网络名称(ssid)"
key_mgmt=NONE
wep_key0="你的wifi密码"
}

如果你的 WiFi 使用WPA/WPA2加密

1
2
3
4
5
network={
ssid="你的无线网络名称(ssid)"
key_mgmt=WPA-PSK
psk="你的wifi密码"
}

如果你不清楚 WiFi 的加密模式,可以在安卓手机上用 root explorer 打开 /data/misc/wifi/wpa/wpa_supplicant.conf,查看 WiFi 的信息。

二、开启 SSH 服务

如果通过 ssh 连接树莓派出现 Access denied 这个提示则说明 ssh 服务没有开启。要手动开启的话,和 WiFi 配置相似,同样在 boot 分区新建一个文件,空白的即可,文件命名为 ssh。注意要小写且不要有任何扩展名。
树莓派在启动之后会在检测到这个文件之后自动启用 ssh 服务。随后即可通过登录路由器找到树莓派的 IP 地址,通过 ssh 连接到树莓派了。(有关开启 SSH 服务的详细方法

如果需要远程桌面方式操作树莓派,可以通过 ssh 安装 xrdp,再用 Windows 的远程桌面客户端连接到树莓派

这个小技巧对于没有有线网卡、没有标准 USB 接口来直连键鼠,但集成了 WiFi 的树莓派 Zero W 尤其实用。

 Posted by on 2019-07-03

QT中信号槽的断开

 分类:Others, Qt 阅读 (4,607)  No Responses »
2月 142019
 

对对象每次执行一次connect的操作,都会增加一个信号槽连接

如果我们想断开某个对象的所有信号槽,调用对象的disconnect()方法

如果想断开某一个信号槽,在connect时将返回的对象保存一下,然后调用QObject的disconnect()就可以了,如下面的代码:

dialog.cpp文件

dialog.h头文件

界面图片:

 Posted by on 2019-02-14

Qt中引用win32库的方法

 分类:Others, Qt 阅读 (5,986)  No Responses »
1月 282019
 

开发环境:QT+Vs2015

想使用SetCursorPos来控制鼠标的位置

#include <Winuser.h>

但是编译时,总时提示无法解析的外部符号

网上搜了一上,需要引用User32.lib库,最后发现需要在项目的.pro文件中加入user32的库的引用,如下:

如果编译还是不成功,把项目目录下生成的debug目录(build-xxxx-Desktop_Qt_5_10_1_MSVC2015_32bit-Debug)删除掉,再重新编译一下

 Posted by on 2019-01-28
1月 272019
 

  QLabel并不支持鼠标按下、松开等事件,我们需要新建一个QLabel的子类来支持。

  编写qadvancedlabel.h

  然后增加QAdvancedLabel的cpp文件,qadvancedlabel.cpp

  然后在程序中的实现:

  mainwindow.h文件

  mainwindow.cpp文件

  记得一定要设置setMouseTracking,否则只有按下时才会响应move事件。

 

 

 Posted by on 2019-01-27

qt中发送http请求

 分类:C++, Others, Qt 阅读 (5,389)  No Responses »
8月 172018
 

  在QT中发送http请求要使用下面的几个类

  • QNetworkAccessManager – 用于实际发送网络请求
  • QNetworkRequest – 用于构造http请求的内容
  • QNetworkReply – 用于构造http响应的内容

  首先要在项目文件里增加network的支持,在xxx.pro里面加上如下代码

  下面是具体的代码:

  logindialog.h

  logindialog.cpp

 

 

 

 Posted by on 2018-08-17