TOML、YAML, JSON、XML、CSON, HOCON

TOML、YAML, JSON、XML、CSON, HOCON json json 规范要求字符串要用双引号括起来.

2019-08-15 · 1 min · 6 words · -

Redis3 集群 数据迁移

Redis3 集群 数据迁移 一、概述 要让集群正常工作至少需要3个主节点,在这里我们要创建6个redis节点,其中三个为主节点,三个为从节点,对应的redis节点的ip和端口对应关系如下 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 二、准备环境 安装ruby 集群环境需要ruby,所以需要安装下 yum install ruby yum install ruby-rdoc ruby setup.rb 安装完毕后启动依然报错 需要安装redis库 gem install redis 问题解决 下载最新redis版本 3.06 并进行构建 创建用户 useradd redis passwd redis 切换用户 su – redis 上传redis包到home目录 tar -zxvf redis-3.0.6.tar.gz mv redis-3.0.6 redis3.0 cd redis3.0 make 本环境为伪集群环境,所以在一台机器,多机情况相同 mkdir /home/redis/ cluster-test cd /home/redis/ cluster-test mkdir 7000 mkdir 7001 mkdir 7002 mkdir 7003 mkdir 7004 mkdir 7005 三、修改配置 ...

2019-08-06 · 4 min · 777 words · -

redis stream

redis stream stream是一个看起来比pubsub可靠多的消息队列。pubsub不靠谱? 很不靠谱,网络一断或buffer一大就会主动清理数据。stream的设计参考了kafka的消费组模型,redis作者antirez也专门写了篇短文描述了这个过程。 说起新鲜的redis streams,其实Antirez在几年前开了一个新项目叫做disque, 也是用来做消息队列的,奈何没怎么有人关注。我作为antirez的粉丝,肯定是用过了,还tmd改过disque python的库。现在redis5的stream里有一些disque的影子。 更多streams的信息 https://redis.io/topics/streams-intro Redis5.0最近被作者突然放出来了,增加了很多新的特色功能。而Redis5.0最大的新特性就是多出了一个数据结构Stream,它是一个新的强大的支持多播的可持久化的消息队列,作者坦言Redis Stream狠狠地借鉴了Kafka的设计。 Redis Stream 有一个消息链表,将所有加入的消息都串起来,每个消息都有一个唯一的ID和对应的内容。消息是持久化的,Redis重启后,内容还在。 每个Stream都有唯一的名称,它就是Redis的key,在我们首次使用xadd指令追加消息时自动创建。 每个Stream都可以挂多个消费组,每个消费组会有个游标 last_delivered_id 在 Stream 数组之上往前移动,表示当前消费组已经消费到哪条消息了。每个消费组都有一个Stream内唯一的名称,消费组不会自动创建,它需要单独的指令 xgroup create进行创建,需要指定从Stream的某个消息ID开始消费,这个ID用来初始化last_delivered_id变量。 每个消费组(Consumer Group)的状态都是独立的,相互不受影响。也就是说同一份Stream内部的消息会被每个消费组都消费到。 同一个消费组(Consumer Group)可以挂接多个消费者(Consumer),这些消费者之间是竞争关系,任意一个消费者读取了消息都会使游标last_delivered_id往前移动。每个消费者者有一个组内唯一名称。 消费者(Consumer)内部会有个状态变量pending_ids,它记录了当前已经被客户端读取的消息,但是还没有ack。如果客户端没有ack,这个变量里面的消息ID会越来越多,一旦某个消息被ack,它就开始减少。这个pending_ids变量在Redis官方被称之为PEL,也就是Pending Entries List,这是一个很核心的数据结构,它用来确保客户端至少消费了消息一次,而不会在网络传输的中途丢失了没处理。 http://xiaorui.cc/2018/06/07/%E6%B5%85%E5%85%A5%E6%B5%85%E5%87%BAredis5-0%E7%9A%84streams%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/ https://toutiao.io/posts/2agvp3/preview

2019-08-06 · 1 min · 32 words · -

MySQL int 长度

MySQL int 长度 “浮点型"的长度是用来限制数字存储范围的. 比如 float(3,2) 只能够写入 0.00~999.99. “整型"的长度并不会限制存储的数字范围. 比如, int 和 int(3) 的存储范围都是 -2147483648 ~ 2147483647, int unsigned 和 int(3) unsigned 的存储范围都是0 ~ 4294967295. “整型"的长度实际上可以理解为"显示长度”, 如果该字段开启 “Zerofill/补零"就能很明显地知道它的作用. 参考 “高性能MySQL” 的说明 “高性能MySQL” 书中在"4.1 选择优化的数据类型"中提到: MySQL 可以为整数类型指定宽度, 例如 INT(11), 对大多数应用这是没有意义的: 它不会限制值的合法范围, 只是规定了 MySQL 的一些交互工具(例如 MySQL 命令行客户端)用来显示字符的个数. 对于存储和计算来说, INT(1) 和 INT(20) 是相同的 “MySQL 手册"的说明 MySQL 5.7 手册 “12.2.5 Numeric Type Attributes”: MySQL supports an extension for optionally specifying the display width of integer data types in parentheses following the base keyword for the type. For example, INT(4) specifies an INT with a display width of four digits. This optional display width may be used by applications to display integer values having a width less than the width specified for the column by left-padding them with spaces. (That is, this width is present in the metadata returned with result sets. Whether it is used or not is up to the application.) ...

2019-08-06 · 2 min · 295 words · -

账号, account

账号, account https://36kr.com/p/2342280589940227 最近,话题#账与帐很多人分不清#登上热搜,引发网友热议。笔者注意到,不同互联网平台,“帐号”和“账号”两种表述都存在。 实话实说,如果不是这条热搜,笔者也对“帐”和“账”傻傻分不清楚;到底“账号”和“帐号”哪种表述是正确的呢? 根据第七版《现代汉语词典》,只有“账号”而无“帐号”,“账号”解释为单位或者个人跟银行建立经济关系后,银行在账上给该单位或个人编的号码。而“帐”这个字释为用布或者其他材料做成的遮蔽用的东西,和“账号”所表达的概念完全无关。 值得注意的是,《现代汉语词典》、《新华字典》等对“帐”这个字有解释称其“旧同‘帐’”,但这仅仅是指“帐”和“账”在过去一段时间内一致,现如今已经独立使用。

2019-08-04 · 1 min · 7 words · -

Desk Check

Desk Check 敏捷实践之 Desk Check http://insights.thoughtworkers.org/desk-check/embed/#?secret=5PpVVMPtJf 开发人员在完成需求之后,快速在本地开发环境建立功能验证条件。 开发人员要做的具体工作是: 需要测试数据的,建立mock data;然后对照Acceptance Criteria给团队的BA、QA展示完成的功能。这里需要注意的是,开发人员最好自己先完成一遍测试。自测能够发现一些问题,提高deskcheck的成功率,也吻合越早发现问题修复的代价越小的原理,否则不但耽误了自己的时间也耽误了BA和QA的时间。 BA的职责是: 验证开发之前提出的需求是否实现,是否有跟开发人员理解不一致的地方,是否有遗漏的需求。 QA的职责是: 从测试人员的视角评估这个功能有没有"ready for testing",并且做一个快速的测试,验证是否有Sad Path没有考虑周全。 不管怎么说Desk Check还是处于developing的阶段,在这个阶段矫正一下需求,修复一些快速的defects,这样才能让功能ready进入下一个阶段: 测试环境的测试。 之前一直错误地理解Desk Check是我们开发流程的一部分,是流程上的一个要求。但是结合最近项目的实践和敏捷宣言的理论,意识到Desk Check实际上是践行了宣言的第一条: 个体之间的合作,而且合作比流程更重要。Desk Check同时也体现了反馈在敏捷开发中的作用,及时的反馈能够尽早的纠正工作的偏差,让我们一直向正确的方向前进。 https://www.techwalla.com/articles/what-is-desk-checking

2019-08-02 · 1 min · 27 words · -

模块之间的相互调用,循环引用的问题

模块之间的相互调用,循环引用的问题 https://github.com/seajs/seajs/issues/800 允许适当重复代码,保证模块主要职责不变

2019-08-01 · 1 min · 3 words · -

redis 集群容灾

redis 集群容灾 Redis Sentinel 容灾演练 http://www.dczou.com/viemall/870.html/embed#?secret=Kngfb4CYbn

2019-07-30 · 1 min · 6 words · -

journal suppressed N messages

journal suppressed N messages systemd-journal: Suppressed 9567 messages from /system.slice/ systemd-journal: Suppressed 6735 messages from /system.slice/ …… 根据字面意思理解就是日志被丢弃了, 看来是由于 journald 服务的问题导致的日志问题 在 journald 中, 有如下两个参数跟此问题相关: vim /etc/systemd/journald.conf RateLimitInterval RateLimitBurst RateLimitInterval是指定时间间隔, 意思就是说, 在RateLimitInterval这段时间内的日志总量(总条数)控制在RateLimitBurst以内. 这两个参数搭配使用可以用来控制日志速率, 避免由于大量日志输出导致的一系列性能问题. 该问题的根源在于该主机目前日志输出的速率超出了 journald 默认的配置, 你可以自定定义该速率, 也可以将RateLimitInterval设置为0, 以禁用速率控制 接下来重启 journald 以生效配置 systemctl restart systemd-journald https://docs.lvrui.io/2018/11/22/systemd-journal-Suppressed-N-messages/ systemd-journald这个服务重启的时候, 会给所有的进程发送SIGPIPE信号, 而在默认的 systemd 定义中, SIGPIPE 信号属于正常退出的范围. 所以即使 unit 文件配置了Restart on-failure也不会被重启 https://docs.lvrui.io/2018/11/22/systemd-journald%E7%9A%84SIGPIPE%E4%BF%A1%E5%8F%B7BUG/

2019-07-29 · 1 min · 59 words · -

ufw

ufw UFW,即简单防火墙 uncomplicated firewall,是一个 Arch Linux、Debian 或 Ubuntu 中管理防火墙规则的前端。 UFW 通过命令行使用(尽管它有可用的 GUI),它的目的是使防火墙配置简单(即不复杂uncomplicated)。 # check ufw status sudo ufw status # Status: active # Status: inactive docker 网络 会忽略 ufw 配置 https://docs.docker.com/engine/network/packet-filtering-firewalls/#docker-and-ufw

2019-07-28 · 1 min · 31 words · -

golang, function types, 函数类型

golang, function types, 函数类型 function types A function type denotes the set of all functions with the same parameter and result types. 示例 package main import "fmt" // function types type Greeting func(name string) string func say(g Greeting, n string) { fmt.Println(g(n)) } func english(name string) string { return "Hello, " + name } func main() { say(english, "World") } 输出Hello, World ...

2019-07-26 · 1 min · 176 words · -

长选项, 短选项, short options, long options

长选项, 短选项, short options, long options 1.Linux命令长选项"–“和短选项”-“和没有”-“选项背景: 在解释这些区别之前我们先了解一下有关linux的背景知识,这个需要大家先认真看完就会对这些区别有更深入的了解,对linux也有更深的了解: (1)Unix操作系统在操作风格上主要分为System V和BSD(目前一般采用BSD的第4个版本SVR4),前者的代表的操作系统有Solaris操作系统,在Solaris1.X之前,Solaris采用的是BSD风格,2.x之后才投奔System V阵营。后者的代表的操作系统有FreeBSD。 (A)System V它最初由AT&T开发,曾经也被称为AT&T System V,是Unix操作系统众多版本中的一支。在1983年第一次发布,一共发行了4个System V的主要版本,System V Release4,或者称为SVR4,是最成功的版本,该版本有些风格成为一些UNIX共同特性的源头,如下表格的初始化脚本/etc/init.d。用来控制系统的启动和关闭。 (B)BSD(Berkeley Software Distribution,伯克利软件套件)是Unix的衍生系统,1970年代由伯克利加州大学(Uni Versity of California, Berkeley)开创。BSD用来代表由此派生出的各种套件集合。 (2)关于System V和BSD风格以及他们与Linux的关系: (A)System V 和BSD同出于AT&T实验室的两个不同的部门,SystemV是一个Unix的商业化标准,BSD为Unix标准化的Berkeley风格。 (B)由于Linux是Linus Torvalds在以Unix为构架的系统上重新开发的,但仍沿用了两大Unix系统进程的风格,实事上应该确切的说Linus Torvalds只开发了kernel,而软件依然来自GNU和GPL两个组织。 目前只有Slackware是Linux发行版中唯一使用BSD风格的版本。其他的就是FreeBSD、NetBSD和OpenBSD三个著名的BSD发行版,并遵循「GPL规范」。在商业版的Unix及多数Linux发行版使用SystemV风格的init『可能有版权纠纷问题』。Linux代表的有:RedHat、Suse、MDV、MagicLinux、Debian等几乎大部分发行版。Unix代表的有AIX、IRIX、Solars、HP-UX。 2.Linux命令长选项”–“和短选项”-“和没有”-“选项的全部写法 (1)选项前有一横“-”,如“ls -a”(含义:list all,列出所有当前文件夹的文件) (2)选项前有两横“–”,如“ls –all”(含义:list all,列出所有当前文件夹的文件) (3)选项前有一横“-”,如“tar -xzvf”(tar命令用于对文件打包压缩或解压,格式为:“tar [选项] [文件]”,-xzvf是4个参数的组合体,tar命令最初的设计目的是将文件备份到磁带上(tape archive),因而得名tar) (4)选项前没有任何横,如“tar xzvf” 3.Linux命令长选项”–“和短选项”-“和没有”-“选项的详细解释 (1)短选项(short options):顾名思义,就是短小参数。它们通常包含一个连字号‘-’和一个字母(大写或小写字母)。例如:-s,-h等 (2)长选项(long options):长选项,包含了两个连字号”–“和一些大小写字母组成的单词。例如:–size,–help等 (3)参数前有横的是 System V风格 (4)参数前没有横的是 BSD风格 4.Linux命令长选项”–“和短选项”-“的意义及额外备注 (1)一个程序通常会提供包括short options和long options两种参数形式的参数,例如:“ls -a"和“ls –all”等价 (2)因为短选项(short option)是可以合并的,如-sh,为了区分sh是一个选项还是两个选项s和h的组合,对于组合选项用单连字符’-’,如果是单一选项sh则要用双连字符’–’。例如:-sh表示-s和-h的组合,如果要表示为一个选项需要用长选项–sh。 (3)但是对于一些命令,它们不遵循以上的规则,例如:“find -type d -mindepth 2”和“find -name -fstype”(它们是单连字符’-‘连接一个完整单词,不符合3(1)和3(2)) ———————————————— 版权声明:本文为CSDN博主「快乐李同学(李俊德-大连理工大学)」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/wq6ylg08/article/details/88812451 ...

2019-07-24 · 1 min · 80 words · -

go env

go env 名称 说明 GOARCH 程序构建环境的目标计算架构 GOBIN 存放可执行文件的目录的绝对路径 GOCHAR 程序构建环境的目标计算架构的单字符标识 GOEXE 可执行文件的后缀 GOHOSTARCH 程序运行环境的目标计算架构 GOOS 程序构建环境的目标操作系统 GOHOSTOS 程序运行环境的目标操作系统 GOPATH 工作区目录的绝对路径 GORACE 用于数据竞争检测的相关选项 GOROOT Go 语言的安装目录的绝对路径 GOTOOLDIR Go 工具目录的绝对路径 https://www.jianshu.com/p/35a4ec1b3067

2019-07-21 · 1 min · 29 words · -

比特, 字节, 字, bit, byte, word

比特, 字节, 字, bit, byte, word 位 (bit) 来自英文bit,音译为"比特",表示二进制位。位是计算机内部数据储存的最小单位,11010100是一个8位二进制数。一个二进制位只可以表示0和1两种状态 (2^1. ;两个二进制位可以表示00、01、10、11四种(2^2) 状态;三位二进制数可表示八种状态 (2^3) … 字节 (byte) 字节来自英文Byte,习惯上用大写的"B"表示。 字节是计算机中数据处理的基本单位。计算机中以字节为单位存储和解释信息,规定一个字节由八个二进制位构成,即1个字节等于8个比特 (1Byte=8bit) 。八位二进制数最小为00000000,最大为11111111;通常1个字节可以存入一个ASCII码 数据存储是以“字节” (Byte)为单位,数据传输是以大多是以“位” (bit,又名“比特”)为单位,一个位就代表一个0或1 (即二进制),每8个位 (bit,简写为b)组成一个字节 (Byte,简写为B),是最小一级的信息单位。 还可以从以下几个方面来理解: 1.字节(Byte)是电脑中表示信息含义的最小单位,因为在通常情况下一个ACSII码就是一个字节的空间来存放。而事实上电脑中还有比字节更小的单位,因为一个字节是由八个二进制位组成的,换一句话说,每个二进制位所占的空间才是电脑中最小的单位,我们把它称为位,也称比特 (bit)。由此可见,一个字节等于八个位。人们之所以把字节称为电脑中表示信息含义的最小单位,表示最基本的字符,是因为一个位并不能表示我们现实生活中的一个相对完整的信息。另外,内存中运算的最小存储单位是字节,位运算也是在一个字节的存储单位的基础上进行的,所以存储的最小单位可以理解为字节。 https://cloud.tencent.com/developer/article/1353743 字长 CPU在单位时间内(同一时间)能一次处理的二进制数的位数 字 word 计算机进行数据处理时,一次存取、加工和传送的数据长度称为字 (word) 。一个字通常由一个或多个 (一般是字节的整数位) 字节构成。例如286微机的字由2个字节组成,它的字长为16;486微机的字由4个字节组成,它的字长为32位机。 计算机的字长决定了其CPU一次操作处理实际位数的多少,由此可见计算机的字长越大,其性能越优越。 8位的CPU字长为8位,一个字等于一个字节,一次只能处理一个字节,而32位的CPU字长为32位,一个字等于4个字节,一次就能处理4个字节,同理字长为64位的CPU一次可以处理8个字节,一个字等于8个字节。 另一种说法 字 在计算机中,一串数码作为一个整体来处理或运算的,称为一个计算机字,简称字。 字通常分为若干个字节(每个字节一般是8位)。在存储器中,通常每个单元存储一个字,因此每个字都是可以寻址的。字的长度用位数来表示。 在计算机的运算器、控制器中,通常都是以字为单位进行传送的。字出现在不问的地址其含义是不相同。例如,送往控制器去的字是指令,而送往运算器去的字就是一个数。 在计算机中作为一个整体被存取、传送、处理的二进制数字符串叫做一个字或单元,每个字中二进制位数的长度,称为字长。一个字由若干个字节组成,不同的计算机系统的字长是不同的,常见的有8位、16位、32位、64位等,字长越长,计算机一次处理的信息位就越多,精度就越高,字长是计算机性能的一个重要指标。目前主流计算机都是64位机。 注意字与字长的区别,字是单位,而字长是指标, 指标需要用单位去衡量。 正象生活中重量与公斤的关系,公斤是单位,重量是指标,重量需要用公斤加以衡量。 字长 计算机的每个字所包含的位数称为字长。 根据计算机的不同,字长有固定的和可变的两种。固定字长,即字长度不论什么情况都是固定不变的;可变字长,则在一定范围内,其长度是可变的。 计算的字长是指它一次可处理的二进制数字的数目。计算机处理数据的速率,自然和它一次能加工的位数以及进行运算的快慢有关。如果一台计算机的字长是另一台计算机的两倍,即使两台计算机的速度相同,在相同的时间内,前者能做的工作是后者的两倍。 字长是衡量计算机性能的一个重要因素。 字节 字节是指一小组相邻的二进制数码。通常是8位作为一个字节。它是构成信息的一个小单位,并作为一个整体来参加操作,比字小,是构成字的单位。 在微型计算机中,通常用多少字节来表示存储器的存储容量。 字块 在信息处理中,一群字作为一个单元来处理的称为"字块".也称"字组"。例如,储存于磁鼓的一个磁道上的字群就称为一个字块。在磁带上通常每120个字符就间隔一个字块际志,也称为一个字块。块与块之间一般留1.27―2.54厘米(1/2一1英寸)的间隔。在大容量存储中,信息都是以字块为单位而存入的,因此只有字块才是可选址的。目前,在高速绥冲技术中也引入了"字块"的概念。 B = 8 bit KB,2^10: 1024 BYTE. MB,2 的 20 次方 : 1048576 BYTE, 或 1024 KB. GB,2 的 30 次方 : 1073741824 BYTE, 或 1024 MB. TB,2 的 40 次方 : 1099511627776 BYTE, 或 1024 GB. PB,2 的 50 次方 : 1125899906842624 BYTE, 或 1024 TB. EB,2 的 60 次方 : 1152921504606846976 BYTE, 或 1024 PB. ZB,2 的 70 次方 : 1024 EB. YB,2 的 80 次方 : 1024 ZB. ...

2019-07-21 · 1 min · 139 words · -

1、1.5、2.5、4、6平方电线负荷

1、1.5、2.5、4、6平方电线负荷 一个电工常用的"经验公式": 只要是铜芯电线,每平方毫米的截面积可以安全通过4-5A的额定电流;在220V单相电路中,每1KW的功率,其电流约为4.5A左右;在380V三相平衡电路中,每1KW的功率,其电流约为2A左右。 铜芯线,一是明线安装最大允许工作电流是20A,即4400瓦;二是暗装套钢管,电流是16A,功率为3520瓦;三是pvc管暗装,电流是14A,那么功率为3000瓦。 https://zhuanlan.zhihu.com/p/30847255

2019-07-20 · 1 min · 5 words · -

slf4j、jcl、jul、log4j1、log4j2、logback

slf4j、jcl、jul、log4j1、log4j2、logback slf4j > log4j2.x log4j-slf4j-impl slf4j 到 log4j2 的桥梁 直接依赖log4j1.x的换成log4j2输出, log4j1.x > slf4j 排除掉log4j jar包 引入依赖包 log4j-over-slf4j (实现log4j1桥接到slf4j) <dependency> <groupId>org.slf4j</groupId> <artifactId>log4j-over-slf4j</artifactId> <version>1.7.32</version> </dependency> commons-logging commons-logging:commons-logging的原生全部内容 org.apache.logging.log4j:log4j-jcl commons-logging/jcl > log4j2.x org.apache.logging.log4j:log4j-jcl: commons-logging 桥接到 log4j2 <!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-jcl --> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-jcl</artifactId> <version>2.13.3</version> </dependency> jcl-over-slf4j commons-logging/jcl > slf4j https://blog.wiloon.com/?p=8549 jcl-over-slf4j 原本是通过 JCL 输出日志的,会被 jcl-over-slf4j 桥接到slf4j输出 slf4j > log4j1.x slf4j-log4j12 使用 slf4j + log4j1.x 输出日志 https://my.oschina.net/pingpangkuangmo/blog/410224?p=2 jul>slf4j>log4j2 <dependency> <groupId>org.slf4j</groupId> <artifactId>jul-to-slf4j</artifactId> <version>1.7.25</version> </dependency> // Optionally remove existing handlers attached to j.u.l root logger SLF4JBridgeHandler.removeHandlersForRootLogger(); // (since SLF4J 1.6.5) // add SLF4JBridgeHandler to j.u.l's root logger, should be done once during // the initialization phase of your application SLF4JBridgeHandler.install(); https://github.com/influxdata/influxdb-java/issues/443

2019-07-19 · 1 min · 104 words · -

并发, 并行

并发, 并行 并发 (concurrency) , 并行 (parallelism) 并行指物理上同时执行,并发指能够让多个任务在逻辑上交织执行的程序设计 https://www.cnblogs.com/f-ck-need-u/p/11161481.html https://laike9m.com/blog/huan-zai-yi-huo-bing-fa-he-bing-xing,61/ https://blog.golang.org/concurrency-is-not-parallelism https://talks.golang.org/2012/waza.slide#1

2019-07-15 · 1 min · 12 words · -

三极管

三极管 https://www.cnblogs.com/tdyizhen1314/archive/2012/11/06/2757644.html http://www.datasheetdir.com/GALAXY-S8550+PNP-Transistors http://www.jianshe99.com/html/2008/1/li0063319180020.html

2019-07-13 · 1 min · 4 words · -

raspberry pi, gpio, golang

raspberry pi, gpio, golang https://github.com/stianeikeland/go-rpio package main import ( "fmt" "github.com/stianeikeland/go-rpio/v4" "time" ) func main() { err := rpio.Open() if err != nil { fmt.Println(err) return } pin := rpio.Pin(17) pin.Low() time.Sleep(5 * time.Second) pin.High() }

2019-07-13 · 1 min · 36 words · -

USB数据线

USB数据线 编号 定义 颜色识别 1 VBUS Red (红色) 2 D- White (白色) 3 D+ Green (绿色) 4 GND Black (黑色)

2019-07-13 · 1 min · 20 words · -