背景最近在研究红外收发,0/1信号延迟需要达到微秒级,而 time.sleep() 达不到这么高的精度,好在 time.time() 时间戳可以实现微秒级别,故采用此方式。代码原理非常简单,只是做个记录。def delay_us(t): start, end = 0, 0 start = time.time() offset = 10 t = (t - offset) / 1000000 while end - start < t: end = time.time()说明: offset 为修正值,根据实际情况修改。验证以延迟 30us 为例:注意事项仅 Linux 有效,Windows 下延迟最低 1000us,无法正常使用。
本篇文章是对之前的补充。开启密码验证编辑配置文件:vim /etc/mosquitto/mosquitto.conf将 allow_anonymous 设置为 false,禁止匿名登录。指定密码存储文件:password_file /etc/mosquitto/pwfile保存配置,随后创建密码存储文件。touch /etc/mosquitto/pwfile接下来添加一个用户。mosquitto_passwd -b /etc/mosquitto/pwfile 用户名 密码重启 mosquitto 服务。systemctl restart mosquitto使用TLS加密进入 /etc/mosquitto 目录。cd /etc/mosquitto创建一个名为 key 的文件夹,用于存储证书。mkdir key cd key生成 CA 的证书和密钥:生成 CA 密钥openssl genrsa -des3 -out ca.key 2048这里需要设置密码,请牢记,该命令将生成 ca.key 文件。生成 CA 证书openssl req -new -x509 -days 3650 -key
Scott Sloan