# Device Controller
# 功能列表
# 功能分析
# SWITCH
# 功能
- 获取switch信息列表
- 获取switch状态
- 设置switch状态
- switch数据结构,名称,状态,状态改变(off/on时)是否有警告
# 与MOS Services关联接口
- moss_switch_list_req (获取列表)
- moss_switch_set_req (设置开关状态)
提示
1、MOS Servcies会在后期添加设置警告,警告内容如下:
- 无警告
- 打开时警告
- 关闭时警告
- 所有设置都有警告
2、返回结果会广播到每一个连接Services的客户端,但具体实现方式待定。
# DAC
# 功能
- 获取DAC列表
- 参数转化成DAC
- 设置DAC
- DAC数据结构,名称、初始化值 单位 范围以及第二参数
# 与MOS Services关联接口
- moss_dac_list_req (获取列表)
- moss_dac_write_req (设置DAC的值)
提示
1、DAC信息列表 由 SDK 来提供
2、Convert 逻辑转换 由 SDK 来做
# Peripherals
# 功能
- 获取Peripherals信息列表
- 发送命令并返回结果值
- Peripherals数据结构,组,命令名,参数以及警告
# 与MOS Services关联接口
- moss_peripheral_list_req (获取列表)
- moss_peripheral_invoke_command_req (发送命令并返回结果)
# ADC
# 功能
- 获取ADC列表
- 读取特定ADC的值
- ADC数据结构,ADC名称、值和DAC
# 与MOS Services关联接口
- moss_adc_list_req (获取列表)
- moss_adc_read_req (读取特定ADC的值)
提示
moss_adc_read_req,数据如下:
"data": {
"adc": "ADC_RF1_AMP",
"data": 65535,
"data-converted": 3.0 // optional
},
其中:
- data代表value
- convert代表dac
# SWIFT
# 功能
- 根据参数生成waveform,SWIFT->Generate
- 将waveform设置到FPGA中
- 从FPGA中读取waveform
# 与MOS Services关联接口
- moss_swift_write_with_params_req (根据参数生成waveform)
- moss_swift_write_req (写入FPGA)
- moss_swift_read_req (从FPGA中读出)
提示
1、参数不一样,SDK需要二次加工计算。
2、不需要CHIRP生成Waveform功能。
3、导入导出由第三方完成
# SDRAM
# 功能
- 写入SDRAM
- 从SDRAM中读出
- 导入和导出文件
# 与MOS Services关联接口
- moss_fpga_read_sdram_req (从sdram中读出)
- moss_fpga_write_sdram_req (写入SDRAM)
提示
1、导入导出由第三方完成
# FPGA
# 功能
- 读取FPGA
- 写入FPGA
# 与MOS Services关联接口
- moss_fpga_read_reg_req (读取fpga)
- moss_fpga_write_reg_req (写入fpga)
# Config
提示
该功能放入到Parameters API中
# 线程模型
提示
1、SDK内部所有模块统一调用唯一的websocketclient(ws_client)
2、app和sdk之间采用同步调用,SDK内部采用异步调用,这就需要在模块内部实现异步和同步的转化。
# 接口与数据结构
提示
DeviceController中的接口使用可能会造成设备硬件损坏和分析结果不准,所以在使用前应明确该接口的功能的意义,谨慎使用及小心验证。
DeviceController是对硬件设备和固件参数进行操作的类,其中API说明如下:
- GetSwitchList:获取Switch列表,通过调用该接口将设备中所有的switch功能信息进行获取。
- GetDACList:获取DAC列表,通过调用该接口获取可以设置的DAC功能列表,该列表为SDK提供。
- GetADCList:获取ADC列表,通过调用该接口获取可以设置的DAC功能列表,该列表为SDK提供。
- GetPeripheralsList:获取Peripherals功能列表。
- DAConvert:获取DAC的值,通过参数1和参数2进行转化,可以获取到DAC的值,该功能为SDK内部计算逻辑。
- SetSwitchInfo:设置Switch,通过switch的key和状态值进行设置。设置成功返回true,errorInfo为空;失败则为false,并在errorInfo中获取失败原因。
- state: 0-关闭,1-打开
- SetDACInfo:设置DAC,通过dac的key和dac的值设置。设置成功返回true,errorInfo为空;失败则为false,并在errorInfo中获取失败原因。
- SetPeripheralsInfo:设置Perpherals,根据Perpherals(组名、命令名、参数)信息进行设置。成功返回true,并返回result字符串,errorInfo为空;失败则为false,result为空,并在errorInfo中获取失败原因。
- SetSwiftWithParam: 通过给定的SWIFT参数信息生成waveform。设置成功返回true,errorInfo为空;失败则为false,并在errorInfo中获取失败原因。
- SetSwift:通过给定swift地址标识以及数据对swift进行设置。设置成功返回true,errorInfo为空;失败则为false,并在errorInfo中获取失败原因。
- SetSDRAMData:将SDRAM数据写入设备。addr表示16进制地址,datas为数据。设置成功返回true,errorInfo为空;失败则为false,并在errorInfo中获取失败原因。
- SetFPGAData:将FPGA数据写入设备。addr表示16进制地址,data为数据。设置成功返回true,errorInfo为空;失败则为false,并在errorInfo中获取失败原因。
- ReadADCValue:通过给定dac的key的获取ADC信息。
- ReadSwift:通过给定的swift 16进制地址和长度获取Swift数据数组。
- GetSDRAMData:通过给定的SDRAM 16进制地址和长度获取SDRAM数据数组。
- GetFPGAData:通过给定的FPGA 16进制地址获取FPGA的值。
提示
SetSwiftWithParam 接口是否需要返回值,其swiftloc为多少。
SwitchInfo,Switch的基本信息,属性说明如下:
- switchKey:Switch的名称,字符串类型。
- state:开关状态,0:off;1:on
- type:DeviceType,设备类型。
- warning:设置警告,APP需要根据Level在设置switch时进行提示。
warning-0:无需警告
warning-1:打开时警告
warning-2:关闭时警告
warning-3:打开和关闭时均有警告
typedef enum {
MCU,
FPGA,
} DeviceType;
2
3
4
提示
1、设备类型除MCU和FPGA外,是否还有其他类型。
DACInfo是DAC信息的基本结构,属性说明如下:
- signal:dac的Key,唯一标识。
- param1:第一参数的值。
- paramUnit1:第一参数的单位,单位对SDK本身无意义,但建议app加上,方便用户识别。
- param2:第二参数的值。
- paramUnit2:第二参数的单位,单位对SDK本身无意义,但建议app加上,方便用户识别。
提示
只有很少的DAC有第二参数,如果有第二参数则必然会有第二参数单位,如果第二参数单位为空则说明没有第二参数。
ADCInfo是ADC信息的基本结构,属性说明如下:
- signal:adc的Key,唯一标识。
- adcValue:ADC的值
- dacValue:DAC的值
提示
在通过接口GetADCList获取到的ADC列表是没有DAc和ADC的值的。DAC和ADC的值需要通过接口ReadADCValue获得。其中内部,data代表adcValue;data-converted代表dacValue
PeripheralsInfo是外设设置的基本信息,属性如下:
- commandGroup,组,不同的commandKey有可能是一组,app在显示时可以根据此属性进行分组,commandGroup对应消息命令中的name。
- commandKey,命令名称
- parameters,参数,参数的格式为json。
- warning,警告,0-不警告,1-警告,当用户进行设置并要下发命令时,如果需要警告则弹出警告提示。
SwiftInfo,Swift参数,通过这些参数可以生成waveform,swiftInfo的参数和mos_server所需参数不一致,需要SDK在内部进行转换。
← 总体设计 Database Manager →