🔥Bsin-PaaS 4.0 发布,一站式企业数据价值空间 · 工程底座 - OSCHINA - 中文开源技术交流社区

发布时间: 2026-07-22 · 来源: 新能源产业网 · 阅读量: 6918
cloud image 1 innovation image 2 technology image 3

从小到大排序输出该果篮中所有水果的编号,每两个编号之间用一个空格分隔。输入输出样例 #1 输入 #1 12 1 1 0 0 1 1 1 0 1 1 0 0 输出 #1 1 3 5 8 9 11 2 4 6 12 7 10 输入输出样例 #2 输入 #2 20 1 1 1 1 0 0 0 1 1 1 0 0 1 0 1 1 0 0 0 0 输出 #2 1 5 8 11 13 14 15 17 2 6 9 12 16 18 3 7 10 19 4 20 说明/提示 【样例解释 #1】 这是第一组数据的样例说明。

一次完整读取流程如下: 主机拉低 ≥ 18ms → 拉高 20~40us → DHT11拉低 80us → 拉高 80us → 开始传数据 每个数据位是这样区分的: 位"0":DHT11拉低 50us → 拉高 26~28us(高电平持续时间短) 位"1":DHT11拉低 50us → 拉高 70us(高电平持续时间长) 代码用Delay30us()后读取引脚电平来区分0和1: Delay30us(); if(1 == DHT11_IO) { data_bit = 1; // 30us后还是高电平 → 位"1" while(DHT11_IO && count < 80) count++; } else { data_bit = 0; // 30us后已变低 → 位"0" } DHT11返回的数据格式是40位(5字节): 字节0字节1字节2字节3字节4湿度整数湿度小数温度整数温度小数校验和 校验公式:字节0 + 字节1 + 字节2 + 字节3 == 字节4 代码中只取了整数部分(humi = dht_buf[0],temp = dht_buf[2]),舍弃了小数——因为DHT11的湿度精度也就±5%,小数没实际意义。

作者 Cheng Lou 之前在 React、ReasonML、ReScript 这些项目里摸爬滚打,又在 Midjourney 干过视觉生成,对文本排版的需求理解得透彻。

下文以一个平台产品的 CLI 设计实践为例,对过程中的关键设计决策进行介绍,整体思路如下图: 一、编程语言 CLI 在开发语言选择上有几个硬指标: 单文件且无运行时依赖:Agent 的运行环境不可预测,可能是本地计算机、Docker 容器、远程 Linux 等,无法假设它装了正确的 Node 或 Python 版本,最好是下载一个二进制就能跑 可交叉编译:需要覆盖 macOS / Linux / Windows × amd64 / arm64,支持一套代码跨平台编译 启动快:Agent 会高频反复调用命令,静态语言是首选 几个候选对照: Node / TypeScript:生态好、写得快,但依赖目标机器有 Node 运行时,打包成单文件产物大 Python:同样受运行时和版本问题限制,分发是大问题 Rust:单二进制、性能好,各项都满足,但是开发效率和编译速度偏低 Go:单静态二进制,设置 CGO_ENABLED=0 后零依赖,交叉编译支持好,启动毫秒级,开发效率不错 最终选择 Golang 作为开发语言,并使用 Cobra 作为 CLI 框架,处理命令解析和路由。

配图