px普贤教程PuXian
普贤教程 › 包参考

edge 包

第 4 个 stdlib,与 collections/semver/webroute 并列

M60-S3 交付(docs/archive/M60_PLAN.md §三.2)——第 4 个 stdlib,与 collections/semver/webroute 并列

项值
包名edge
版本0.1.0
入口edge.px
分类网络与协议
文件数 / 行数1 / 221

安装与引入

bash
pxpkg init          # 首次
pxpkg add edge@0.1.0
pxpkg install
px
import edge
所属分类教程:网络与协议
其余 22 个 def(内部与辅助,可直接调用但不属稳定接口)
函数参数
_zerosn
_put_u32b, off, v
_put_u64b, off, v
_put_asciib, off, s, cap
_gpio_req_bufoffset, flags, consumer, out_val
gpio_requestchip, offset, flags, consumer
gpio_inputchip, offset, consumer
gpio_outputchip, offset, val, consumer
gpio_input_edgechip, offset, edge, consumer
gpio_readfd
gpio_writefd, v
gpio_waitfd, ms
gpio_event_parsedata
gpio_eventfd, ms
i2c_openbus, addr
i2c_read_regfd, reg, n
i2c_write_regfd, reg, data
serial_openpath, baud
_pwm_writepath, content
pwm_setupchip, ch, period_ns, duty_ns
pwm_enablechip, ch, on
pwm_set_dutychip, ch, duty_ns

包内说明(源码头注释)

text
============================================================
普贤标准库:std.edge(边缘设备:GPIO V2 line / I2C / 串口 / PWM sysfs)
M60-S3 交付(docs/archive/M60_PLAN.md §三.2)——第 4 个 stdlib,与 collections/semver/webroute 并列
依赖 builtin:open/close/read/write/ioctl/os_errno/tty_config/fd_wait/sleep_us/
exists/type/len/str/int_to_bytes/bytes_to_int/bytes_slice/bytes_concat/bytes_set/bytes
用法:import std.edge
失败语义(与 M57 fd 原语一致):设备失败返回 int -1 / false,os_errno() 查询,不杀进程;
参数错误(编程契约)px_error 终止。errno 全局单线程语义:勿跨调用缓存,失败即查。
GPIO 用 V2 uAPI。本文件结构体布局按 2024+ 内核(linux/gpio.h,gpio_v2_line_request
= 592B:offsets u32[64]@0 / consumer[32]@256 / config@288 / num_lines@560 /
event_buffer_size@564 / fd@588),常量经 C offsetof 实测核对;旧内核(≤6.x 早期,
offsets u64 布局)不兼容,需按目标内核头调整 —— 真板回归单独立项兜底。
I2C 寄存器读用「write reg → stop → read n」两笔事务(fd 通道极限;重复起始位
需 I2C_RDWR/SMBUS ioctl 含指针结构体,语言 bytes 无法承载,见 M60-PLAN §3.4)。
============================================================
---- 内部工具:零 bytes / 小端写入 / ASCII 拷贝(bytes_set 是函数式 COW,逐次赋回)----