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

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

本文基本Android8.1系统源码

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

 Posted by on 2020-05-12

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

 分类:C++, Others, Others 阅读 (1,085)  树莓派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

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

 分类:C++, Linux, Operating System, Others, Uncategorized 阅读 (2,161)  树莓派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

qt中发送http请求

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

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

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

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

  下面是具体的代码:

  logindialog.h

  logindialog.cpp

 

 

 

 Posted by on 2018-08-17
5月 212018
 

出现这种问题一般是没有找到libxxx.so的库,需要配置系统环境变量LIBRARY_PATH或者LD_LIBRARY_PATH

几种配置系统环境变量的方法:

1. 在命令行中使用export,如

此方法在新建命令行窗口或者切换到其他窗口后,系统环境变量就无效了

2. 在~/.bashrc或者/etc/profile中修改

vi ~/.bashrc #打开编辑bashrc文件

source ~/.bashrc #使bashrc的文件修改立即生效

此方法修改的会永乐有效

 Posted by on 2018-05-21
4月 252018
 

sockaddr和sockaddr_in两者本质上是一样的,同样的结构,同样的大小,只是sockaddr用于bind, connect时传入参数,而sockaddr_in用于设置端口信息等.所在在使用的时候两者可以互相转化.

 Posted by on 2018-04-25
1月 182018
 

  C++出现: 1 duplicate symbol for architecture x86_64可能的问题如下:

  1. 你可能在一个头文件中定义了一个变量或者函数,但是这个头文件被多个cpp文件include了
  2. 你可能把一个静态变量(static)定义了多次
  3. 你可能在一个cpp文件中将一个函数定义了多次

  可以查看详细的错误信息,看看是哪个变量或者函数被重复定义了。

  本人这此遇到此问题是因为把一个静态变量的定义放在头文件里了,应该放到cpp文件里就没问题了。

 

 Posted by on 2018-01-18

c++处理ctrl+c的中断

 分类:C++, Others 阅读 (3,256)  No Responses »
1月 222017
 

  如果按ctrl+c时未做一些处理 ,可能会造成一些资源未释放,比如网络端口被占用。

  捕获ctrl+c需要使用c库的signal函数,具体代码如下:

  输出结果:

 

 Posted by on 2017-01-22
1月 172017
 

  本文为了说明基类和派生类的构造函数的声明和使用,主要是以下几点:

  1. 派生类所有构造函数都会默认调用基本的默认构造函数(没有参数的构造函数,如Base())
  2. 派生类如果想显示的调用基类的带参数的构造函数,要在派生类的初始化器处调用,而不能在构造函数的实现里调用(即不能在花括号里调用{})

  示例代码如下:

  输出结果如下:

 

 Posted by on 2017-01-17
5月 052016
 

1. vector转数组: 使用memcpy将vector中的数据拷贝到数组中

注意: memcpy的第三个参数,拷贝长度必须乘以sizeof(vec[0])

2. 数组转vector:使用vector的初始化构造函数

注意:这个版本的vector的构造函数,第一个参数为源数据的指针起始地址,第二个参数为要拷贝的个数(不是内存字节长度),所以要除以一个sizeof(int)

 

 Posted by on 2016-05-05