使用通义千问,识别需求文档中的输入输出信号存储到excel表格,完成对需求的初步分析

操作步骤如下:

第一步,提取需求的输入输出信号为json格式,

提示词如下:

车速自动闭锁

  1. 使能条件(a&b&c&d&e&f) a. 电源状态为 ON(PowerMode = ON) b. 主驾门锁反馈开关为解锁状态 c. 四门关闭(CAN:((LHFdoorSts)&(LHRdoorSts)&(RHFdoorSts)&( RHRdoorSts))=0x0:Close) d. 大屏设置自动落锁功能开启(ICC_AutolockSts =0x1: Autolock mode) e. 配置字:车速自动上锁=0x1 存在 f. 热失控无效(BMS_HVBattThermRunaway !=0x1:warning)
  2. 触发条件(a) a. 车速由小于 15km/h 到大于 15km/h ( VehicleSpeedVSOSig ; VehicleSpeedVSOSigValidData =0x0:Valid)
  3. 执行输出(a&b) a. FLZCU 输出 200ms±50ms 驱动左前/左后门锁电机,执行左前/左后门闭锁; b. FLZCU 发送 CAN 信号(CentralLockingReq =0x2:lock) 识别以上这段需求的输入输出信号,生成json格式

千问回复如下:

基于提供的条件和说明,下面是一个总结这些自动闭锁功能逻辑的JSON格式表示。请注意,实际应用中可能需要根据具体系统或平台的规范调整字段命名和数据类型。

 

Json

1{
2  "enableConditions": {
3    "powerMode": "ON",
4    "driverDoorLockSwitch": "UNLOCKED",
5    "allDoorsClosed": {
6      "LHFdoorSts": "CLOSED",
7      "LHRdoorSts": "CLOSED",
8      "RHFdoorSts": "CLOSED",
9      "RHRdoorSts": "CLOSED"
10    },
11    "autoLockSetting": "ENABLED",
12    "configBitAutoLock": "SET",
13    "thermalRunawayStatus": "SAFE"
14  },
15  "triggerCondition": {
16    "vehicleSpeedTransition": {
17      "from": "<15km/h",
18      "to": ">15km/h",
19      "signalValidity": "VALID"
20    }
21  },
22  "executionOutputs": {
23    "leftFrontRearLockAction": {
24      "duration": "200ms±50ms",
25      "target": ["LFDoorMotor", "LRDoorMotor"],
26      "action": "LOCK"
27    },
28    "centralLockingSignal": {
29      "CANMessage": {
30        "id": null, // 实际CAN ID需根据车辆协议设定
31        "data": {
32          "CentralLockingReq": "0x2" // lock command
33        }
34      }
35    }
36  }
37}

在这个JSON结构中:

  • enableConditions 包含了所有使能条件,如电源状态、门锁状态、车速信号有效性等。
  • triggerCondition 指出了触发自动闭锁的具体车速变化条件。
  • executionOutputs 则定义了执行闭锁时的输出动作,包括对左前/左后门锁电机的驱动指令以及通过CAN总线发送的中央锁止请求信号。

请注意,部分字段如CAN消息ID未具体给出,因为这通常依据车辆的具体通信协议而定,应根据实际情况填写。此外,对于配置字和信号状态,我使用了描述性文字(如"ENABLED"、"SAFE"),在实际应用中,这些应转换为相应的二进制或十六进制值以匹配系统的编码规则。

第二步,将json数据存储到excel表格中

提示词如下:

将json格式的数据存储在excel表格中,第一列表头为输入输出类型,可选I/O,第二例为输入输出信号的名字,第三列为信号的物理意义解释,用中文描述第三列,请给我编写一段python代码实现上边的要求

千问回复如下:

要将上述JSON数据存储到Excel表格中,可以使用Python的pandas库来完成这个任务。首先确保你已经安装了pandasopenpyxl库,这两个库可以帮助我们创建和操作Excel文件。如果尚未安装,可以通过运行pip install pandas openpyxl来安装它们。

下面是根据你的要求编写的Python代码示例:

 

Python

1import pandas as pd
2
3# 定义JSON数据
4json_data = {
5    "enableConditions": {
6        # ...(此处省略JSON数据以保持示例简洁,直接使用前面给出的JSON数据)
7    },
8    "triggerCondition": {
9        # ...(同上,省略内容)
10    },
11    "executionOutputs": {
12        # ...(同上,省略内容)
13    }
14}
15
16# 准备数据结构以适应DataFrame
17data_rows = []
18
19# 处理使能条件
20for key, value in json_data["enableConditions"].items():
21    if isinstance(value, dict):  # 如果是门状态这种包含多个子项的情况
22        for sub_key, sub_value in value.items():
23            data_rows.append(('I', f'{key}_{sub_key}', f'{key}下的{sub_key}状态'))
24    else:
25        data_rows.append(('I', key, f'{key}的状态'))
26
27# 处理触发条件
28for key, value in json_data["triggerCondition"].items():
29    if isinstance(value, dict):
30        for sub_key, sub_value in value.items():
31            data_rows.append(('I', f'{key}_{sub_key}', f'{key}中的{sub_value}'))
32    else:
33        data_rows.append(('I', key, f'{key}的条件'))
34
35# 处理执行输出
36for key, value in json_data["executionOutputs"].items():
37    if isinstance(value, dict):
38        if "duration" in value:  # 特殊处理有持续时间的情况
39            data_rows.append(('O', f'{key}_duration', '执行动作的持续时间'))
40            data_rows.append(('O', f'{key}_target', '执行动作的目标部件'))
41            data_rows.append(('O', f'{key}_action', '执行的动作'))
42        elif "CANMessage" in value and "data" in value["CANMessage"]:
43            for sub_key, sub_value in value["CANMessage"]["data"].items():
44                data_rows.append(('O', f'{key}_{sub_key}', f'CAN信号中的{sub_key}指令'))
45    else:
46        data_rows.append(('O', key, f'{key}的输出详情'))
47
48# 创建DataFrame
49df = pd.DataFrame(data_rows, columns=['输入输出类型', '信号名字', '物理意义解释'])
50
51# 写入Excel
52df.to_excel('input_output_signals.xlsx', index=False)
53print("数据已成功写入Excel表格。")

这段代码首先准备了一个列表data_rows来收集所有输入输出信号的信息,然后利用这些信息创建了一个pandas DataFrame。最后,这个DataFrame被写入名为input_output_signals.xlsx的Excel文件中。请注意,根据你的具体需求,可能需要进一步调整数据处理逻辑以完整适配你的JSON结构。

将以上代码copy到vs code中,简单调整一下报错的语句,将第一步的json数据填写进去,得到如下代码,

import pandas as pd# 定义JSON数据
json_data = {"enableConditions": {"powerMode": "ON","driverDoorLockSwitch": "UNLOCKED","allDoorsClosed": {"LHFdoorSts": "CLOSED","LHRdoorSts": "CLOSED","RHFdoorSts": "CLOSED","RHRdoorSts": "CLOSED"},"autoLockSetting": "ENABLED","configBitAutoLock": "SET","thermalRunawayStatus": "SAFE"},"triggerCondition": {"vehicleSpeedTransition": {"from": "<15km/h","to": ">15km/h","signalValidity": "VALID"}},"executionOutputs": {"leftFrontRearLockAction": {"duration": "200ms±50ms","target": ["LFDoorMotor", "LRDoorMotor"],"action": "LOCK"},"centralLockingSignal": {"CANMessage": {"id": "null","data": {"CentralLockingReq": "0x2" }}}}
}# 准备数据结构以适应DataFrame
data_rows = []# 处理使能条件
for key, value in json_data["enableConditions"].items():if isinstance(value, dict):  # 如果是门状态这种包含多个子项的情况for sub_key, sub_value in value.items():data_rows.append(('I', f'{key}_{sub_key}', f'{key}下的{sub_key}状态'))else:data_rows.append(('I', key, f'{key}的状态'))# 处理触发条件
for key, value in json_data["triggerCondition"].items():if isinstance(value, dict):for sub_key, sub_value in value.items():data_rows.append(('I', f'{key}_{sub_key}', f'{key}中的{sub_value}'))else:data_rows.append(('I', key, f'{key}的条件'))# 处理执行输出
for key, value in json_data["executionOutputs"].items():if isinstance(value, dict):if "duration" in value:  # 特殊处理有持续时间的情况data_rows.append(('O', f'{key}_duration', '执行动作的持续时间'))data_rows.append(('O', f'{key}_target', '执行动作的目标部件'))data_rows.append(('O', f'{key}_action', '执行的动作'))elif "CANMessage" in value and "data" in value["CANMessage"]:for sub_key, sub_value in value["CANMessage"]["data"].items():data_rows.append(('O', f'{key}_{sub_key}', f'CAN信号中的{sub_key}指令'))else:data_rows.append(('O', key, f'{key}的输出详情'))# 创建DataFrame
df = pd.DataFrame(data_rows, columns=['输入输出类型', '信号名字', '物理意义解释'])# 写入Excel
df.to_excel('input_output_signals.xlsx', index=False)
print("数据已成功写入Excel表格。")

点击运行,生成如下excel表格,

表格内容如下:

看到按照预期,第一列为输入输出类型,I代表输入信号,O代表输出信号

第二列,为信号名,第三列为信号物理含义。

到此就完成了需求的初步分析,将自然语言的需求中的输入输出提取成了结构化的接口数据,作为我们后续软件架构设计的输入。

今天就介绍到这里,后边在给大家分享更多大语言模型在汽车软件开发中的应用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/5120.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

idm下载速度慢解决办法 idm批量下载怎么用 idm优化下载速度 Internet Download Manager解决下载速度慢的方法教程

IDM (Internet Download Manager)是一款兼容性大&#xff0c;支持多种语言的下载管理软件&#xff0c;它可以自动检测并下载网页上的内容&#xff0c;这正是这一优点&#xff0c;使得它受到了广大用户的喜爱。但是在下载的过程中&#xff0c;我们会遇到idm下载速度慢怎么回事&a…

ubuntu搭建node私库Verdaccio

ubuntu搭建node私库Verdaccio Verdaccio 是一个轻量级的私有 npm 代理注册服务器&#xff0c;它是开源的&#xff0c;可以帮助你设置和维护企业内部的 npm 包的存储库。使用 Verdaccio 可以让你完全控制包的发布流程、依赖关系以及访问策略。这篇文章将指导你如何在 Ubuntu 系…

【Elasticsearch】安装配置与使用

1 前期准备 1.1 环境准备 麒麟ARM 64位操作系统 1.2 安装包准备 Elasticsearch下载地址: https://www.elastic.co/cn/downloads/elasticsearch 2 部署elasticsearch 2.1 创建es专用用户 注意&#xff1a;ES不能使用root用户来启动&#xff0c;必须使用普通用户来安装启…

【百度Apollo】探索自动驾驶:小白教学如何使用 Dreamview 播放数据包

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏: 《linux深造日志》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 文章目录 引入一、Dreamview 简介二、使用 Dreamview 具体步骤步骤一&#xff1a;进入 Apollo Docker 环境步骤二&#xff…

.net报错异常及常用功能处理总结(持续更新)

.net报错异常及常用功能处理总结---持续更新 1. WebApi dynamic传参解析结果中ValueKind Object处理方法问题描述方案1&#xff1a;(推荐&#xff0c;改动很小)方案2&#xff1a; 2.C# .net多层循环嵌套结构数据对象如何写对象动态属性赋值问题描述JavaScript动态属性赋值.net…

初步认识Vscode

4.26初步认识Vscode &#xff08;一&#xff09;快捷键的使用 1. 打开控制端 ctrl ~2. 结束终端 ctrl c3. 多行同时对齐输出 按住shift alt 光标多选4. 多行同时任意位置输出 按住alt 光标单点你想要输入的位置5. 代码太长了&#xff0c;想混行编辑 alt z6. 打开设置控制…

记录一次大数据量接口优化过程

问题描述 记录一次大数据量接口优化过程。最近在优化一个大数据量的接口&#xff0c;是提供给安卓端APP调用的&#xff0c;因为安卓端没做分批次获取&#xff0c;接口的数据量也比较大&#xff0c;因为加载速度超过一两分钟&#xff0c;所以导致接口超时的异常&#xff0c;要让…

【网络原理】TCP协议的相关机制(确认应答、超时重传)

系列文章目录 【网络通信基础】网络中的常见基本概念 【网络编程】Java网络编程中的基本概念及实现UDP、TCP客户端服务器程序&#xff08;万字博文&#xff09; 【网络原理】UDP协议的报文结构 及 校验和字段的错误检测机制&#xff08;CRC算法、MD5算法&#xff09; 文章目…

# 谷歌 Chrome 浏览器无法安装插件的解决方法

谷歌 Chrome 浏览器无法安装插件的解决方法 运用开发模式安装 安装步骤&#xff1a; 1、 将 XX.crx 插件的扩展名改成 .zip 或者 .rar 并解压到文件夹 XX 目录。 1&#xff09;如&#xff1a;下载的 前端框架 vue.js 插件 nhdogjmejiglipccpnnnanhbledajbpd-6.6.1-Crx4Chro…

面试重点2:网页访问不了,从服务器层面如何排查

从服务器层面排查网页访问问题可以按照以下步骤进行&#xff1a; 1. 检查网络连接 确保服务器的网络连接正常&#xff0c;可以通过 ping 命令测试网络是否通畅&#xff0c;例如 ping www.example.com。 2. 排查 DNS 问题 如果访问域名无法解析&#xff0c;可能是 DNS 配置问…

邦注科技即热式节能模温机 模温机的工作原理

模温机是一种用于控制模具温度的设备&#xff0c;主要用于塑料注塑、压铸、橡胶成型等工艺中。 其工作原理主要包括以下几个步骤&#xff1a; 加热阶段&#xff1a; 当模具需要加热时&#xff0c;双温模温机会启动加热系统&#xff0c;将热传导油或热传导水加热至设定温度。加…

Spring Cloud学习笔记(Hystrix):execute,queue,observe,toObservable样例和特性

这是本人学习的总结&#xff0c;主要学习资料如下 - 马士兵教育 1、Overview2、execute()2.1、Overview2.2、示例 3、queue()3.1、Overview3.2、示例 4、observe()4.1、Overview4.2、示例 5、toObservable()5.1、observe()和toObservable()的区别 1、Overview 我们知道Hystrix…

HDFS架构

HDFS 是一个主从 Master/Slave 架构一个 HDFS 集群包含一个 NameNode,这是一个 Master Server,用来管理文件系统的命名空间,以及协调客户端对文件的访问一个 HDFS 集群包含多个 DataNode,用来存储数据HDFS 会对外暴露一个文件系统命名空间,并允许用户数据以文件的形式进行存储在…

iOS实现一个高性能的跑马灯

效果图 该跑马灯完全通过CATextLayer 实现&#xff0c;轻量级&#xff0c;并且通过 系统的位移动画实现滚动效果&#xff0c;避免了使用displaylink造成的性能瓶颈&#xff0c;使用系统动画&#xff0c;系统自动做了很多性能优化&#xff0c;实现更好的性能&#xff0c;并使用…

java设计模式 -- 工厂模式

1、基本概念 工厂模式&#xff08;Factory Pattern&#xff09;是 Java 中最常用的设计模式之一&#xff0c;这种类型的设计模式属于创建型模式&#xff0c;它提供了一种创建对象的最佳方式。 工厂模式提供了一种创建对象的方式&#xff0c;而无需指定要创建的具体类。 工厂…

python与上位机开发day04

模块和包、异常、PyQt5 一、模块和包 1.1 模块 Python中模块就是一个.py文件&#xff0c;模块中可以定义函数&#xff0c;变量&#xff0c;类。模块可以被其他模块引用 1.1.1 导入模块 """ 导入格式1&#xff1a; import 模块名 使用格式&#xff1a; …

【yolov8目标检测部署】TensorRT int8量化

原作者github&#xff1a;https://github.com/xuanandsix/Tensorrt-int8-quantization-pipline/tree/main 改进&#xff1a; 源代码支持的TensorRT版本为7.许多属性已经弃用&#xff1b; 在原有的代码上将支持的TensorRT版本从7改到8. &#xff01;&#xff01;不知道如何安装T…

【设计模式】简单工厂模式(Simple Factory Pattern)

工厂模式&#xff08;Factory Pattern&#xff09; 用于创建不同类型的奖品对象。您可以创建一个奖品工厂&#xff0c;根据配置的类型来实例化相应的奖品对象。 public interface Prize {void award(); }public class MoneyPrize implements Prize {Overridepublic void awar…

在 Windows 系统上安装 TeamViewer 13

在 Windows 系统上安装 TeamViewer 13 References 默认安装到所有用户 同意协议 安装目录 勾选内容 打开文件位置 打开 rClientID.exe Extras -> Options -> Advanced Show advanced options -> Display language 重新启动TeamViewer 语言可修改为中文简体 …

稳扎稳打 部署丝滑 开源即时通讯(IM)项目OpenIM源码部署流程(linux windows mac)

背景 OpenIM包含多个关键组件&#xff0c;每个都是系统功能必不可少的一部分。具体来说&#xff0c;MongoDB 用于持久化存储&#xff1b;Redis 用作缓存&#xff1b;Kafka 用于消息队列&#xff1b;Zookeeper 用于服务发现&#xff1b;Minio 用于对象存储。这些组件的众多可能会…