<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Hard Road, Hard Code]]></title><description><![CDATA[不生产内容，只是优质内容的搬运工]]></description><link>https://blog.youkuaiyun.com/Hao_top</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Hao_top]]></copyright><item><title><![CDATA[Github Page + Hexo 搭建个人博客]]></title><link>https://blog.youkuaiyun.com/Hao_top/article/details/120617537</link><guid>https://blog.youkuaiyun.com/Hao_top/article/details/120617537</guid><author>Hao_top</author><pubDate>Tue, 05 Oct 2021 20:01:20 +0800</pubDate><description><![CDATA[title: Github Page + Hexo 搭建个人博客
categories: Hexo

Github Page + Hexo 搭建个人博客
准备环境
首先查看环境是否安装，主要用到的工具有git，node，npm
git version
node -v
npm -v

安装Hexo
如果以上环境准备好了就可以使用 npm 开始安装 Hexo 了。也可查看 Hexo 的详细文档
在命令行输入执行以下命令：
npm install -g hexo-cli
安装 Hexo 完成后，再执行下列命令，.]]></description><category></category></item><item><title><![CDATA[Selenium的使用]]></title><link>https://blog.youkuaiyun.com/Hao_top/article/details/118461576</link><guid>https://blog.youkuaiyun.com/Hao_top/article/details/118461576</guid><author>Hao_top</author><pubDate>Sun, 04 Jul 2021 19:48:42 +0800</pubDate><description><![CDATA[Selenium的使用选择元素的基本方法通过webdriver自带的元素选择器等选择元素选择元素操纵元素通过CSS Selector 选择元素通过xpath选择元素
选择元素的基本方法
通过webdriver自带的元素选择器等选择元素
选择元素
通过find_element_by_xxxxxx或find_elements_by_xxxxxx
xxxxx为选择元素的关键字，常用关键字有：
1.id定位：find_element_by_id(self, id_)
2.name定位：find_element_by]]></description><category></category></item><item><title><![CDATA[Linux下配置Selenium]]></title><link>https://blog.youkuaiyun.com/Hao_top/article/details/118457566</link><guid>https://blog.youkuaiyun.com/Hao_top/article/details/118457566</guid><author>Hao_top</author><pubDate>Sun, 04 Jul 2021 10:23:01 +0800</pubDate><description><![CDATA[Linux下使用Selenium进行自动化测试selenium的安装安装chrome以及chrome driverChrome driver 配置
selenium的安装
pip install selenium

安装chrome以及chrome driver
简单点直接从官网下载deb安装包，此时双击直接用默认应用商店安装可能会出现如下错误

解决方案
sudo apt-get install gdebi

接着在右击你要安装的 .deb 文件，选择 Open With —&gt; GDebi Pack]]></description><category></category></item><item><title><![CDATA[Python学习-网络编程]]></title><link>https://blog.youkuaiyun.com/Hao_top/article/details/118197298</link><guid>https://blog.youkuaiyun.com/Hao_top/article/details/118197298</guid><author>Hao_top</author><pubDate>Fri, 25 Jun 2021 22:44:30 +0800</pubDate><description><![CDATA[Python学习-网络编程引言网络IP端口协议TCP/IP网络模型UDP
引言
计算机网络是学习编程的基础四大件，而网络协议则是计算机网络的基础TCP/IP 中有两个具有代表性的传输层协议，分别是 TCP 和 UDP，本文将介绍下这两者以及它们之间的区别。
网络
网络编程就是通过程序使不同主机上的软件能够通过网络进行通信
IP
ip是用来在网络中标记一台电脑的地址，在本地局域网内是唯一的。
端口
一台电脑有一个ip，但是一台电脑上有多个软件，怎么识别到不同软件进行通信，这时就需要端口，每个软件的端口在本地主]]></description><category></category></item><item><title><![CDATA[Python学习-多线程和多进程]]></title><link>https://blog.youkuaiyun.com/Hao_top/article/details/118162249</link><guid>https://blog.youkuaiyun.com/Hao_top/article/details/118162249</guid><author>Hao_top</author><pubDate>Wed, 23 Jun 2021 22:33:04 +0800</pubDate><description><![CDATA[Python学习-多线程和多进程基本概念线程线程的创建线程共享全局变量和锁进程进程的创建进程间的通信
基本概念

进程：程序的一次执行
线程：CPU的基本调度单位

线程
线程的创建
线程的创建主要通过threading模块
print('主线程开始')

from threading import Thread
import threading
from time import sleep

def sub_fun(arg1,arg2):
    print('子线程开始')
    print('子线程]]></description><category></category></item><item><title><![CDATA[Python学习-从面向对象开始]]></title><link>https://blog.youkuaiyun.com/Hao_top/article/details/118072266</link><guid>https://blog.youkuaiyun.com/Hao_top/article/details/118072266</guid><author>Hao_top</author><pubDate>Mon, 21 Jun 2021 22:30:25 +0800</pubDate><description><![CDATA[**面向对象编程**(Object Oriented Programming)(OOP)，是一种程序设计思想
与之相对应的事**面向过程编程**(Procedure Oriented Programming)(POP)
 两者区别如下：
把大象放进冰箱需要几个步骤？
 1. 面向过程编程：
     打开冰箱、放进大象、关闭冰箱]]></description><category></category></item><item><title><![CDATA[Linux安装Jupyter并且远程访问]]></title><link>https://blog.youkuaiyun.com/Hao_top/article/details/118060076</link><guid>https://blog.youkuaiyun.com/Hao_top/article/details/118060076</guid><author>Hao_top</author><pubDate>Sun, 20 Jun 2021 13:16:12 +0800</pubDate><description><![CDATA[pip的安装
下载pip安装脚本
wget https://bootstrap.pypa.io/get-pip.py

使用python命令运行安装脚本
python3 get-pip.py

jupyter的安装
pip install ipython  
pip install jupyter


]]></description><category></category></item><item><title><![CDATA[自动驾驶基础-AEB]]></title><link>https://blog.youkuaiyun.com/Hao_top/article/details/118016400</link><guid>https://blog.youkuaiyun.com/Hao_top/article/details/118016400</guid><author>Hao_top</author><pubDate>Fri, 18 Jun 2021 09:42:50 +0800</pubDate><description><![CDATA[基本概念
AEB 全称自动紧急制动（Automatic Emergency Braking）
通过雷达、摄像头共同监测前方车辆以及行人情况，若探测到潜在碰撞风险，系统将采取相应预警及制动措施，从而避免发生碰撞或减轻碰撞损害程度
工作过程

第一阶段 一级预警，可视化及声音提醒，减震调整，进入预刹车状态
第二阶段 二级预警，减震装置警示性调整，制动提示
第三阶段 舒适性制动，双闪亮起
第四阶段 安全带预紧，全力制动

硬件架构
硬件主要由传感器、控制器与执行器三部分组成
传感器
目前AEB主流方案采用的环境感]]></description><category></category></item><item><title><![CDATA[Linux系统编程-守护进程]]></title><link>https://blog.youkuaiyun.com/Hao_top/article/details/117902557</link><guid>https://blog.youkuaiyun.com/Hao_top/article/details/117902557</guid><author>Hao_top</author><pubDate>Mon, 14 Jun 2021 13:41:19 +0800</pubDate><description><![CDATA[基本概念

Linux后台服务进程
独立于控制终端
周期性的执行某种任务
不受用户登陆和注销的影响
一般采用以d结尾的名字

进程组和会话
进程组: 一个进程包含多个进程
会话: 多个组组成一个会话.
创建会话的进程不能是组长进程;
一般创建会话是父进程先fork子进程, 然后父进程退出, 让子进程调用setsid函数
创建一个会话, 这个子进程既是会长也是组长;
只要是创建了会话, 这个进程就脱离了控制终端的影响.

创建守护进程

父进程fork子进程, 然后父进程退出.
目的是: 子进程肯定不是组长进]]></description><category></category></item><item><title><![CDATA[Linux系统编程-进程间通讯]]></title><link>https://blog.youkuaiyun.com/Hao_top/article/details/117876217</link><guid>https://blog.youkuaiyun.com/Hao_top/article/details/117876217</guid><author>Hao_top</author><pubDate>Sun, 13 Jun 2021 14:17:36 +0800</pubDate><description><![CDATA[基本概念
Linux环境下，进程地址空间相互独立，每个进程都有不同的用户地址空间，一个进程的全局变量在另一个中是看不到的，要交换数据必须通过内核，在内核中开辟一块缓冲区，一个进程写，另一个读，这种机制就是进程间通信

常用的进程间的通讯方式有以下几种：

管道 (使用最简单)
信号 (开销最小)
共享映射区 (无血缘关系)
本地套接字 (最稳定)

管道Pipe
创建管道
pipe函数

函数作用: 创建一个管道
函数原型: int pipe(int fd[2]);
函数参数: 若函数调用成功，fd[0]存]]></description><category></category></item><item><title><![CDATA[Linux系统编程-进程控制]]></title><link>https://blog.youkuaiyun.com/Hao_top/article/details/117768999</link><guid>https://blog.youkuaiyun.com/Hao_top/article/details/117768999</guid><author>Hao_top</author><pubDate>Thu, 10 Jun 2021 13:09:41 +0800</pubDate><description><![CDATA[基本概念
程序和进程
1.程序：编译好的二进制文件，占用磁盘空间，静态
2.进程：程序的运行过程，占用内存、CPU等，动态
并行和并发
1.并行：一边吃饭一边看电影，这就是并行
2.并发：可以先暂停吃饭去看电影，再暂停看电影去吃饭，这就是并发
在一个时间段内, 是在同一个cpu上, 同时运行多个程序。
如：若将CPU的1S的时间分成1000个时间片，每个进程执行完一个时间片必须无条件让出CPU的使用权，这样1S中就可以执行1000个进程。
进程状态
初始态，就绪态，运行态，挂起态与终止态
创建进程
exec]]></description><category></category></item><item><title><![CDATA[数据结构（C语言版）]]></title><link>https://blog.youkuaiyun.com/Hao_top/article/details/117626935</link><guid>https://blog.youkuaiyun.com/Hao_top/article/details/117626935</guid><author>Hao_top</author><pubDate>Sun, 06 Jun 2021 14:38:30 +0800</pubDate><description><![CDATA[数据结构（C语言版）
绪论
1、在计算机运行过程中，如何合理的组织数据、高效的处理数据，这就是数据结构
2、数据结构包括两个方面的内容：数据的逻辑结构和存储结构
① 逻辑结构是从逻辑关系上描述数据，通常有四类：集合、线性、树状和图状
② 存储结构是逻辑结构在计算机中的存储表示，有两类：顺序和链式
3、抽象数据类型（ADT）：提供类型属性和相关操作的抽象描述，下面是链表的抽象数据类型的定义，定义完抽象数据类型就可以进行接口的开发和实现了
4、算法是为了解决某类问题而规定的操作方法
① 算法具有五个特性：有穷性]]></description><category></category></item><item><title><![CDATA[gdb调试方法]]></title><link>https://blog.youkuaiyun.com/Hao_top/article/details/117406564</link><guid>https://blog.youkuaiyun.com/Hao_top/article/details/117406564</guid><author>Hao_top</author><pubDate>Sun, 30 May 2021 22:11:19 +0800</pubDate><description><![CDATA[介绍
GDB（GNU Debugger）是GCC的调试工具。其功能强大, 现描述如下：
GDB主要帮忙你完成下面四个方面的功能：
1、启动，启动程序, 可以按照你的自定义的要求随心所欲的运行程序。
2、断点，可让被调试的程序在你所指定的断点处停住。（断点可以是条件表达式）
3、检查，当程序被停住时, 可以检查此时你的程序中所发生的事，如打印变量。
4、更改，动态的改变你程序的执行环境，如更改变量。
生成调试信息
使用gcc的 -g 参数即可，如：
gcc -g demo.c -o demo
然后使用gdb启]]></description><category></category></item><item><title><![CDATA[CANoe系列教程-分析窗口-State Tracker]]></title><link>https://blog.youkuaiyun.com/Hao_top/article/details/117391864</link><guid>https://blog.youkuaiyun.com/Hao_top/article/details/117391864</guid><author>Hao_top</author><pubDate>Sat, 29 May 2021 22:13:37 +0800</pubDate><description><![CDATA[State Tracker（状态追踪）窗口是用来显示比特值和一些状态值，特別适合显示数字输入和输出量，以及状态信息。它可以用来分析系统状态的转换相关的信号和变量，也可以将一些离散的状态如报文的发送、总线的负载等等进行可视化。
State Tracker窗口的添加
1、状态栏中Analysis -&gt; State Tracker添加
2、从Measurement Setup中右键Insert State Tracker Window添加

添加信号
如Graphic窗口的介绍一样可以通过拖拽和右键的方式添]]></description><category></category></item><item><title><![CDATA[CAN总线知识串联]]></title><link>https://blog.youkuaiyun.com/Hao_top/article/details/117384463</link><guid>https://blog.youkuaiyun.com/Hao_top/article/details/117384463</guid><author>Hao_top</author><pubDate>Sat, 29 May 2021 13:48:48 +0800</pubDate><description><![CDATA[CAN总线知识串联
CAN Matrix定义
通常主机厂在设计电气相关软件时，总是不可避免的要设计软件的输入和输出，而在汽车上各个电气部件之间都是通过CAN总线进行通信，因此在制定软件功能规范时往往第一步就是CAN Matrix的定义，如下图。

一个完整的CAN Matrix通常应该包括以下信息

CAN Matrix转化为DBC
&nbsp;&nbsp;通常主机厂提供的信号矩阵只是一个Excel文件，而要将信号矩阵应用于开发、模拟、测试等，就需要先将其转换成DBC(Database Can)文件，DBC]]></description><category></category></item><item><title><![CDATA[CANoe系列教程-分析窗口-Graphic]]></title><link>https://blog.youkuaiyun.com/Hao_top/article/details/117374195</link><guid>https://blog.youkuaiyun.com/Hao_top/article/details/117374195</guid><author>Hao_top</author><pubDate>Fri, 28 May 2021 21:25:16 +0800</pubDate><description><![CDATA[Graphic窗口是以信号为导向展示和分析曲线的窗口
Graphic窗口的打开
1、从主菜单栏中的 Analysis -&gt; Graphics新建
2、从Measurement Setup中的Graphics模块打开即可
添加信号
1、从Symbol Explorer将信号拖拽至Graphics中
2、从Trace窗口中将信号拖拽至Graphics中
3、在Graphics窗口左侧信号栏中右键选择Add Signals添加

Graphic工具栏中常用工具的使用
如测量光标、差分光标、比例调整、日志导入]]></description><category></category></item><item><title><![CDATA[CANoe系列教程-分析窗口-Trace]]></title><link>https://blog.youkuaiyun.com/Hao_top/article/details/117338218</link><guid>https://blog.youkuaiyun.com/Hao_top/article/details/117338218</guid><author>Hao_top</author><pubDate>Thu, 27 May 2021 21:31:24 +0800</pubDate><description><![CDATA[Trace窗口是我们做总线测试分析时最常用的窗口，它能实时显示总线上通信的数据，并且有多种辅助工具便于测试人员的查看分析，与报文的细节查看，过滤等功能
创建并打开Trace窗口
1、从主菜单栏中的Trace窗口进入
2、从Measurement Setup中的Trace模块打开即可

工具栏使用
需对Trace窗口工具栏中以及右键菜单中的选项熟练使用
包括细节查看、统计分析、过滤功能，导出保存功能等


...]]></description><category></category></item><item><title><![CDATA[CANoe系列教程-工程创建与通道配置]]></title><link>https://blog.youkuaiyun.com/Hao_top/article/details/117305496</link><guid>https://blog.youkuaiyun.com/Hao_top/article/details/117305496</guid><author>Hao_top</author><pubDate>Thu, 27 May 2021 20:04:18 +0800</pubDate><description><![CDATA[工程创建与通道配置
点击File中的New按钮选择相应的模板后点击Create Configuration，一个工程文件就创建完成了

通道数目和通信波特率配置
选择Channel Usage 就可以对总线的通道数进行配置


]]></description><category></category></item><item><title><![CDATA[CAN总线基本知识]]></title><link>https://blog.youkuaiyun.com/Hao_top/article/details/117263657</link><guid>https://blog.youkuaiyun.com/Hao_top/article/details/117263657</guid><author>Hao_top</author><pubDate>Tue, 25 May 2021 20:19:01 +0800</pubDate><description><![CDATA[CAN总线基本知识
基本概念
CAN 是Contoller Area Network 缩写，即控制域网络，简单来说就是用于汽车不同电子器件之间传输网络。
CAN 总线两个主要ISO国际标准是：ISO11898和ISO11519
ISO11898 定义了通信速率为 125 kbps～1 Mbps 的高速 CAN 通信标准，属于闭环总线，传输速率可达1Mbps，总线长度 ≤ 40米。
ISO11519 定义了通信速率为 10～125 kbps 的**低速 CAN **通信标准，属于开环总线，传输速率为40kbp]]></description><category></category></item><item><title><![CDATA[Ubuntu配置Git并利用Gitee（码云）进行项目及代码的管理]]></title><link>https://blog.youkuaiyun.com/Hao_top/article/details/116326433</link><guid>https://blog.youkuaiyun.com/Hao_top/article/details/116326433</guid><author>Hao_top</author><pubDate>Sat, 01 May 2021 10:54:27 +0800</pubDate><description><![CDATA[Ubuntu配置Git并利用Gitee（码云）进行项目及代码的管理
git安装与卸载
apt-get install git
apt-get remove git

git配置
配置用户名
git config --global user.name “your name”

配置邮箱
git config --global user.email “your email”

查看配置信息
git config --global --list

生成公钥
ssh-keygen -t rsa -C "your e]]></description><category></category></item></channel></rss>