当前位置: 首页 > news >正文

【项目实战】利用AI生成式编程生成控制镜头变倍,变焦,光圈的Shell脚本(一)

【项目实战】利用AI生成式编程生成控制镜头变倍,变焦,光圈的Shell脚本(一)

在这里插入图片描述

按以下步骤生成程序
帮我生成串口控制镜头的shell脚本,是sh脚本,不是bash,不用case,因为嵌入式sh 功能比较弱

串口地址 /dev/ttyAMA2 波特率 9600 用AT命令控制镜头变倍+(AT+ZOOM_IN\r\n)、变倍-(AT+ZOOM_OUT\r\n)、聚焦+(AT+FOCUS_NEAR\r\n)、聚焦-(AT+FOCUS_FAR\r\n)、光圈+(AT+IRIS_OPEN\r\n)、光圈-(AT+IRIS_CLOSE\r\n)

#!/bin/shSERIAL_DEV="/dev/ttyAMA2"
BAUD_RATE="9600"# 配置串口参数
stty -F $SERIAL_DEV $BAUD_RATE raw -echo -echoe -echok# 发送AT命令函数
send_at_command() {printf "%s\r\n" "$1" > $SERIAL_DEV
}# 参数处理
if [ $# -eq 0 ]; thenecho "Usage: $0 [zoom_in|zoom_out|focus_near|focus_far|iris_open|iris_close]"exit 1
fi# 命令映射
if [ "$1" = "zoom_in" ]; thensend_at_command "AT+ZOOM_IN"
elif [ "$1" = "zoom_out" ]; thensend_at_command "AT+ZOOM_OUT"
elif [ "$1" = "focus_near" ]; thensend_at_command "AT+FOCUS_NEAR"
elif [ "$1" = "focus_far" ]; thensend_at_command "AT+FOCUS_FAR"
elif [ "$1" = "iris_open" ]; thensend_at_command "AT+IRIS_OPEN"
elif [ "$1" = "iris_close" ]; thensend_at_command "AT+IRIS_CLOSE"
elseecho "Invalid command: $1"echo "Valid commands: zoom_in, zoom_out, focus_near, focus_far, iris_open, iris_close"exit 1
fiecho "Command sent: $1"

2、整体逻辑没有问题,但是需要调用命令的格式不对,手动调整下即可

#!/bin/shSERIAL_DEV="/dev/ttyAMA2"
BAUD_RATE="9600"# 配置串口参数
stty -F $SERIAL_DEV $BAUD_RATE raw -echo -echoe -echok# 发送AT命令函数
send_at_command() {printf "%s\r\n" "$1" > $SERIAL_DEV
}# 参数处理
if [ $# -eq 0 ]; thenecho "Usage: $0 [A50F01104C4C409D|A50F01204C4C40AD|A50F01424C000043|A50F01414C000042|A50F0144004C0045|A50F0148004C0049]"exit 1
fi# 命令映射
if [ "$1" = "A50F01104C4C409D" ]; thensend_at_command "AT+ZOOM_IN"
elif [ "$1" = "A50F01204C4C40AD" ]; thensend_at_command "AT+ZOOM_OUT"
elif [ "$1" = "A50F01424C000043" ]; thensend_at_command "AT+FOCUS_NEAR"
elif [ "$1" = "A50F01414C000042" ]; thensend_at_command "AT+FOCUS_FAR"
elif [ "$1" = "A50F0144004C0045" ]; thensend_at_command "AT+IRIS_OPEN"
elif [ "$1" = "A50F0148004C0049" ]; thensend_at_command "AT+IRIS_CLOSE"
elseecho "Invalid command: $1"echo "Valid commands: A50F01104C4C409D, A50F01204C4C40AD, A50F01424C000043, A50F01414C000042, A50F0144004C0045, A50F0148004C0049"exit 1
fiecho "Command sent: $1"
http://www.dtcms.com/a/334899.html

相关文章:

  • 如何在FastAPI中玩转APScheduler,实现动态定时任务的魔法?
  • Redis7学习--详解 主从复制
  • 利用cursor+MCP实现浏览器自动化释放双手
  • 自动驾驶中的传感器技术24.1——Camera(16)
  • 企业级Java项目金融应用领域——银行系统(补充)
  • python线程学习
  • 一文了解金融合规
  • 什么是模型预测控制?
  • 算法训练营day52 图论③ 101.孤岛的总面积、102.沉没孤岛、103.水流问题、104.建造最大岛屿
  • PTPX分析中,如何处理fsdb文件过大的问题?
  • 【C#补全计划】Lambda表达式
  • ESP32-S3_ES8311音频输出使用
  • java内存模型:
  • Ubuntu 25.04更新了哪些内容揭秘
  • PHP反序列化的CTF题目环境和做题复现第1集
  • lesson40:PyMySQL完全指南:从基础到高级的Python MySQL交互
  • 【大语言模型 00】导读
  • 【Docker】Ubuntu上安装Docker(网络版)
  • 双指针和codetop复习
  • Hexo 双分支部署指南:从原理到 Netlify 实战
  • 【遥感图像技术系列】遥感图像风格迁移的研究进展一览
  • SymPy 矩阵到 NumPy 数组的全面转换指南
  • Redis 04 Reactor
  • eChart饼环pie中间显示总数_2个以上0值不挤掉
  • 【集合框架List进阶】
  • 【UHD】vivado 2021.1 编译
  • 选择式与生成式超启发算法总结
  • 模型训练监控:TensorBoard与Weights Biases (WB) 使用详解
  • CVE-2024-28752漏洞复现
  • 电子电气架构 --- 软件项目配置管理