C语言版本
1 |
|
1 |
|
通过QSS 去掉菜单前面的对勾。用颜色表示 checked 状态。
1 |
|
效果图:
WIN+R 运行输入 gpedit.msc 发现找不到这个命令。在网上查了一下,说可能是因为自已用的Win10是家庭版,不支持这个功能。
发现用下面的方法可以手动安装。亲测好用。
1 |
|
把上面的内容存到一个bat文件中。用管理员权限执行,就能自动安装。
然后就可以运行 gpedit.msc 了。
首先打开注册表,找到这个路径:1
计算机\HKEY_CURRENT_USER\Software\Microsoft\InputMethod\Settings\CHS
然后新建一个名为 UserDefinedDoublePinyinScheme0的字符串值,数值数据为
1 | 小鹤双拼*2*^*iuvdjhcwfg^xmlnpbksqszxkrltvyovt |
然后在设置中将默认的输入法设置为小鹤双拼。
1 | # 关键字需要用 %% 来包裹 |
示例:
1 | # 结果是这样的格式: 2020-02-07 12:36:52 |
http://download.qt.io/archive/qt/
http://download.qt.io/archive/qtcreator/
http://download.qt.io/archive/vsaddin/
SPI是串行外设接口(Serial Peripheral Interface)的缩写。是 Motorola 公司推出的一种同步串行接口技术,是一种高速的,全双工,同步的通信总线。
它以主从方式工作,这种模式通常有一个主设备和一个或多个从设备,需要至少4根线,事实上3根也可以(单向传输时)。也是所有基于SPI的设备共有的,它们是SDI(数据输入)、SDO(数据输出)、SCLK(时钟)、CS(片选)。
SPI通信有4种不同的模式,不同的从设备可能在出厂是就是配置为某种模式,这是不能改变的;但我们的通信双方必须是工作在同一模式下,所以我们可以对我们的主设备的SPI模式进行配置,通过CPOL(时钟极性)和CPHA(时钟相位)来控制我们主设备的通信模式,具体如下:
时钟极性CPOL是用来配置SCLK的电平出于哪种状态时是空闲态或者有效态,时钟相位CPHA是用来配置数据采样是在第几个边沿:
例如:
CPOL=0,CPHA=0:此时空闲态时,SCLK处于低电平,数据采样是在第1个边沿,也就是
SCLK由低电平到高电平的跳变,所以数据采样是在上升沿,数据发送是在下降沿。
CPOL=0,CPHA=1:此时空闲态时,SCLK处于低电平,数据发送是在第1个边沿,也就是
SCLK由低电平到高电平的跳变,所以数据采样是在下降沿,数据发送是在上升沿。
CPOL=1,CPHA=0:此时空闲态时,SCLK处于高电平,数据采集是在第1个边沿,也就是
SCLK由高电平到低电平的跳变,所以数据采集是在下降沿,数据发送是在上升沿。
CPOL=1,CPHA=1:此时空闲态时,SCLK处于高电平,数据发送是在第1个边沿,也就是
SCLK由高电平到低电平的跳变,所以数据采集是在上升沿,数据发送是在下降沿。
需要注意的是:我们的主设备能够控制时钟,因为我们的SPI通信并不像UART或者IIC通信
那样有专门的通信周期,有专门的通信起始信号,有专门的通信结束信号;所以我们的
SPI协议能够通过控制时钟信号线,当没有数据交流的时候我们的时钟线要么是
保持高电平要么是保持低电平。
iic总线不是全双工,2根线SCL SDA。spi总线实现全双工,4根线SCK CS MOSI MISO
iic总线是多主机总线,通过SDA上的地址信息来锁定从设备。spi总线只有一个主设备,主设备通过CS片选来确定从设备
iic总线传输速度在100kbps-4Mbps。spi总线传输速度更快,可以达到30MHZ以上。
iic总线空闲状态下SDA SCL都是高电平。spi总线空闲状态MOSI MISO也都是 SCK是有CPOL决定的
iic总线scl高电平时sda下降沿标志传输开始,上升沿标志传输结束。spi总线cs拉低标志传输开始,cs拉高标志传输结束
iic总线是SCL高电平采样。spi总线因为是全双工,因此是沿采样,具体要根据CPHA决定。一般情况下master device是SCK的上升沿发送,下降沿采集
iic总线和spi总线数据传输都是MSB在前,LSB在后(串口是LSB在前)
iic总线和spi总线时钟都是由主设备产生,并且只在数据传输时发出时钟
iic总线读写时序比较固定统一,设备驱动编写方便。spi总线不同从设备读写时序差别比较大,因此必须根据具体的设备datasheet来实现读写,相对复杂一些。
SPI 和I2C这两种通信方式都是短距离的,芯片和芯片之间或者其他元器件如传感器和芯片之间的通信。 SPI和IIC是板上通信,IIC有时也会做板间通信,不过距离甚短,不过超过一米,例如一些触摸屏,手机液晶屏那些薄膜排线很多用IIC,I2C能用于替代标准的并行总线,能连接的各种集成电路和功能模块。I2C是多主控总线,所以任何一个设备都能像主控器一样工作,并控制总线。总线上每一个设备都有一个独一无二的地址,根据设备它们自己的能力,它们可以作为发射器或接收器工作。多路微控制器能在同一个I2C总线上共存这两种线属于低速传输。
而UART是应用于两个设备之间的通信,如用单片机做好的设备和计算机的通信。这样的通信可以做长距离的。UART速度比上面两者者快,最高达100K左右,用与计算机与设备或者计算机和计算之间通信,但有效范围不会很长,约10米左右,UART优点是支持面广,程序设计结构很简单,随着USB的发展,UART也逐渐走向下坡。
CAN使用场景完全不一样:
主类 | 次类 | 用途 |
折线图 | 折线图 | 用于反应和时间相关的数据变化(趋势)。 |
面积图 | 用于反应主次之间基于时间的对比。 | |
柱状图 | 柱状图 | 分类项目的数量比较。也能反应趋势。 |
条形图 | 分类项目的数量比较。 | |
环状条形图 | 分类项目的数量比较。更能反应项目之间的数量关系。 | |
南丁格尔玫瑰图 | 以夸张的形式来表示分类项目的数量对比 | |
饼状图 | 饼状图 | 反映分类数据反占比例 |
旭日图 | 表示比例对比的同时,也表示层次关系 | |
对状图 | 表示比例,可以多层线。 | |
散点图 | 散点图 | 反应相关性和分布关系,两个变量 |
气泡图 | 反应相关性和分布关系,三个变量 | |
带线散点 | 趋势线 | |
地图 | 地图 | 反应空间信息 |
其它图 | 股价图/箱线图 | 反映数据分散情况 |
直方图 | 反映数据分布 | |
瀑布图 | 数量变化的过程 |
1 | setWindowTitle("Touch Screen"); |
1 | setFixedSize(QT_WINDOW_WIDTH_FOR_TOUCH, QT_WINDOW_HEIGHT_FOR_TOUCH); |
1 | QDesktopWidget* desktop = QApplication::desktop(); |
1 | QMetaObject::invokeMethod(this, "asyncUpdateGui", Qt::QueuedConnection); |
其中 asyncUpdateGui 的定义:
1 | private slots: |
实现:
1 | void xApplicationWindow::asyncUpdateGui() |
Whenever you get messages about missing packages (or suggestions to modify your PKG_CONFIG_PATH) during a build, it usually indicates that you are missing the corresponding development package - which is typically separate from the runtime package that is normally installed on the system.
In this case you have the most recent version of fontconfig but are probably missing the corresponding libfontconfig1-dev package.
正确的解决方法是安装:libfontconfig1-dev
Note: This is the preferred method to send WOL magic packets remotely.
If you have local or remote Telnet/SSH access to your router, you can wake up a machine on the LAN by using the following command:
1 | /usr/sbin/wol -i 192.168.1.255 -p PP AA:BB:CC:DD:EE:FF |
Note that the full path to “/usr/sbin/wol” is important. Simply “wol” will not work.
Substitute AA:BB:CC:DD:EE:FF with the actual MAC address of the computer which you wish to boot remotely. Likewise, replace 192.168.1.255 with the actual broadcast address of the network (192.168.1.255 is the broadcast address when the machine has an IP of 192.168.1.x and subnet mask of 255.255.255.0). Replace “PP” with the port number your machine listens on (usually 7 or 9).
1 | /usr/sbin/wol -i 192.168.1.255 -p 9 24:5E:BE:32:C8:EB |