ESP-IDF版本:v5.2.1ESP32芯片型号:ESP32C3(4Mflash版本)ESP支持的MAC地址有:typedefenum{ESP_MAC_WIFI_STA,/**
罗德与施瓦茨FPL1007频谱分析仪技术特点
tan_13510075188
信息与通信测试工具
罗德与施瓦茨FPL1007频谱分析仪罗德与施瓦茨RS®FPL1007频谱分析仪主要特点频率范围:5kHz至7.5GHz分析带宽:10MHz,通过选件可升级至40MHz测试功能:支持噪声系数测试,模拟调制信号分析,数字调制信号分析,物联网典型信号分析(Zigbee、Bluetooth、NB-loT)测试精度:3GHz以下的测试不确定度只有0.5dB高灵敏度:在3GHz的平均噪声电平只有-167dBm
【WiFi】QCA6174A根据GPIO加载不同bdwlan文件修改实现
wellnw
WiFiDriver功能实现WiFi
QCA6174ADesignedtodeliveracost-effectiveWi-Fi/Bluetoothcombosolution,theQualcomm®QCA6174ASoC(System-on-Chip)isanintegrated,single-chipsolutioninasmallformfactorformobileandconsumerelectronicsapplicati
蓝牙驱动相关代码
T&P
蓝牙技术
https://blog.csdn.net/absurd/article/details/1852337HCI在主机端的驱动主要是为上层提供一个统一的接口,让上层协议不依赖于具体硬件的实现。HCI在硬件中的固件与HCI在主机端的驱动通信方式有多种,比如像UART、USB和PCCard等等。drivers/bluetooth/bfusb.cstaticintbfusb_probe(structusb
ESPIDF开发ESP32学习笔记【经典蓝牙与BLE】_esp32蓝牙串口库是经典蓝牙还是ble蓝牙
2401_87556590
学习笔记
泛指支持蓝牙协议在4.0以下的模块,一般用于数据量比较大的传输。经典蓝牙模块可再细分为:传统蓝牙模块和高速蓝牙模块。传统蓝牙模块在2004年推出,主要代表是支持蓝牙2.1协议的模块,在智能手机爆发的时期得到广泛支持。高速蓝牙模块在2009年推出,速率提高到约24Mbps,是传统蓝牙模块的八倍。低功耗蓝牙模块(BLE)指支持蓝牙协议4.0或更高的模块,也称为BLE模块(BluetoothLowEne
微信小程序使用蓝牙连接硬件保姆级教程
技术需要沉淀gogo
原生微信小程序微信小程序小程序
一、蓝牙官方api文档设备/蓝牙-通用/wx.startBluetoothDevicesDiscovery(qq.com)二、蓝牙重要参数介绍以及自我理解参数1deviceid蓝牙设备的id这个参数是蓝牙设备的唯一id2uuid服务的id这个是通过deviceid获取到的这个设备服务的uuid3characteristic特性值这个是通过deviceid、uuid获取到的特性值重点:辅助理解这几个
深入了解Android蓝牙Bluetooth【基础+进阶】
愿天堂没有996
androidAndroid开发Bluetooth
基础篇什么是蓝牙?也可以说是蓝牙技术。所谓蓝牙(Bluetooth)技术,实际上是一种短距离无线电技术,是由爱立信公司公司发明的。利用“蓝牙”技术,能够有效地简化掌上电脑、笔记本电脑和移动电话手机等移动通信终端设备之间的通信,也能够成功地简化以上这些设备与因特网Internet之间的通信,从而使这些现代通信设备与因特网之间的数据传输变得更加迅速高效,为[无线通信拓宽道路。蓝牙版本的介绍蓝牙发展至今
Android 蓝牙服务启动
薛文旺
Android系统android
蓝牙是Android设备中非常常见的一个feature,设备厂家可以用BT来做RC、连接音箱、设备本身做Sink等常见功能。如果一些设备不需要BT功能,Android也可以通过配置来disable此模块,方便厂家为自己的设备做客制化。APP操作设备的蓝牙功能,一般是通过标准API-BluetoothAdapter实现,这里我们先不关心具体API的实现flow,先来了解Bluetoothframew
Flutter 中的低功耗蓝牙概述
独立开发者张张
Flutter开发技术flutter
随着智能设备数量的增加,控制这些设备的需求也在增加。对于多种使用情况,期望设备在需要进行控制的同时连接到互联网会受到很大限制,因此是不可行的。在这些情况下,使用低功耗蓝牙(也称为BluetoothLE或BLE)似乎是最佳选择,因为它功耗低,在我们的手机中无处不在,而且无需连接到更广泛的网络。因此,蓝牙应用程序的需求也在不断增长。通过阅读本文,您将了解如何开始在Flutter中开发蓝牙低功耗应用程序
通感算一体化:(一)初步阐明定义和挑战
炸膛坦客
无线感知信息与通信自动驾驶智慧城市
常用的无线感知波无线电波频率高于300MHz的电磁波为微波波段,频率不同、波长不同、传输距离也各不相同。这类微波波长短,绕射能力差,往往用作视距(LoS)或者超视距中继通信。下面将分别介绍微波波段的几种代表性技术:WiFi、mmWave、UWB、Bluetooth、RFID、(NFC、ZigBee、LoRa、NB-IoT)这几种常见技术。前五种见于无线感知领域,后四种包括现在的5G、LTE等多用于
BluetoothEnableFork插件的用法
talk_8
一起TalkFlutter吧android移动开发Flutter
文章目录1.概念介绍2.使用方法2.1简单用法2.2自定义用法3.示例代码4.内容总结我们在上一章回中介绍了"三方包open_settings"相关的内容,本章回中将介绍另外一个三方包:bluetooth_enable_fork.闲话休提,让我们一起TalkFlutter吧。1.概念介绍我们在本章回中主要介绍三方包bluetooth_enable_fork的用法,该包主要用来打开手机上的蓝牙开关,
Android BLE 的扫描配对、连接流程梳理
byte轻骑兵
嵌入式智慧开发探索#T2:蓝牙技术探索与应用android
AndroidBLE(BluetoothLowEnergy,低功耗蓝牙)连接流程涉及多个步骤,主要包括扫描、配对、连接三个阶段。以下是详细的流程梳理:一、前提条件1.1.设备支持:确保Android设备支持BLE功能。从Android4.3(API级别18)开始,Android系统内置了对BLE的支持。1.2.权限申请:在AndroidManifest.xml中申请必要的权限,包括BLUETOOT
RK3568 Android 11 蓝牙BluetoothA2dpSink 获取用于生成频谱的PCM
ansondroider
androidandroidpcmA2dpSink
Android中的A2DPSinkA2DPSink在Android系统中主要用于接收其他蓝牙设备(如手机、平板、电脑等)发送过来的高质量的立体声音频。简单来说,它让你的Android设备可以充当一个蓝牙音箱或耳机的角色。核心功能:接收音频流:通过蓝牙协议接收来自其他设备的音频数据。解码音频:将接收到的音频数据解码成可播放的音频格式。播放音频:通过设备的扬声器或耳机输出解码后的音频。应用场景:无线音
NB-IoT,LoRA,WIFI,蓝牙,Zigbee,MQTT,CoAP之间的关系
hanchufeng2020
物联网
概览(从上往下)应用层协议:MQTT、CoAP...网络层、传输协议:IPv4、IPv6、TCP、6LoWPAN、RPL物理层、数据链路层协议:近距离通信:Dash、NFC、Bluetooth、RFID、IRdA...远距离蜂窝通信:GSM(2G)、WCDMA(3G)、LTE(3.9G)、TD-LTE(4G)、NB-IOT...远距离非蜂窝通信:ZigBee、WiFi、Z-Wave、wHART、L
小程序 蓝牙连接
飞翔的咸鱼
//初始化蓝牙initBlue(){varthat=this;wx.openBluetoothAdapter({//调用微信小程序api打开蓝牙适配器接口success:function(res){console.log('1.初始化蓝牙成功')//that.countdown()//监听蓝牙是否会异常断开//that.getTheBlueDisConnectWithAccident();////
Android车载蓝牙音乐实例(附Demo源码):实现手机播放音乐后车机应用显示音乐名称,歌手,专辑名。且可控制上一曲下一曲,暂停播放功能
Maggie-hub
Android音频车载系统android
一、功能需求功能需求是在Android10以上设备上实现蓝牙音乐功能,细分为两个功能点:1、手机和车载设备实现蓝牙连接(本Demo文只做监听蓝牙连接状态,需手动到设置中连接蓝牙)2、连接蓝牙成功后手机播放音乐时车载设备也能播放音乐,并且在车机应用上显示音乐名称,歌手,专辑名。可在车机应用中点击播放,暂停,上一曲,下一曲控制手机端的音乐播放。二、实现效果图Demo地址:BluetoothMediaD
mac下蓝牙只有sbc传输模式的解决方案
vodkaa
打开终端,输入如下两个命令,可以分别添加apt-x,aac编码:sudodefaultswritebluetoothaudiod"EnableAptXcodec"-booltruesudodefaultswritebluetoothaudiod"EnableAACcodec"-booltrue这两个命令经过笔者本人测试在MacOS10.14.X可以生效,其他版本的系统请自行测试。
HarmonyOS之深入解析蓝牙Bluetooth的功能和使用
╰つ栺尖篴夢ゞ
HarmonyOS传统蓝牙本机的管理传统蓝牙远端设备操作BLE扫描和广播BLE中心设备与外围设备交互BLE外围设备数据管理
一、蓝牙简介①概念蓝牙是短距离无线通信的一种方式,支持蓝牙的两个设备必须配对后才能通信。HarmonyOS蓝牙主要分为传统蓝牙和低功耗蓝牙(通常称为BLE,BluetoothLowEnergy)。传统蓝牙指的是蓝牙版本3.0以下的蓝牙,低功耗蓝牙指的是蓝牙版本4.0以上的蓝牙。当前蓝牙的配对方式有两种:蓝牙协议2.0以下支持PIN码(PersonalIdentificationNumber,个人识
微信小程序蓝牙函数流程图
烟雨国度
微信小程序流程图notepad++
当然可以。我会为您创建一个流程图来展示微信小程序蓝牙操作的主要步骤,并列出相应的on和off函数。然后,我会详细解释每个步骤,并在适当的地方与电脑的工作原理进行类比。首先,让我为您创建一个流程图:开始初始化蓝牙适配器搜索蓝牙设备连接到设备获取服务获取特征值读写数据断开连接关闭蓝牙模块结束wx.onBluetoothAdapterStateChangewx.onBluetoothDeviceFoun
ConnectivityManager里面的连接类型
粤M温同学
Android系统服务器
intTYPE_MOBILE://移动数据连接,不能与连接共存,如果wifi打开,则自动关闭intTYPE_MOBILE_DUN://网络桥接,很老的一个网络提供了通过Bluetooth无线技术接入Internet和其它拨号服务的标准。最常见的情况是在手机上拨号,从膝上型计算机以无线方式接入InternetintTYPE_MOBILE_HIPRI://高优先级的移动数据连接。相同的为{TYPE_M
dongle 工具 蓝牙_bluetooth USB Dongle(蓝牙适配器)怎么用?
leeloo deng
dongle工具蓝牙
展开全部USB蓝牙适配器,就是一个USB接口的蓝牙功能接口。可以给没有蓝牙功能的电62616964757a686964616fe59b9ee7ad9431333366303134脑,添加蓝牙功能。笔记本,很多都内置了蓝牙适配器。但台式机,基本上都没有。要想使用蓝牙耳机、蓝牙音箱和蓝牙手机等,就必须给电脑添加一个蓝牙接口。usb蓝牙接口现在是最方便的方案,又便宜,又安装方便,还便于携带。像下图这样的
AI技术在室内定位的应用
深圳市极光通信科技有限公司
人工智能物联网智能硬件
随着科技的不断发展,人工智能(AI)技术已经逐渐渗透到我们生活的方方面面。其中,AI技术在室内定位领域的应用越来越广泛,为我们的生活和工作带来了诸多便利。本文将深入探讨AI技术在室内定位领域的应用,并分析其优缺点及未来发展趋势。一、AI技术在室内定位领域1.1蓝牙信标的应用蓝牙信标(BluetoothBeacons)蓝牙信标是一种基于蓝牙技术的定位方法。通过在室内布置信标节点,用户携带的移动设备可
微信小程序-人脸检测
飞奔的裸羊羊
微信小程序小程序
微信小程序的人脸检测功能,配合蓝牙,配合ESP32可以实现一些有趣的玩具本文先只说微信小程序的人脸检测功能1、人脸检测使用了摄像头,就必须在用户隐私权限里面声明。修改用户隐私声明后,还需要等待审核,大概一天2、app.json文件中也必须声明"permission":{"scope.bluetooth":{"desc":"获取蓝牙用于硬件链接"},"scope.camera":{"desc":"获
蓝牙攻击工具集合与使用说明
想拿 0day 的脚步小子
kali无线渗透网络渗透无线蓝牙蓝牙攻击
bluez-蓝牙协议栈,提供了蓝牙设备管理和通信的基本功能。btscanner-用于发现和扫描蓝牙设备的工具。bluetoothctl-蓝牙控制终端工具,用于管理蓝牙设备和进行配对等操作。spooftooph-用于欺骗和伪造蓝牙设备的MAC地址的工具。ubertooth-用于无线电频谱分析和蓝牙低功耗(BluetoothLowEnergy)设备监测的工具。crackle-用于解密和分析Blueto
mongodb3.03开启认证
21jhf
mongodb
下载了最新mongodb3.03版本,当使用--auth 参数命令行开启mongodb用户认证时遇到很多问题,现总结如下:
(百度上搜到的基本都是老版本的,看到db.addUser的就是,请忽略)
Windows下我做了一个bat文件,用来启动mongodb,命令行如下:
mongod --dbpath db\data --port 27017 --directoryperdb --logp
【Spark103】Task not serializable
bit1129
Serializable
Task not serializable是Spark开发过程最令人头疼的问题之一,这里记录下出现这个问题的两个实例,一个是自己遇到的,另一个是stackoverflow上看到。等有时间了再仔细探究出现Task not serialiazable的各种原因以及出现问题后如何快速定位问题的所在,至少目前阶段碰到此类问题,没有什么章法
1.
package spark.exampl
你所熟知的 LRU(最近最少使用)
dalan_123
java
关于LRU这个名词在很多地方或听说,或使用,接下来看下lru缓存回收的实现
1、大体的想法
a、查询出最近最晚使用的项
b、给最近的使用的项做标记
通过使用链表就可以完成这两个操作,关于最近最少使用的项只需要返回链表的尾部;标记最近使用的项,只需要将该项移除并放置到头部,那么难点就出现 你如何能够快速在链表定位对应的该项?
这时候多
Javascript 跨域
周凡杨
JavaScriptjsonp跨域cross-domain
 
linux下安装apache服务器
g21121
apache
安装apache
下载windows版本apache,下载地址:http://httpd.apache.org/download.cgi
1.windows下安装apache
Windows下安装apache比较简单,注意选择路径和端口即可,这里就不再赘述了。 2.linux下安装apache:
下载之后上传到linux的相关目录,这里指定为/home/apach
FineReport的JS编辑框和URL地址栏语法简介
老A不折腾
finereportweb报表报表软件语法总结
JS编辑框:
1.FineReport的js。
作为一款BS产品,browser端的JavaScript是必不可少的。
FineReport中的js是已经调用了finereport.js的。
大家知道,预览报表时,报表servlet会将cpt模板转为html,在这个html的head头部中会引入FineReport的js,这个finereport.js中包含了许多内置的fun
根据STATUS信息对MySQL进行优化
墙头上一根草
status
mysql 查看当前正在执行的操作,即正在执行的sql语句的方法为:
show processlist 命令
mysql> show global status;可以列出MySQL服务器运行各种状态值,我个人较喜欢的用法是show status like '查询值%';一、慢查询mysql> show variab
我的spring学习笔记7-Spring的Bean配置文件给Bean定义别名
aijuans
Spring 3
本文介绍如何给Spring的Bean配置文件的Bean定义别名?
原始的
<bean id="business" class="onlyfun.caterpillar.device.Business">
<property name="writer">
<ref b
高性能mysql 之 性能剖析
annan211
性能mysqlmysql 性能剖析剖析
1 定义性能优化
mysql服务器性能,此处定义为 响应时间。
在解释性能优化之前,先来消除一个误解,很多人认为,性能优化就是降低cpu的利用率或者减少对资源的使用。
这是一个陷阱。
资源时用来消耗并用来工作的,所以有时候消耗更多的资源能够加快查询速度,保持cpu忙绿,这是必要的。很多时候发现
编译进了新版本的InnoDB之后,cpu利用率上升的很厉害,这并不
主外键和索引唯一性约束
百合不是茶
索引唯一性约束主外键约束联机删除
目标;第一步;创建两张表 用户表和文章表
第二步;发表文章
1,建表;
---用户表 BlogUsers
--userID唯一的
--userName
--pwd
--sex
create
线程的调度
bijian1013
java多线程thread线程的调度java多线程
1. Java提供一个线程调度程序来监控程序中启动后进入可运行状态的所有线程。线程调度程序按照线程的优先级决定应调度哪些线程来执行。
2. 多数线程的调度是抢占式的(即我想中断程序运行就中断,不需要和将被中断的程序协商)
a) 
查看日志常用命令
bijian1013
linux命令unix
一.日志查找方法,可以用通配符查某台主机上的所有服务器grep "关键字" /wls/applogs/custom-*/error.log
二.查看日志常用命令1.grep '关键字' error.log:在error.log中搜索'关键字'2.grep -C10 '关键字' error.log:显示关键字前后10行记录3.grep '关键字' error.l
【持久化框架MyBatis3一】MyBatis版HelloWorld
bit1129
helloworld
MyBatis这个系列的文章,主要参考《Java Persistence with MyBatis 3》。
样例数据
本文以MySQL数据库为例,建立一个STUDENTS表,插入两条数据,然后进行单表的增删改查
CREATE TABLE STUDENTS
(
stud_id int(11) NOT NULL AUTO_INCREMENT,
【Hadoop十五】Hadoop Counter
bit1129
hadoop
1. 只有Map任务的Map Reduce Job
File System Counters
FILE: Number of bytes read=3629530
FILE: Number of bytes written=98312
FILE: Number of read operations=0
FILE: Number of lar
解决Tomcat数据连接池无法释放
ronin47
tomcat 连接池 优化
近段时间,公司的检测中心报表系统(SMC)的开发人员时不时找到我,说用户老是出现无法登录的情况。前些日子因为手头上 有Jboss集群的测试工作,发现用户不能登录时,都是在Tomcat中将这个项目Reload一下就好了,不过只是治标而已,因为大概几个小时之后又会 再次出现无法登录的情况。
今天上午,开发人员小毛又找到我,要我协助将这个问题根治一下,拖太久用户难保不投诉。
简单分析了一
java-75-二叉树两结点的最低共同父结点
bylijinnan
java
import java.util.LinkedList;
import java.util.List;
import ljn.help.*;
public class BTreeLowestParentOfTwoNodes {
public static void main(String[] args) {
/*
* node data is stored in
行业垂直搜索引擎网页抓取项目
carlwu
LuceneNutchHeritrixSolr
公司有一个搜索引擎项目,希望各路高人有空来帮忙指导,谢谢!
这是详细需求:
(1) 通过提供的网站地址(大概100-200个网站),网页抓取程序能不断抓取网页和其它类型的文件(如Excel、PDF、Word、ppt及zip类型),并且程序能够根据事先提供的规则,过滤掉不相干的下载内容。
(2) 程序能够搜索这些抓取的内容,并能对这些抓取文件按照油田名进行分类,然后放到服务器不同的目录中。
[通讯与服务]在总带宽资源没有大幅增加之前,不适宜大幅度降低资费
comsci
资源
降低通讯服务资费,就意味着有更多的用户进入,就意味着通讯服务提供商要接待和服务更多的用户,在总体运维成本没有由于技术升级而大幅下降的情况下,这种降低资费的行为将导致每个用户的平均带宽不断下降,而享受到的服务质量也在下降,这对用户和服务商都是不利的。。。。。。。。
&nbs
Java时区转换及时间格式
Cwind
java
本文介绍Java API 中 Date, Calendar, TimeZone和DateFormat的使用,以及不同时区时间相互转化的方法和原理。
问题描述:
向处于不同时区的服务器发请求时需要考虑时区转换的问题。譬如,服务器位于东八区(北京时间,GMT+8:00),而身处东四区的用户想要查询当天的销售记录。则需把东四区的“今天”这个时间范围转换为服务器所在时区的时间范围。
readonly,只读,不可用
dashuaifu
jsjspdisablereadOnlyreadOnly
readOnly 和 readonly 不同,在做js开发时一定要注意函数大小写和jsp黄线的警告!!!我就经历过这么一件事:
使用readOnly在某些浏览器或同一浏览器不同版本有的可以实现“只读”功能,有的就不行,而且函数readOnly有黄线警告!!!就这样被折磨了不短时间!!!(期间使用过disable函数,但是发现disable函数之后后台接收不到前台的的数据!!!)
LABjs、RequireJS、SeaJS 介绍
dcj3sjt126com
jsWeb
LABjs 的核心是 LAB(Loading and Blocking):Loading 指异步并行加载,Blocking 是指同步等待执行。LABjs 通过优雅的语法(script 和 wait)实现了这两大特性,核心价值是性能优化。LABjs 是一个文件加载器。RequireJS 和 SeaJS 则是模块加载器,倡导的是一种模块化开发理念,核心价值是让 JavaScript 的模块化开发变得更
[应用结构]入口脚本
dcj3sjt126com
PHPyii2
入口脚本
入口脚本是应用启动流程中的第一环,一个应用(不管是网页应用还是控制台应用)只有一个入口脚本。终端用户的请求通过入口脚本实例化应用并将将请求转发到应用。
Web 应用的入口脚本必须放在终端用户能够访问的目录下,通常命名为 index.php,也可以使用 Web 服务器能定位到的其他名称。
控制台应用的入口脚本一般在应用根目录下命名为 yii(后缀为.php),该文
haoop shell命令
eksliang
hadoophadoop shell
cat
chgrp
chmod
chown
copyFromLocal
copyToLocal
cp
du
dus
expunge
get
getmerge
ls
lsr
mkdir
movefromLocal
mv
put
rm
rmr
setrep
stat
tail
test
text
MultiStateView不同的状态下显示不同的界面
gundumw100
android
只要将指定的view放在该控件里面,可以该view在不同的状态下显示不同的界面,这对ListView很有用,比如加载界面,空白界面,错误界面。而且这些见面由你指定布局,非常灵活。
PS:ListView虽然可以设置一个EmptyView,但使用起来不方便,不灵活,有点累赘。
<com.kennyc.view.MultiStateView xmlns:android=&qu
jQuery实现页面内锚点平滑跳转
ini
JavaScripthtmljqueryhtml5css
平时我们做导航滚动到内容都是通过锚点来做,刷的一下就直接跳到内容了,没有一丝的滚动效果,而且 url 链接最后会有“小尾巴”,就像#keleyi,今天我就介绍一款 jquery 做的滚动的特效,既可以设置滚动速度,又可以在 url 链接上没有“小尾巴”。
效果体验:http://keleyi.com/keleyi/phtml/jqtexiao/37.htmHTML文件代码:
&
kafka offset迁移
kane_xie
kafka
在早前的kafka版本中(0.8.0),offset是被存储在zookeeper中的。
到当前版本(0.8.2)为止,kafka同时支持offset存储在zookeeper和offset manager(broker)中。
从官方的说明来看,未来offset的zookeeper存储将会被弃用。因此现有的基于kafka的项目如果今后计划保持更新的话,可以考虑在合适
android > 搭建 cordova 环境
mft8899
android
1 , 安装 node.js
http://nodejs.org
node -v 查看版本
2, 安装 npm
可以先从 https://github.com/isaacs/npm/tags 下载 源码 解压到
java封装的比较器,比较是否全相同,获取不同字段名字
qifeifei
非常实用的java比较器,贴上代码:
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import net.sf.json.JsonConfig;
i
记录一些函数用法
.Aky.
位运算PHP数据库函数IP
高手们照旧忽略。
想弄个全天朝IP段数据库,找了个今天最新更新的国内所有运营商IP段,copy到文件,用文件函数,字符串函数把玩下。分割出startIp和endIp这样格式写入.txt文件,直接用phpmyadmin导入.csv文件的形式导入。(生命在于折腾,也许你们觉得我傻X,直接下载人家弄好的导入不就可以,做自己的菜鸟,让别人去说吧)
当然用到了ip2long()函数把字符串转为整型数
sublime text 3 rust
wudixiaotie
Sublime Text
1.sublime text 3 => install package => Rust
2.cd ~/.config/sublime-text-3/Packages
3.mkdir rust
4.git clone https://github.com/sp0/rust-style
5.cd rust-style
6.cargo build --release
7.ctrl