自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(326)
  • 资源 (15)
  • 论坛 (8)
  • 问答 (1)
  • 收藏
  • 关注

转载 如何看懂UDS诊断报文

UDS介绍UDS(Unified Diagnostic Services,统一的诊断服务)诊断协议是ISO 15765 和ISO 14229 定义的一种汽车通用诊断协议,位于OSI模型中的应用层,它可在不同的汽车总线(例如CAN, LIN, Flexray, Ethernet 和 K-line)上实现。UDS协议的应用层定义是ISO 14229-1,目前大部分汽车厂商均采用UDS on CAN的诊断协议。UDS本质上是一系列的服务,共包含6大类26种。每种服务都有自己独立的ID,即SID。SID

2021-01-20 13:24:06 72

转载 C++数组作为参数

C++里面把数组当参数这个知识点一直不是很清晰。这次把他明确化了。非引用参数非引用参数的情况还是比较简单的。int compute(int array[4]);int compute(int array[]);int compute(int *array); // 编译器会把上面两个解释成这个1 2 3以上三种原型都会被编译器解释为指针,因此即使在数组定义里写了长度为4,依然可以传任意长度的数组进来。引用参数首先,明确数组的引用和引用的数组。。int compute

2021-01-19 12:14:13 14

原创 Android apk开发

Android apk不使用main函数,使用消息触发和HMI界面触发。adb install SampleTest.apk

2021-01-07 10:54:03 29

原创 查看apk的md5值

sxn7szh@SGHVM011035-VM:~/demo/target$ keytool -printcert -jarfile Service.apkSigner #1:Signature:Owner: EMAILADDRESS=system@beantechs.com, CN=Platform Test, OU=SCM Dept., O="BeanTechs Co., Ltd.", L=Shanghai, ST=Shanghai, C=CNIssuer: EMAILADDRESS=syst

2021-01-06 16:51:13 16

转载 #ifdef __cplusplus

本来这个是只应该出现在运用cpp编程的工程中的,但是,就算是单片机编程,都已经会看到这个了,所以提出来解释一下。条件编译,属于c/c++共有的,但是由于在有些场合,在c++代码内嵌c语言能使编程更加便利。使用c语言编译器gcc编译下面代码:#include<stdio.h>#ifdef __cplusplusextern "C" {#endif int a=10;#ifdef __cplusplus}#endifint main(void){

2021-01-06 10:31:34 7

原创 Android Selinux Binder 权限

.te文件allow _app hal_d_default:binder { call transfer };

2021-01-05 16:03:00 19

原创 std::vector初始化

#include <iostream>#include <stdint.h>#include <vector>using namespace std;int main(){ std::vector<uint8_t> temp0(0,0); cout << "vector size:" << temp0.size() << endl; std::vector<uint8_t> temp1(.

2021-01-05 10:21:27 25

原创 Android.bp常用语法

编译lib和头文件cc_prebuilt_library_shared { name: "lib***", vendor: true, export_include_dirs: ["include"], target: { android_arm64: { srcs: ["lib64/libm***.so"], }, }, strip: { none:true, }}.

2021-01-04 20:17:02 48

原创 命名空间和宏定义的问题

宏定义不受命名空间的约束宏是在编译前预处理阶段处理的定义的宏从define到undef或者文件尾有效,所以宏的作用域和它所在的代码块无关。

2021-01-02 14:57:37 34

原创 Android service crash导致调用接口出问题

public hidl_death_recipient void serviceDied(uint64_t cookie, const wp<IBase>& who); linkToDeath(this, /*cookie*/ 0);

2020-12-17 18:20:45 14

原创 C++中使用C库函数

1. 头文件中声明extern "C" {#include ".h"}2. 对函数声明extern "C" {int s(void);int a(void);}

2020-12-15 20:03:14 16

原创 Android系统获取mac地址

第一种使用Linux系统函数#include <net/if.h> int sockfd; struct ifreq ifr; sockfd = socket(AF_INET, SOCK_DGRAM, 0); if (sockfd == -1) { perror("socket error"); return -1; } strncpy(ifr.ifr.

2020-12-15 10:14:43 26

原创 C++:实现将字符串被空格符分割为两个子串

#include <iostream>#include <cstring>#include <string>using namespace std;int main(){ std::string request_str("akldjgk klk"); std::cout << "request_str:" << request_str.c_str() << std::endl; int index = re.

2020-12-11 13:55:16 26

转载 andorid属性设置

HAL(C++)property_getproperty_setframework and app(JAVA)SystemProperties.getSystemPropertise.set===================================================================================================================================SystemProp..

2020-12-11 10:14:17 14

转载 pfctl

PF防火墙的配置命令补充说明pfctl命令是PF防火墙的配置命令,PF防火墙( 全称:Packet Filter )是UNIX LIKE系统上进行TCP/ip流量过滤和网络地址转换的软件系统。PF同样也能提供TCP/IP流量的整形和控制,并且提供带宽控制和数据包优先集控制。PF最早是由Daniel Hartmeier开发的,现在的开发和维护由Daniel和openBSD小组的其他成员负责。PF防火墙的功能很多,本站只列举一些基本配置。激活要激活pf并且使它在启动时调用配置文件,编辑/e.

2020-12-10 16:33:47 19

原创 C++:判断链表是否有环

判断给定的链表中是否有环。如果有环则返回true,否则返回false。/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: bool hasCycle(ListNode *head)

2020-12-03 23:01:16 34

原创 C++:最小的K个数

题目描述输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4。示例1输入[4,5,1,6,2,7,3,8],4返回值[1,2,3,4]class Solution {public: vector<int> GetLeastNumbers_Solution(vector<int> input, int k) { vector<int> res.

2020-12-03 22:07:56 20

原创 C++:string和数组相互赋值

#include <iostream>#include <cstring>#include <string>using namespace std;int main(){ char data = 1; string element; element.assign(&data, sizeof(data)); element += ""; int size = element.size(); cout << "data .

2020-11-24 18:58:44 111

原创 C++:使用libjsoncpp读写json文件

"libjsoncpp"json不支持8进制和16进制数值转换。#include "json/json.h" Json::Reader reader; Json::Value root; std::ifstream in("/data/shared/dtc_info.json", std::ios::binary); if(!in.is_open()) { ALOGE("[%s] Error opening file", __func_

2020-11-05 13:48:06 80

原创 C++:share_ptr使用

#include <iostream>#include <memory>using namespace std;int main(){ std::shared_ptr<int> p1 = nullptr; if(p1) { std::cout << "p1 != nullptr" << std::endl; } else { std::cout << "p1 == nullptr" << s.

2020-11-04 09:51:36 11

转载 Jason与Xml的解析过程

前言:json和xml都是用来进行数据的传输和交换的,是目前用来传输数据用的最多的两种技术,下面来认识一下它们及其解析过程。一、Jason1、什么是Jason?JSON是一种基于文本的轻量级数据交换格式,源自JavaScript,用于Web服务和其他连接的应用程序,易于人阅读和编写, 同时也易于机器解析和生成 JSON是存储和交换文本信息的语法,类似XML JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript,

2020-11-03 09:59:14 14

原创 C++:字符串和数字数组转换

#include <vector>#include <string>#include <string.h>#include <iostream>#include <iomanip>#include <stdint.h>namespace msgBldr{ uint8_t hexToByte(const std::string from, const uint32_t offset) { .

2020-10-31 07:03:23 24

原创 android.mk转换为android.bp

m -j blueprint_toolsandroidmk android.mk > android.bp

2020-10-26 15:42:01 11

原创 Android.bp添加prebuilt lib

cc_prebuilt_library_shared { name: "lib", vendor: true, srcs: ["lib.so"],}cc_prebuilt_library_shared { name: "lib", vendor: true, target: { android_arm64: { srcs: ["lib.so"], }, },}

2020-10-26 13:19:51 81

原创 C++:auto方法查找数组合法元素

#include <stdint.h>#include <iostream>enum ThirdPartDomainDid{ ENGINNER_MODE_SETTING = 0xFDE0u,};const uint16_t ThirdPartDidList[] ={ ENGINNER_MODE_SETTING};bool isThirdDomainDid(const uint16_t did){ bool isFind = f.

2020-10-23 20:13:47 25

原创 Android HIDL callback作为参数

_hidl_cb not called, but must be called once_hidl_cb必须在函数结束前被调用,不能异步调用。不能把这个_hidl_cb保存在本地,有结果以后再调用返回结果。要使用subscribe ICallback返回结果。

2020-10-22 14:36:51 59

原创 C++:虚继承

#include <iostream>#include <stdint.h>using namespace std;class BaseClass{public: BaseClass() { cout << "Base Class Constructor" << endl; } ~BaseClass() { cout << "Base Class Destructor" << endl; }};.

2020-10-15 10:50:17 11

原创 C++:vector assign

#include <iostream>#include <vector>#include <stdint.h>using namespace std;int main(){ vector<uint8_t> data; uint8_t arr[10] = {1, 2, 3, 4, 5}; data.assign(arr, arr + 10); cout << "vector size: " << data.si.

2020-10-07 13:30:31 10

转载 C++:vector assign

// vector assign#include <iostream>#include <vector>int main (){ std::vector<int> first; std::vector<int> second; std::vector<int> third; first.assign (7,100); // 7 ints with a value of 100 std::v.

2020-09-29 20:24:53 65

转载 C++:vector内存分配resize和reserve

Sizesize指目前容器中实际有多少元素,对应的resize(size_type)会在容器尾添加或删除一些元素,来调整容器中实际的内容,使容器达到指定的大小。CapacityCapacity指最少要多少元素才会使其容量重新分配,对应reserve(size_type new_size)会这置这个capacity值,使它不小于所指定的new_size。所以用reserve(size_type)只是扩大capacity值,这些内存空间可能还是“野”的,如果此时使用“[ ]”来访问,则可能会越界

2020-09-29 20:07:28 39

原创 C++:创建定时器测试线程

#include <chrono>#include <thread>void thread_task(int n) { while(true) { std::this_thread::sleep_for(std::chrono::seconds(n)); static char state = 0; //state = 0~1 LOG_D("server enter into test task. Stat.

2020-09-24 17:04:01 29

转载 Linux快速创建文件软链接

使用格式:创建文件软链接:ln -s 源文件 链接文件,注意:源文件最好使用绝对路径创建文件硬链接:ln 源文件 链接文件注意:软链接不占存储空间,硬链接类似python变量引用,一个变量可有多个引用,当所有引用被删除后文件才真正被删除。创建文件软链接:创建文件硬链接:创建文件夹的软链接。不需要提前创建protobuf文件,直接使用下面命令即可创建软链接文件。ln -s ../../../api/protobuf protobuf...

2020-09-07 19:27:19 80

转载 nohup和&后台运行,进程查看及终止

1.nohup用途:不挂断地运行命令。语法:nohup Command [ Arg … ] [ & ]  无论是否将 nohup 命令的输出重定向到终端,输出都将附加到当前目录的 nohup.out 文件中。  如果当前目录的 nohup.out 文件不可写,输出重定向到 $HOME/nohup.out 文件中。  如果没有文件能创建或打开以用于追加,那么 Command 参数指定的命令不可调用。退出状态:该命令返回下列出口值:    126 可以查找但不能调用 Com.

2020-09-03 18:58:24 48

原创 远程桌面工具:X2Go

X2Go是一个开源的Linux远程桌面访问客户端,使用桌面共享NX协议。X2Go速度快,比VNC协议更好。它是RDP和VNC桌面共享协议的最佳替代方案。X2Go支持多个client远程同一台Linux服务器,client可以运行在windows或者Linux系统上面。是一款支持多用户、跨平台的远程桌面工具。下载链接:https://wiki.x2go.org/doku.php/download:starthttps://wiki.x2go.org/doku.php/doc:installatio

2020-09-03 18:31:21 84

原创 LeetCode: 电话号码的字母组合

给定一个仅包含数字2-9的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例:输入:"23"输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].说明:尽管上面的答案是按字典序排列的,但是你可以任意选择答案输出的顺序。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/letter-combinations-o..

2020-08-27 08:02:04 36

原创 protobuf C++ 生成代码中自动匹配set方法

如果proto结构体的变量是基础变量,比如int、string等等,那么set的时候直接调用set_xxx即可。如果变量是自定义类型,那么C++的生成代码中,就没有set_xxx函数名,取而代之的是三个函数名:set_allocated_xxx() release_xxx() mutable_xxx()使用set_allocated_xxx()来设置变量的时候,变量不能是普通栈内存数据,必须是手动new出来的指针,至于何时delete,就不需要调用者关心了,protobuf内部会自动delet

2020-08-25 17:19:54 105

原创 Android HIDL接口

C++函数参数.hal文件中列出的参数会映射到 C++ 数据类型。未映射到基元 C++ 类型的参数会通过常量引用进行传递。对于具有返回值(具有generates语句)的每个 HIDL 函数,该函数的 C++ 参数列表中都有一个附加参数:使用 HIDL 函数的返回值调用的回调函数。有一种情况例外:如果generates子句包含直接映射到 C++ 基元的单个参数,则使用回调省略(回调会被移除,而返回值则会通过正常的return语句从函数返回)。函数返回值传输错误和返回类型...

2020-08-13 16:01:42 124

原创 Android架构学习

Native层就是本地框架。这些层大致如此区分:Java应用程序无需过多解释,基本可以理解为各个App,由Java语言实现。Java框架层就是常说的Framework,这层里东西很多也很复杂,比如说主要的一些系统服务如ActivityManagerService、PackageManagerService等,我们编写的Android代码之所以能够正常识别和动作,都要依赖这一层的支持。这一层也是由Java语言实现。Native层这部分常见一些本地服务和一些链接库等。这一层的一个特点就是通过C和C+...

2020-08-07 13:08:48 36

原创 C++:将数组数据转化为string

#include <iostream>#include <sstream>#include <string>using namespace std;int main(){ unsigned char buf[10] = {0, 0, 0, 0, 5, 0xF, 9, 0xA5, 0x30, 0x30}; string output; for(int i = 0; i < 10; i++) { std::stringstream data.

2020-07-27 16:53:54 314

原创 C++:lambda表达式

Lambda函数是C++ 11中引入的现代C++的一个直观概念。使用lambda表达式可编写内嵌的匿名函数。而不必编写独立函数或函数对象,使代码更容易阅读和理解。Lambda语法lambda表达式以方括号[]开始(这称为lambda引入符),其后是花括号{},其中包含lambda表达式体。lambda表达式被赋予自动类型变量basicLambda。第二行使用普通的函数调用语法执行lambda表达式。autobasicLambda = [ ] { cout << "Hello fro.

2020-07-26 10:32:35 52

vnc_viewer.rar

用来登录linux的window客户端软件。实现跨平台远程桌面登录。本着共享精神,调整下载积分为1。

2019-09-12

x11vnc-0.9.14-dev.tar.gz

arm板上面可以用来远程登录的。VNC Server端和Client端的代码。

2019-09-12

CAN OPEN协议介绍

详细讲解了CAN总线协议、CAN OPEN协议,适合初学者学习。

2018-01-11

Linux程序设计 中文第4版.pdf

Linux程序设计 中文第4版.pdf; 图灵程序设计丛书; 人民邮电出版社; 陈建、宋健建译;

2017-05-30

Linux设备驱动开发详解:基于最新的Linux 4.0内核.pdf

Linux设备驱动开发详解:基于最新的Linux 4.0内核.pdf 机械工业出版社; 宋宝华编制。

2017-05-30

pcduino安装vnc进行远程控制

详细介绍了pcduino安装vnc server的步骤,以及在windows端安装vnc viewer的过程。介绍了如何通过vnc控制pcduino。

2017-05-20

Linux操作系统下C语言编程入门

介绍了Linux下的进程、通信、文件操作等linux系统编程API函数。

2017-05-17

C和指针,C陷阱与缺陷,C专家编程。C语言编程三剑客打包奉送

C和指针,C陷阱与缺陷,C专家编程。 C语言编程三剑客,打包奉送。

2017-03-25

S3C2440全套中文手册(1-27章)

S3C2440;芯片手册;中文完整版

2017-03-25

UNIX环境高级编程_第二版中文

UNIX环境高级编程

2017-03-25

[C程序设计(第四版)学习辅导].谭浩强.扫描版

[C程序设计(第四版)学习辅导].谭浩强.扫描版

2017-03-23

[C程序设计(第四版)].谭浩强.扫描版

[C程序设计(第四版)].谭浩强.扫描版

2017-03-23

程序设计实践

程序设计实践

2017-03-23

Effective.C.中文版

完整版

2017-03-23

MSP430系列16位超低功耗单片机原理与应用

清华大学出版社,作者沈建华。433页完整版。

2017-03-23

BSP软件工程师求推荐工作,上海

发表于 2017-05-04 最后回复 2019-07-02

怎么实现自动向手机QQ群里面发送图文消息?

发表于 2018-12-27 最后回复 2019-01-26

STM32F103 实现usart1和 ADC1的DMA接收

发表于 2018-08-03 最后回复 2018-08-04

shell脚本实现字符删除

发表于 2017-04-29 最后回复 2017-05-02

MSP430F149单片机无法进入USART接收中断

发表于 2017-03-24 最后回复 2017-04-04

求通信协议参考书籍

发表于 2016-11-13 最后回复 2016-12-21

关于扩展地址总线和数据总线的用法?

发表于 2016-08-18 最后回复 2016-09-26

定义一个类的对象时,编译报错:error: 'NMIap2StackDevAudioCmp' does not name a type

发表于 2015-09-17 最后回复 2015-10-09

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

TA关注的人 TA的粉丝

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