评审背景
1、sdk扩展了uart互联的能力,支持uart的tx/rx独立互联。
背景介绍:sdk原有的uart互联功能会同时将uart/port和uart/port的tx和rx同时建立通信,该能力框架已提供资源树方法“UartConnectUart",“UartConnectPort”,“PortConnectPort”。
在保留该能力的基础上,sdk扩展出了允许对tx/rx单独建立通信的能力
原有能力: 设置互联会同时设置uart和port的tx和rx
增强功能: 支持tx和rx分开配置互联,并支持tx与多个uart或port互联
补充说明:对uart而言,tx是输出,rx是输入。对port而言,port的tx和rx是对用户而言的,所以输入是tx,输出是rx
2、支持uart over hisport
背景介绍:sdk提供了将uart配置成hisport uart的接口,配置成hisport uart后原uart的标准操作仍支持(支持SOL、支持port、uart互联)。当前2路hisport都支持uart,分别作为2路系统串口,通过sdk新增的hisport uart使能接口可将uart0和uart1配置成hisport uart。
hisport uart未使能时,uart0和uart1继续作为host域uart,无变更。
触发原因:需求
- sdk新提供了uart的tx和rx独立互联的能力
- 支持将uart0和uart1切换成hisport uart
- 考虑兼容性,平台版本不支持以上方法时,返回已有自定义错误“OperationNotSupport”
当前差距/问题分析:
1、框架需要在sdk提供独立互联后,封装提供uart/port 的tx和rx独立互连的接口
2、框架需要提供hisport uart的配置使能开启和关闭的接口
决策点
决策点1:在原资源协作路径/bmc/kepler/Managers/:Id/Uart的接口bmc.kepler.Managers.Uart下新增以下方法
UartRxConnectUartTx、 UartRxConnectPortRx、 PortTxConnectPortRx、 PortTxConnectUartTx
决策点2:在原资源协作路径/bmc/kepler/Managers/:Id/Uart下新增接口bmc.kepler.Managers.HisportUart,在该资源协作接口下新增方法SetHisportUartStatus
详细描述
决策点1:
资源path: /bmc/kepler/Managers/:Id/Uart(已有)
资源interface: bmc.kepler.Managers.Uart (已有)
变化类型:新增方法
应用场景:独立互联功能保证面板串口切换到sol后串口录音的功能
持久化类型:不持久化
操作权限:BasicSetting
| 属性名称 |
变化类型 |
签名 |
读写&权限 |
持久化 |
变化通知 |
接口说明 |
接口约束 |
|---|---|---|---|---|---|---|---|
| UartRxConnectUartTx |
新增方法 |
请求:uu 响应:NA |
BasicSetting | NA | NA | “UartRxConnectUartTx”: { “req”: { “SrcUart”: { “baseType”: “U32”, “description”: “源uart控制器” }, “DestUart”: { “baseType”: “U32”, “description”: “目的uart控制器” } }, “rsp”: {}, “description”: “设置SrcUart的Rx和DestUart的Tx的互联状态” }, |
NA |
| UartRxConnectPortRx |
新增方法 |
请求:uu 响应:NA |
BasicSetting | NA | NA | “UartRxConnectPortRx”: { “req”: { “SrcUart”: { “baseType”: “U32”, “description”: “源uart控制器” }, “DestPort”: { “baseType”: “U32”, “description”: “目的port” } }, “rsp”: {}, “description”: “设置SrcUart的Rx和DestPort的Rx的互联状态” }, |
NA |
| PortTxConnectPortRx |
新增方法 |
请求:uu 响应:NA |
BasicSetting | NA | NA | “PortTxConnectPortRx”: { “req”: { “SrcPort”: { “baseType”: “U32”, “description”: “源port” }, “DestPort”: { “baseType”: “U32”, “description”: “目的port” } }, “rsp”: {}, “description”: “设置SrcPort的Tx和DestPort的Tx的互联状态” }, |
NA |
| PortTxConnectUartTx |
新增方法 |
请求:uu 响应:NA |
BasicSetting | NA | NA | “PortTxConnectUartTx”: { “req”: { “SrcPort”: { “baseType”: “U32”, “description”: “源port” }, “DestUart”: { “baseType”: “U32”, “description”: “目的uart控制器” } }, “rsp”: {}, “description”: “设置SrcPort的Tx和DestUart的Tx的互联状态” }, |
NA |
决策点2:
资源path: /bmc/kepler/Managers/:Id/Uart(已有)
资源interface: bmc.kepler.Managers.HisportUart(新增)
变化类型:新增接口和方法
应用场景:使能hisport uart能力,hisport uart可支持标准的uart操作,包括uart互联,sol功能
持久化类型:不持久化
操作权限:BasicSetting
| 属性名称 |
变化类型 |
签名 |
读写&权限 |
持久化 |
变化通知 |
接口说明 |
接口约束 |
|---|---|---|---|---|---|---|---|
| SetHisportUartStatus |
新增方法 |
请求: ub 响应: NA |
BasicSetting | NA | NA | “SetHisportUartStatus”: { “req”: { “UartId”: { “baseType”: “U32”, “enum”: [0, 1], “description”: “uart的id, 0: uart0 1: uart1” }, “Enabled”: { “baseType”: “Boolean”, “description”: “true: 使能, false: 不使能” } }, “rsp”: {}, “description”: “配置hisport uart使能状态” }, |
当前最多只支持2路hisport uart,分别对应uart0和uart1 |
评审结论
决策点1
结论:同意资源协作接口bmc.kepler.Managers.Uart新增以下方法
path:/bmc/kepler/Managers/:Id/Uart
interface:bmc.kepler.Managers.Uart
变化类型:新增方法
方法:
- UartRxConnectUartTx,请求签名uu,无响应签名,权限BasicSetting
- UartRxConnectPortRx,请求签名uu,无响应签名,权限BasicSetting
- PortTxConnectPortRx,请求签名uu,无响应签名,权限BasicSetting
- PortTxConnectUartTx,请求签名uu,无响应签名,权限BasicSetting
决策点2
结论:同意新增资源协作接口bmc.kepler.Managers.HisportUart及方法
path:/bmc/kepler/Managers/:Id/Uart
interface:bmc.kepler.Managers.HisportUart
变化类型:新增接口和方法
方法:
- SetHisportUartStatus,请求签名ub,无响应签名,权限BasicSetting
遗留问题及确认结论:
1、去除SetHisportUartStatus方法中入参uart id的限制
结论:已删除,改为在方法内部做参数校验
2、不新增path,在原有/bmc/kepler/Managers/:Id/Uart新增bmc.kepler.Managers.HisportUart接口
结论:已修改成在原/bmc/kepler/Managers/:Id/Uart下新增bmc.kepler.Managers.HisportUart接口接口
