- 博客(85)
- 资源 (1)
- 收藏
- 关注
原创 pickle序列化模块
为什么需要序列化便于存储。序列化过程将文本信息转变为二进制数据流。便于传输。当两个进程在进行远程通信时,彼此可以发送各种类型的数据。无论是何种类型的数据,都会以二进制序列的形式在网络上传送。序列化pickle.dump()pickle.dump(obj, file, protocol=None,*,fix_imports=True)序列化后的对象obj以二进制形式写入文...
2019-09-05 15:12:13 294
原创 protobuf grpc安装
linux环境注:如果缺少依赖安装依赖sudo apt-get install autoconf automake libtool make g++ unzip zlib1g zlib1g.devprotobuf注:要安装grpc需要的版本需要卸载Ubuntu自带版本 apt-get remove libprotobuf-dev步骤:git clone -b v3.7.0...
2019-09-04 16:00:28 2709
原创 go test单元测试
test代码命名规则文件名要以 ‘_test’ 结尾测试函数以 ‘Test’ 开头实例被测函数testMe.gopackage mainfunc f1(n int) int{ if n == 0{ return 0 } if n == 1{ return 1 } return f1(n - 1) +f1(n -...
2019-08-31 14:47:02 793
原创 grpc实例(2)
python生成代码安装grpc_python_plugin:sudo pip3 install grpcio protoc -I . --python_out=. --grpc_out=. --plugin=protoc-gen-grpc=/usr/bin/grpc_python_plugin route_guide.proto注: --plugin=protoc-gen-grp...
2019-08-28 14:13:43 1240
原创 grpc实例(1)
#include #include #include #include #include #include #include <grpc/grpc.h>#include <grpcpp/channel.h>#include <grpcpp/client_context.h>#include <grpcpp/create_channel.h...
2019-08-28 14:11:56 1770
原创 mysql使用教程
一、简介Mysql是最流行的关系型数据库管理系统RDBMS(Relational Database Management System:关系数据库管理系统)。RDBMS即关系数据库管理系统的特点:数据以表格的形式出现每行为各种记录名称每列为记录名称所对应的数据域许多的行和列组成一张表单若干的表单组成database术语数据库: 数据库是一些关联表的集合数据表: 表示数据的...
2019-08-27 13:48:56 240
原创 程序自启动和手动启动区别
区别自动运行要考虑如何加载环境变量;手动运行在用户登陆的时候,环境变量已经加载了解决自动运行缺少环境变量时要加上环境变量source /etc/profilesource ~/.bashrc例如:#!/bin/bashsec=100000source /etc/profilesource ~/.bashrcwhile truedo ocrThread=`ps -...
2019-08-23 17:37:19 3147
原创 linux信号(signal)
一、signal本质软中断信号(signal,又简称为信号)用来通知进程发生了异步事件。在软件层次上是对中断机制的一种模拟。二、signal各种类型处理动作一项中的字母含义如下A 缺省的动作是终止进程B 缺省的动作是忽略此信号C 缺省的动作是终止进程并进行内核映像转储(dump core)D 缺省的动作是停止进程E 信号不能被捕获F 信号不能被忽略POSIX.1中列出的信号:...
2019-08-23 17:35:50 340
原创 Docker使用
获取镜像在Docker Hub公共镜像源查找Ubuntu的镜像,使用docker pull获取例如: docker pull ubuntu:16.04列出镜像使用docker images可以列出本机所有镜像删除镜像使用命令docker rmi存储镜像使用命令:docker save例如: docekr save -o ubuntu_16.04.tar ubuntu...
2019-08-23 17:14:28 184
原创 find和grep
findfind 查找范围 查找条件- name 按名称查找find /etc/ -name "*.txt" 查找/etc目录及其子目录下所有包含".txt"的文件按时间查找-ctime 5 五内的时间点修改过的文件-ctime +5 五天前修改或的文件-ctime -5 小于五天修改过的文件-cmin 5 查看距现在...
2019-08-23 16:54:57 155
原创 go 详解
主要特点自动垃圾回收丰富的内置类型函数多返回值错误处理匿名函数和闭包类型和接口并发编程发射语言交互性环境安装windows安装包地址:https://golang.org/dl/。或https://golang.google.cn/dl/。windows上安装完后可以直接在cmd中运行goLinuxsudo apt install golang-go语言结构...
2019-08-22 14:16:01 702
原创 go 并发编程
概念协程与传统的系统级线程和进程相比,协程的最大优势在于其“轻量级”,可以轻松创建上百万个而不会导致系统资源衰竭,而线程和进程通常最多也不能超过1万个。这也是协程也叫轻量级线程的原因。多数语言不支持携程,而是通过库的方式支持,这样如果调用同一个io如本地文件读写都会阻塞其他并发执行轻量级线程。go在语言级别支持协程,叫goroutine。go 关键词后面的语句会以一个新的线程去运行。g...
2019-08-22 14:06:25 245
原创 socket之close和shutdown
定义#include<unistd.h>int close(int sockfd); //返回成功为0,出错为-1.#include<sys/socket.h>int shutdown(int sockfd,int howto); //返回成功为0,出错为-1.该函数的行为依赖于howto的值1.SHUT_RD:值为0,关闭连接的读这一半。2....
2019-08-20 12:43:05 522
原创 YUV422 YUV420 Planar Semi-Planar详解
前言YUV 格式通常有两大类:打包(packed)格式和平面(planar)格式。前者将 YUV 分量存放在同一个数组中, 通常是几个相邻的像素组成一个宏像素(macro-pixel);而后者使用三个数组分开存放 YUV 三个分量,就像 是一个三维平面一样。一、YUV420、YUV420P和YUV420SP区别YUV420: 即打包格式的YUV420YUV420P: 即YUV420 Plan
2018-03-08 10:32:56 18481
原创 配置海思环境
一、挂载SD卡1.使用fdisk工具分区参见海思文档《外围设备驱动 操作指南第6节》2.挂载SD卡mount -t vfat /dev/mmcblk0p1 /mnt_sd二、安装ffmpeg1. 在Ubuntu上交叉编译参见ffmpeg安装文档2.安装到海思拷贝到sd卡,将lib路径加入到海思的环境变量三、交叉编译libusbht...
2018-03-06 15:41:09 915
原创 ffmpeg安装教程
一、在线安装方法这个方法只能安装可执行文件而没有库,不能做开发sudo add-apt-repository ppa:kirillshkrogalev/ffmpeg-next sudo apt-get update sudo apt-get install ffmpeg二、Ubuntu上编译安装安装yasm不安装后面会报错:报错 yasm/nasm 包不存在或者很...
2018-01-31 09:11:59 19672
原创 C++模板
一、定义模板就是实现代码重用机制的一种工具,它可以实现类型参数化,即把类型定义为参数, 从而实现了真正的代码可重用性。模版可以分为两类,一个是函数模版,另外一个是类模版。二、函数模板Template 返回类型 函数名(形参表){//函数定义体 }实例template T min(T x,T y){ return(x<y)?x:y;}void main(
2018-01-23 13:41:09 320
原创 RTSP、RTMP、HTTP协议
一、异同1、RSTP、RTMP、HTTP协议共同点RTSP RTMP HTTP都是用在应用层。理论上这三种协议都可以做直播和点播,但直播一般用RTSP和RTMP点播用HTTP。2、RSTP、RTMP、HTTP协议区别HTTP将数据作为文件处理,所以HTTP不是流媒体协议,RTMP和RTSP是流媒体协议。RTMP是Adobe的私有协议,未完全公开,RTSP和HTTP是共有协议。RTMP一般
2018-01-18 16:48:36 11239 1
原创 c和c++调用Python 多线程安全
一、C++调用Python API多线程安全参考网页:http://blog.csdn.net/cedricporter/article/details/6810665Python不支持多线程,如果在c使用多线程就会报错使用GIL可以解决。主要函数1.PyGILState_STATE PyGILState_Ensure( )确 保当前线程已经可以调用与当前 Python 状态无关的 Python C
2018-01-18 09:49:34 3241 2
原创 java对象生命周期和类生命周期
java对象生命周期对象的整个生命周期大致可以分为7个阶段:创建阶段(Creation)、应用阶段(Using)、不可视阶段(Invisible)、不可到达阶段(Unreachable)、可收集阶段(Collected)、终结阶段(Finalized)与释放阶段(Free)。创建阶段一个Java类(除Object类外)至少有一个父类(Object),这个规则既是强制的,也是隐式的。你可能已经注意到在
2018-01-05 15:04:13 21238 5
原创 java之TCP编程
TCP通信TCP通信是严格区分客户端与服务器端的,在通信时,必须先由客户端去连接服务器端才能实现通信,服务器端不可以主动连接客户端,并且服务器端程序需要事先启动,等待客户端的连接。在JDK中提供了两个类用于实现TCP程序,一个是ServerSocket类,用于表示服务器端,一个是Socket类,用于表示客户端。服务器端(ServerSocket类)构造ServerSocke
2018-01-04 11:50:22 273
原创 Android应用程序组件之activity
Android应用程序组件Activities: 描述UI,并且处理用户与机器屏幕的交互。Services: 处理与应用程序关联的后台操作。Broadcast Revices: 处理Android系统和应用程序之间的通信。Content Providers: 处理数据和数据库管理方面的问题。Activity–android活动Android 系统初始化它的程序是通过活动中的 onCreat
2018-01-04 10:47:53 937
原创 java和C++的重写与重载
参考网页:https://www.cnblogs.com/charlesblc/p/6133605.html重写重载区别重载:指函数名相同,但是它的参数表列个数或顺序,类型不同,但是不能靠返回类型来判断,C++和java区别不大。C++中重写:是指派生类重新定义基类的虚函数。java中的重写:当一个子类继承一父类,而子类中的方法与父类中的方法的名称,参数个数、类型都完全一致时,就称子类中的这个
2018-01-04 10:39:18 1035 1
原创 Tensorflow变量与张量
张量(tensor)在tensorflow程序中所有的数据都通过张量的形式来表示。从功能的角度看,张量可以被理解为多维数组。其中零阶张量表示标量(scalar)也就是一个数;一阶张量为向量,也就是一维数组;n阶张量可以理解为一个n维数组。但张量的实现并不是直接采用数组的形式,它只是对TensorFlow中运算结果的引用。在张量中并没有保存数字,它保存的是如何得到这些数字的计算过程。>>> im
2017-12-26 16:04:37 4199
原创 以读文件的方式解析H264裸码流
H264 NALU类型标识NAL单元中的RBSP数据类型,其中,nal_unit_type为1, 2, 3, 4, 5及12的NAL单元称为VCL的NAL单元,其他类型的NAL单元为非VCL的NAL单元。 0:未规定 1:非IDR图像中不采用数据划分的片段 2:非IDR图像中A类数据划分片段 3:非IDR图像中B类数据划分片段 4:非IDR图像中C类数据划分片段 5:IDR图像的片段 6
2017-12-25 16:20:14 8547 1
原创 TensorFlow安装使用入门
参考网页:http://wiki.jikexueyuan.com/project/tensorflow-zh/TensorFLow基本特征使用图(graph)来表示计算任务。在会话(Session)的上下文(context)中执行图。使用tensor表示数据。使用变量(Variable)维护状态。使用feed和fetch可以为任意的操作赋值和从中获取数据。TensorFlow计算的单位是
2017-12-22 14:05:56 244
原创 Python读写配置configparser
参考:configparser官网一、介绍ConfigParser模块在python中是用来读取配置文件,配置文件的格式跟windows下的ini配置文件相似,可以包含一个或多个节(section),每个节可以有多个参数(键=值)。 注意:在python 3 中ConfigParser模块名已更名为configparser二、API读取read(filename) 直接读取ini文件内容secti
2017-12-14 15:18:02 3489
原创 python基础教程
参考:Python基础教程assert使用assert断言是学习python一个非常好的习惯,python assert 断言句语格式及用法很简单。在没完善一个程序之前,我们不知道程序在哪里会出错,与其让它在运行最崩溃,不如在出现错误条件时就崩溃,这时候就需要assert断言的帮助。python assert断言是声明其布尔值必须为真的判定,如果发生异常就说明表达示为假。可以理解assert断言
2017-12-14 10:27:45 1019
原创 Android layout属性大全
参考网页: http://blog.csdn.net/ican87/article/details/37566679第一类:属性值 true或者 falseandroid:layout_centerHrizontal 水平居中android:layout_centerVertical 垂直居中android:layout_centerInparent 相对于父元素完全居中android:lay
2017-12-13 09:04:16 271
原创 C++虚函数、纯虚函数区别
参考网页:https://www.cnblogs.com/xudong-bupt/p/3570304.html一、虚函数(impure virtual)C++的虚函数主要作用是“运行时多态”,父类中提供虚函数的实现,为子类提供默认的函数实现。子类可以重写父类的虚函数实现子类的特殊化。class A{public: virtual void out2(string s)///默认实现
2017-12-08 11:38:43 733
原创 Android之MediaCodec
参考网页:http://blog.csdn.net/u013028621/article/details/62417181MediaCodec介绍MediaCodec类可以用于使用一些基本的多媒体编解码器(音视频编解码组件),它主要是用来编码和解码音视频数据。编解码器能处理的数据类型为:压缩数据、原始音频数据和原始视频数据。主要的生命周期为:Stopped、Executing、Released。
2017-11-29 15:34:17 615
原创 jrtplib打包发送H264
参考网页:http://blog.csdn.net/u010457344/article/details/31804943 http://blog.csdn.net/xyyangkun/article/details/20453051?utm_source=tuicool&utm_medium=referralRTP数据包的结构,RTP数据包由RTPheader和RTPpayload组成。RTPh
2017-11-29 10:22:31 3002
原创 实时视频传输协议RTP
一、RTP(实时传输协议)RTP全名是Real-time Transport Protocol(实时传输协议),RTP协议常用于流媒体系统(配合RTCP协议或者RTSP协议)。因为RTP自身具有Time stamp所以在ffmpeg 中被用做一种formate.每一个RTP数据报都由头部(Header)和负载(Payload)两个部分组成,其中头部前12个字节的含义是固定的,而负载则可以是音频或
2017-11-24 10:51:47 47235
原创 图片格式详解
一、图像基本数据结构1.RGB和RGBA区别A通道表明这个图像可以有透明效果R,G,B每个分量一般是用一个字节(8位)来表示,所以RGB格式每个像素是24位图,而RGBA每个像素是4*8位。2.RGB和BGR区别两者就是通道顺序不同,信息量上没有区别opencv读取图像默认通道顺序是BGR而RGB现在是主流,所以通过Opencv读取图像需要转换。MJPEG和MPEG-4区别M-JPEG
2017-11-22 16:10:02 1761
原创 MOS管
一、MOS管和三级关做开关时区别工作性质:三极管用电流控制,Mos管用电压控制成本:三极管便宜,mos管贵功耗:三极管功耗大Mos管常用语电源开关,以及大电流地方的开关,三极管用于数字电流开关。MOS管用于高频高速电路,大电流场合,以及对基极或漏极控制电流比较敏感的地方。二、MOS管分类按沟道材料型和绝缘栅型各分N沟道和P沟道两种;按导电方式:MOS管又分耗尽型与增强型,所以MOS场效应
2017-11-20 16:09:14 1051
原创 三极管开关电路
一、NPN和PNP型基本开关电路原理图基极串联电阻是为了保护基极保护CPU的IO口集电极电阻阻值根据驱动电流实际情况调整。基极和发射极需要串接电阻,该电阻的作用是在输入呈高阻态时使晶体管可靠截止,极小值是在前级驱动使晶体管饱和时与基极限流电阻分压后能够满足晶体管的临界饱和,实际选择时会大大高于这个极小值,通常外接干扰越小、负载越重准许的阻值就越大,通常采用10K量级。防止三极管受噪声信号的影响
2017-11-20 15:14:00 1585
原创 三级管
一、概念三极管有两种类型,分别是PNP和NPN,中间有一个箭头一个连基极(b)一个连发射极(e),还有一个引脚是集电极(c)。箭头朝内的PNP,箭头朝外的NPN,导通电电压顺箭头过,电压导通。三极管有截止、放大、饱和三种状态。 二、电流控制关键点是基极和发射极之间的电压情况,总之是箭头的始端比末端高0.7V即导通。对于PNP而言发射极比基极高0.7v(这是硅三极管的导通电压,锗三极管是0.3
2017-11-20 13:33:46 3545
原创 滤波电路
一、前言滤波电路用于滤去整流输出电压中的纹波,一般由电抗元件组成,如在负载电阻两端并联电容器C,或与负载串联电感器L,以及电容电感组成各种复式的滤波电路。二、直流电源组成整流电路: 利用具有单向导电性能的整流元件,把方向和大小都变化的 50Hz 交流电变换为方向不变但大小仍有脉动的直流电。滤波电路:利用储能元件电容器C两端的电压(或通过电感器L的电流) 不能突变的性质,把电容C(或电感L)与
2017-11-20 12:49:49 5269
原创 python3之opencv安装
一、安装pip3 install numpypip3 install opencv-python以上在ubunt上安装成功,但是在树莓派安装失败,在树莓派上Python2可以使用apt install python-opencv安装成功,Python3只能自己编译二、树莓派在python3中安装opencv参考网页:https://www.cnblogs.com/lynsyklate/p/771
2017-11-16 19:13:58 47708 4
原创 STM32CubeMx之定时器
参考网页:http://www.waveshare.net/study/article-642-1.html一、配置点击.ioc重新配置一个工程 开启定时器TIM3,选择内部时钟。 要确定定时的时间我们必须先确定CK_PSC的频率,TIM3配置中选择内部时钟作为时钟源,查看数据手册或者查看代码可以知道TIM3是挂接到APB1时钟线上。 计数器寄存器 (TIMx_CNT)存储的是当前的计数值。预
2017-11-16 15:20:01 8337 1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人