# Device Controller

# 功能列表

# 功能分析

# SWITCH

# 功能

  • 获取switch信息列表
  • 获取switch状态
  • 设置switch状态
  • switch数据结构,名称,状态,状态改变(off/on时)是否有警告

# 与MOS Services关联接口

提示

1、MOS Servcies会在后期添加设置警告,警告内容如下:

  • 无警告
  • 打开时警告
  • 关闭时警告
  • 所有设置都有警告

2、返回结果会广播到每一个连接Services的客户端,但具体实现方式待定。

# DAC

# 功能

  • 获取DAC列表
  • 参数转化成DAC
  • 设置DAC
  • DAC数据结构,名称、初始化值 单位 范围以及第二参数

# 与MOS Services关联接口

提示

1、DAC信息列表 由 SDK 来提供
2、Convert 逻辑转换 由 SDK 来做

# Peripherals

# 功能

  • 获取Peripherals信息列表
  • 发送命令并返回结果值
  • Peripherals数据结构,组,命令名,参数以及警告

# 与MOS Services关联接口

# ADC

# 功能

  • 获取ADC列表
  • 读取特定ADC的值
  • ADC数据结构,ADC名称、值和DAC

# 与MOS Services关联接口

提示

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

提示

1、参数不一样,SDK需要二次加工计算。
2、不需要CHIRP生成Waveform功能。
3、导入导出由第三方完成

# SDRAM

# 功能

  • 写入SDRAM
  • 从SDRAM中读出
  • 导入和导出文件

# 与MOS Services关联接口

提示

1、导入导出由第三方完成

# FPGA

# 功能

  • 读取FPGA
  • 写入FPGA

# 与MOS Services关联接口

# Config

提示

该功能放入到Parameters API中

# 线程模型

提示

1、SDK内部所有模块统一调用唯一的websocketclient(ws_client)
2、app和sdk之间采用同步调用,SDK内部采用异步调用,这就需要在模块内部实现异步和同步的转化。

# 接口与数据结构

uml diagram

提示

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为多少。

uml diagram

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;
1
2
3
4

提示

1、设备类型除MCU和FPGA外,是否还有其他类型。

uml diagram

DACInfo是DAC信息的基本结构,属性说明如下:

  • signal:dac的Key,唯一标识。
  • param1:第一参数的值。
  • paramUnit1:第一参数的单位,单位对SDK本身无意义,但建议app加上,方便用户识别。
  • param2:第二参数的值。
  • paramUnit2:第二参数的单位,单位对SDK本身无意义,但建议app加上,方便用户识别。

提示

只有很少的DAC有第二参数,如果有第二参数则必然会有第二参数单位,如果第二参数单位为空则说明没有第二参数。

uml diagram

ADCInfo是ADC信息的基本结构,属性说明如下:

  • signal:adc的Key,唯一标识。
  • adcValue:ADC的值
  • dacValue:DAC的值

提示

在通过接口GetADCList获取到的ADC列表是没有DAc和ADC的值的。DAC和ADC的值需要通过接口ReadADCValue获得。其中内部,data代表adcValue;data-converted代表dacValue

uml diagram

PeripheralsInfo是外设设置的基本信息,属性如下:

  • commandGroup,组,不同的commandKey有可能是一组,app在显示时可以根据此属性进行分组,commandGroup对应消息命令中的name。
  • commandKey,命令名称
  • parameters,参数,参数的格式为json。
  • warning,警告,0-不警告,1-警告,当用户进行设置并要下发命令时,如果需要警告则弹出警告提示。
uml diagram

SwiftInfo,Swift参数,通过这些参数可以生成waveform,swiftInfo的参数和mos_server所需参数不一致,需要SDK在内部进行转换。