Skip to content

Releases: ZeroOneLab/EmbATlink

EmbATlink v2.1

Choose a tag to compare

@ZeroOneLab ZeroOneLab released this 27 Jul 03:29

v2.1 — API 简化与端口层增强

API 变更(不兼容)

  • at_cmd_exec() 移除 out_resp 参数,需要响应数据时直接调用 at_recv_get() 获取,职责更清晰

新增

  • at_port_init() 端口函数,由 at_channel_init() 内部调用,用于初始化通道硬件资源(互斥锁、中断、NVIC 等),保持高内聚低耦合

文档

  • 通道注册示例改用 sizeof 替代 ARRAY_SIZE 宏,更纯粹
  • 补充通道号参数说明,明确 channel 参数的作用
  • 新增"未知响应内容获取"示例,演示 expect=NULL 的使用场景
  • 所有示例代码统一使用具体通道号(如 0)替代变量 channel
  • Demo 工程新增 AT+VERSION 未知响应演示

工程

  • 驱动源文件移至项目根目录,去除冗余 EmbATlink/ 嵌套层
  • 新增 .gitignore,忽略 .o / .d 等编译产物
  • 移植指南端口函数数量从 6 个更新为 7 个
  • 更新资源占用数据

EmbATlink v2.0

Choose a tag to compare

@ZeroOneLab ZeroOneLab released this 24 Jul 14:58

EmbATlink v2.0 正式发布,本次大版本对框架进行了自底向上的重构,
API 不兼容 v1.x。

架构变更

  • 驱动层扁平化至项目根目录,Demo 从 HAL+CubeMX 切换为 StdPeriph Library(体积精简 95%+)
  • 修复文件命名:at_deriver.h → at_driver.h

API 不兼容变更

  • 用 at_channel_t 通道结构体替代旧版全局宏,缓冲区与 URC 关键字按通道配置
  • at_cmd_config_t 字段全面重命名,初始化由 at_init() 改为 at_channel_init(channel, cfg)
  • 所有端口函数新增 channel 参数,支持多通道适配

新增

  • at_recv_buf_swap() 支持 OTA 大数据场景零额外内存开销
  • at_recv_remove() 支持多条 URC 混在同一缓冲区时各自独立消费
  • at_resp_param_get() 支持 JSON 等含逗号字符串参数的安全提取
  • at_session_lock/unlock() 递归会话锁保护 RTOS 下多步事务原子性
  • 日志宏默认关闭,用户侧按需覆盖,消除强制 printf 依赖
  • 新增 at_port_send_line_ending() / at_port_recv_done() 按通道定制

资源占用

  • 驱动核心:~1.3KB Flash / 16 bytes RAM
  • Demo 工程总计:~8.6KB Flash / ~1.3KB RAM

从 v1.x 迁移

详见 README 中的 移植指南

EmbATlink v1.1

Choose a tag to compare

@ZeroOneLab ZeroOneLab released this 20 Mar 01:33

优化了打印信息,原本:

- 指令发送成功:`[AT][SUCC] CMD:AT`

- 指令发送超时重发:`[AT][RETRY][1] CMD:AT, TIME OUT`

- 响应匹配失败:`[AT][ERR][1] CMD:AT, RECV: ERROR`

- 缓冲区溢出:`[ERR] RECV BUFFER OVERFLOW (LUN:0)`

现在:

- 指令发送成功:`[AT:{LUN}][SUCC] CMD:AT`

- 指令发送超时重发:`[AT:{LUN}][WARN][1] CMD:AT, TIME OUT`

- 响应匹配失败:`[AT:{LUN}][WARN][1] CMD:AT, RECV: ERROR`

- 指令执行失败:`[AT:{LUN}][ERR] CMD:AT`

- 缓冲区溢出:`[AT:{LUN}][ERR] RECV BUFFER OVERFLOW`

并增加了不同状况打印的颜色:

// #define AT_LOG_I(fmt, ...) printf(fmt, ##__VA_ARGS__)
// #define AT_LOG_W(fmt, ...) printf(fmt, ##__VA_ARGS__)
// #define AT_LOG_E(fmt, ...) printf(fmt, ##__VA_ARGS__)

/* 颜色打印可参考:https://github.com/ZeroOneLab/MicroLOG.git */
#define AT_LOG_I(fmt, ...) printf("\x1b[32m" fmt "\x1b[0m", ##__VA_ARGS__) // 绿色打印
#define AT_LOG_W(fmt, ...) printf("\x1b[33m" fmt "\x1b[0m", ##__VA_ARGS__) // 黄色打印
#define AT_LOG_E(fmt, ...) printf("\x1b[31m" fmt "\x1b[0m", ##__VA_ARGS__) // 红色打印

EmbATlink v1.0

Choose a tag to compare

@ZeroOneLab ZeroOneLab released this 04 Mar 00:47
修复“不匹配数据”打印异常问题