【已评审】支持UartOverHisport资源协作接口评审

评审背景

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接口接口

1 个赞

背景需要逐个描述新增的能力有哪些,对比之前的差异、分析上要考虑兼容性

已重新修改背景描述,并针对差异点兼容性提出补充点

1、权限有误,不应该为ReadOnly,这里是设置操作,不是查询操作
2、接口描述描述清楚,包括请求参数、响应参数的参数名称、参数描述,参数约束等,不能只有取值
3、hisport和uart大小写统一,不要一会大写一会小写
4、错误描述,要准备描述错误描述、错误消息、解决方案以及错误码。