- 博客(222)
- 资源 (27)
- 收藏
- 关注
原创 【Rust】字符串String类型学习
使用String::from方法创建字符串,.更新String使用push_str和push追加字符串方法不会改变字符串的所有权使用+操作符或者 format!宏连接字符串Rust不允许使用下标访问字符串里面的单个字符
2024-07-10 22:54:26 532
原创 【Rust】function和methed的区别
function和methed很多都是相通的。不同点在于,methed定义在结构体里面,并且它的第一个参数肯定是self,代表结构体实例。
2024-06-23 18:09:45 508
原创 【usb】linux内核USB键盘驱动解析--普通键值上报及转化
在kbd->old中保存了上次报上来的键值,kbd->new中是本次报上来的键值。如果上次报了某键值,但是本次没报,说明该按键被释放了,所以上报案件旧释放事件。如果上次没有报某按键而这次报了,说明该按键是这次被按下了,所以要上报按键按下事件。
2023-04-02 16:03:08 866
原创 【usb】linux内核USB键盘驱动解析--LED灯的控制
通过事先准备好urb,然后在里面需要时,直接修改leds数据,然后将该urb发送即可。
2023-04-02 14:38:52 1327 3
原创 【usb】linux内核USB键盘驱动解析--特殊键值转化及上报
总结一下,117和118行的这个for循环,通过依次查看new[0]元素的各个位,确定该位对应的键是否被按下。并将该键值转化为输入子系统定义的键值,后上报给输入子系统。
2023-03-26 20:05:20 1051
原创 【USB】windows热插拔通知接口分析
window提供了方法,可以用来监听设备的热插拔事件。hRecipient,表示用来接收通知的窗口或者服务。NotificationFilter,过滤器,用来过滤设备通知。Flags,用来说明hRecipient是个窗口还是服务。通知必须绑定到窗口或者服务,也就是说在监听之前,你必须先创建一个窗口或者服务。其基本结构为,具体结构根据字段值的不同而不同,typedef struct _DEV_BROADCAST_HDR {
2023-02-26 11:31:47 1196
原创 【usb】winusb 接口设计分析
对应USB协议里面的标准接口描述符。通过该参数我们可以知道,接口有多少个端点。对于控制传输和等时传输,winusb分别提供了传输接口。。对于批量传输和中断传输,则统一使用一套接口。。上述接口都通过Overlapped机制来控制同步传输或者异步传输。可以通过修改管道策略,个性化的控制管道的行为。除了上述接口,winusb也提供了各种请求,可以灵活使用。比如可以获取接口的所有端点信息等。
2023-02-23 11:28:47 971
原创 【USB】USB video class (UVC)相关概念学习
标准的视频控制接口描述符,和USB标准接口描述符一样,如下,UVC的配置描述符和标准USB设备的配置描述符是一致的。字段协议和示例有差异。
2023-01-31 17:10:45 1593
原创 【OpenHarmony】napi基本用法之promise实现
promise是javascript语言中的一个对象,其可以表示一个异步操作的成功或者失败。promise的优势是链式调用,在过去,要想做多重的异步操作,会导致经典的回调地狱。有了promise的链式调用,就可以把回调绑定到返回的 Promise 上,形成一个 Promise 链。console . log('初始化');throw new Error('有哪里不对了');console . log('执行「这个」”');console . log('执行「那个」');
2022-11-07 21:39:43 1450
原创 【OpenHarmony】napi基本用法----HelloWorld
【代码】【OpenHarmony】napi基本用法----HelloWorld。
2022-10-04 20:49:44 1183
原创 【OpenHarmony】系统应用权限管控与签名
底层由BundleMgr提供了判断是否是三方应用的能力。上层是否是系统应用取决于签名时的字段,如果是则为普通应用,是则为系统应用。
2022-09-15 21:51:14 2925 8
原创 【OpenHarmony】usb gadget 配置hdc功能cfg文件解读
OpenHarmony configfs 配置usb gadget的hdc功能。cfg文件解读
2022-06-19 22:42:54 1866 3
原创 【linux】windows terminal配置远程linux环境自动登录
一、实现ssh脚本自动登陆目的通过windows terminal实现自动登陆云端机器。做法需要windows安装了wslwsl安装了expect将如下内容,保存为"autossh.ssh",放在wsl的路径下/home/wuchw/private/autossh.sh注意里面的wuchengwen 192.168.1.1 及22改成自己的账户、IP及端口号给予可执行权限chmod +x autossh.sh#!/usr/bin/expect -fspawn ssh w
2022-05-17 10:35:16 2348
原创 【wsl2】常用命令及ext4硬盘扩展与压缩
首先扩展硬盘微软官方这篇文章写的很详细,我就不在赘述了:扩展 WSL 2 虚拟硬盘的大小压缩硬盘首先说一下使用场景。比如我想要下载一套aosp的代码,首先我从国内镜像站点,下载一个压缩包,包含了所有aosp代码。压缩包大小181G。完了我再把这个压缩包解压,解压的时候发现wsl2的磁盘太小了,解压失败,所以就扩展磁盘大小到512G.解压完成,删除压缩包,wsl剩余的空间很大,但是物理机剩余硬盘空间太少了。所以我要释放部分wsl硬盘。压缩操作如下:首先在wsl里面执行fstri..
2022-05-15 12:37:31 2726 2
原创 【usb】安卓usb网络共享(RNDIS)
一、RNDIS简介微软官方对RNDIS的介绍说白了,就是将安卓设备作为一个网卡,通过USB连接到电脑上,供电脑上网。二、使用指导首先为了验证电脑上网确实走的是usb。先把你电脑上的网卡及网线拔了,wifi关了。并且确保此时电脑无法上网。然后把手机通过USB线连接到电脑上,在手机的设置里面搜索USB,找到类似USB共享网络,并打开开关。然后电脑就可以正常上网啦,试下看看能否打开百度。三、补充说明我们在讨论RNDIS,但是上述使用指导里面好像没有看到RNDIS的字眼呀,这是咋回事?
2022-04-09 14:39:37 30141 7
原创 【usb】USB Core功能解析(一)-------linux那些事儿之我是usb
文章目录一、drivers/usb目录结构一、drivers/usb目录结构usb目录下包含如下目录和文件:atm cdns3 class core dwc3 gadget image Kconfig misc mtu3 phy roles storage usbipc67x00 chipidea common dwc2 early host isp1760 Makefile mon musb ren
2022-04-04 19:11:43 2707
原创 【OpenHarmony】make_shared和make_unique失败时总会抛异常,和是否禁用异常无关
一、背景在项目代码里面有很多这种判断:handler_ = std::make_shared<UsbServerEventHandler>(eventRunner_, pms);if (handler_ == nullptr) { USB_HILOGE(MODULE_USB_SERVICE, "Init failed due to create handler error"); return false;}对此不同人有不同看法:有些人认为应该判空,防止后面使
2022-03-29 20:01:34 4558
原创 【usb】usb协议历史发展介绍-------linux那些事儿之我是usb
一、简介USB来自于intel,同时IBM,微软,等企业也参与的标准的建设。在历史发展中,USB为什么能够存活到现在?相比于串口,并口等,其最大的特点是:速度快,扩展能力强,易用性高。USB2.0最快达到480MB/s,USB3.0最快达到4.8GB/s。USB的各个版本都是兼容的。linux在2.6.31版本的内核中对USB3.0进行了支持。USB支持多功能的设备,也就是说一个设备可以同时有多个功能。这是通过在一个设备中包含多个接口,每个借口支持一个功能,来实现的。USB可以支持多
2022-03-26 22:39:31 1143
原创 【OpenHarmony】ohos_shared_library默认关闭了异常机制no-exceptions
文章目录一、背景二、探索1、BUILD.gn2、usbmgr.gni3、ohos.gni4、cxx.gni5、BUILDCONFIG.gn三、总结一、背景发现usb_manager仓下,usb_service.cpp文件里面,有些地方使用了make_shared方法来创建堆内存。并在后面通过判断指针是否为空,来判断内存是否申请成功,如下:handler_ = std::make_shared<UsbServerEventHandler>(eventRunner_, pms);if (
2022-03-19 11:34:42 10543
原创 【c/c++】打印uint8_t类型---nothrow---no-exceptions
1、通常打印uint8_t类型的时候,我们直接使用%u来打印。但是更加严谨的做法是使用%hhu来打印。详细说明参见cppreference2、我们new之后,应该对指针进行判空,判断new是否执行成功很多时候我们会直接这样写Xxx *obj = new Xxx();,但是这样写,当new执行失败后会抛出异常,而不是返回nullptr,所以后续的判空也就是无效的。正确的写法如下,应该给new标记nothrow,这样出错时就会返回nullptr:详细参考cppreference#include &
2022-03-18 17:13:26 6245
原创 【mac】iterm2配置出漂亮且好用的界面(持续更新)
一、安装oh-my-zsh首先按照这里说的,安装好zsh和oh-my-zsh同时可以配合这个视频食用。安转完后,界面已经很好看了。二、让界面更加炫酷brew install pfetch安装命令,可以查看机器的系统信息。可以把命令放在.zshrc文件的末尾,这样每次启动zsh的时候就会自动打印出这些信息。brew install neofetch这条命令也可以查看。curl zh-cn.wttr.in/xian 查看指定城市的天气情况,更多用法可以看wttr.in网站
2021-10-21 22:12:25 2579 2
原创 【c++11 新特性系列】auto自动推倒
auto可以一条语句声明多个变量,但是这些变量类型必须相同。引用其实是使用引用的对象,特别是当引用被用作初始值的时候,真正参与初始化的其实是引用对象的值。此时编译器以引用对象的类型作为auto的类型。auto一般会忽略掉顶层const,对常量对象取地址是一种底层const如果希望推断出的auto类型是一个顶层const,需要明确指出。不能为非常量引用绑定字面值。...
2021-03-14 20:24:40 210
原创 【程序员的自我修养】目标文件里有什么--第三章学习笔记
文章目录3.1 目标文件的格式3.1 目标文件的格式#mermaid-svg-kohvJmyun0aVPKsm .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-kohvJmyun0aVPKsm .label text{fill:#333}#mermaid-svg-kohvJmyun0aVPKsm .node
2021-03-14 20:22:24 221 2
原创 【django】使用笔记
Django 使用笔记前言一、相关命令二、修改登录界面功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入前言这里是我在...
2021-03-14 20:21:46 112
原创 js 复习笔记
1、重复声明相同变量,不会报错,如果第二次声明时没有赋值,那么其将保持原来的值:var carName = "porsche";var carName; carName的值是"porsche".2、可以使用+号连接字符串,如果将数字和字符串连接,那么首先会进行数学运算,然后进行字符串连接:var x = 3 + 5 + "8";//x = "88"3、x ** y 产生的结果与Ma...
2021-03-14 20:18:43 195 1
原创 【设计模式】观察者模式
设计模式分为三类:创建型、结构型、行为型。观察者模式属于行为型。在如下场景中,一个类的状态改变或者某个动作会触发另一个类的改变,如果不使用观察者模式,那么这两个类就会耦合在一块,如果需要被触发的类越来越多,那么程序就会越来越臃肿,越乱。观察者通过抽象通知接口,将订阅者和发布者隔离开,实现了结偶。...
2020-12-20 22:15:04 152
原创 【程序员的自我修养】编译和链接--------第二章学习笔记
build的四个过程:#mermaid-svg-lMOhEUJNSj0tvmrN .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-lMOhEUJNSj0tvmrN .label text{fill:#333}#mermaid-svg-lMOhEUJNSj0tvmrN .node rect,#mermaid-.
2020-12-20 16:17:39 243 1
最详细最牛逼cmake英文版教程,没有之一
2020-08-09
IEEE Standard for a Software Quality Metrics Methodology
2019-04-12
UML和模式应用(第3版)英文版
2019-02-24
有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
2018-11-22
软工原理与实践影印版第四版英文版课后答案-第4版-Shari Lawrence Pfleeger
2018-11-22
直方图均衡
2018-10-21
图像平移,缩放,旋转,偏移(vs2017+opecv)
2018-10-21
linux多线程程序实验,用不同线程完成一个矩阵乘法,以及子进程计算斐波那契数列,父进程输出结果
2018-05-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人