跳转到内容

模拟量

输入

模拟量输入 的接口以「jc.ai」作为对象访问前缀。模拟量输入 通信流程包含以下步骤:

  1. 通过startAsync创建模拟量输入连接「AIConnection」。
  2. 操作模拟量输入连接实例,通过 inDataAsync 接口获取模拟量数据「AIData」。
  3. 操作数据实例,通过通过只读接口获取数据内容和统计信息。

操作接口

模拟量输入 的操作接口由入口函数 startAsync 和不同层级(连接/数据)的工具类接口共同组成。

startAsync()

模拟量输入入口函数。启动1个模拟量输入连接,返回 AIConnection 实例。

ts
type AISetting = {
    board: string;
    sectionLength: number;
    clockRate: number;
}

function startAsync (setting?: AISetting): Promise<AIConnection>;
  • 输入参数
    • setting 设置模拟量输入的采样缓存数和采样频率。
参数名默认值说明
board模拟量输入板卡列表的第一个设备板卡名称
sectionLength10采样缓存数(每采样sectionLength次获取一次数据),默认值为10,即每采样10次获取一次数据。
clockRate10采样频率(Hz),默认值为10,即一秒采样10次。
  • 返回值 AIConnection 实例对象。

startWithAsync()

入口函数的便利版本。根据指定页面的参数启动1个模拟量输入连接,返回 AIConnection 实例。

  • 函数签名
ts
function startWithAsync (pageName: string): Promise<AIConnection>;
  • 输入参数
    • pageName 目标模拟量输入接口页面名称。查找指定名称的接口页面,获取该页面中的参数,并以此启动1个模拟量输入连接。
  • 返回值 AIConnection 实例对象。

AIConnection

模拟量输入连接的操作接口如下:

inDataAsync()

异步获取数据对象,每一次采样数据都会存到该数据对象中。

  • 函数签名

    ts
    inDataAsync (): Promise<AIData>;
  • 输入参数 无

  • 返回值 Promise对象,在开始采样数据后返回AIData对象。

onData()

当获取到指定次数的采样数据时触发回调。

  • 函数签名

    ts
    onData (
      handler: (data: AIData) => void, once?: boolean
    ): CancelFunc;
  • 输入参数

    • handler 新数据包的处理函数。触发时将会回调本函数,并传入新的AIData实例。
    • once(可选),默认值为false。是否注册为一次性的回调函数,若传入true则触发了1次回调后会自动取消注册。
  • 返回值 取消函数,调用此函数可以解除本次注册。

只读接口

AIConnection

模拟量输入连接的只读接口如下:

records()

获取连接的打开记录列表,连接只会打开一次。

  • 函数签名
ts
records (): FlowConnectionRecord[];

FlowConnectionRecord

  • inBytes():返回自本次连接创建以来累计接收的字节数。
  • outBytes():返回自本次连接创建以来累计发送的字节数。
  • inPackets():返回自本次连接创建以来累计接收的数据包个数。
  • outPackets():返回自本次连接创建以来累计发送的数据包个数。

AIData

  • length():数据包载荷的字节数。
  • payload():该数据包的原始载荷内容,即二进制数据。

输出

模拟量输出 的接口以「jc.ao」作为对象访问前缀。模拟量输出 通信流程包含以下步骤:

  1. 通过startAsync创建模拟量输出连接「AOConnection」。
  2. 操作模拟量输出连接实例,通过 inDataAsync 接口获取模拟量数据「AOData」。
  3. 操作数据实例,通过通过只读接口获取数据内容和统计信息。

操作接口

模拟量输出 的操作接口由入口函数 startAsync 和不同层级(连接/数据)的工具类接口共同组成。

startAsync()

模拟量输出入口函数。启动1个模拟量输出连接,返回 AOConnection 实例。

ts
type AOSetting = {
    board: string;
    period: number;
    clockRate: number;
}

function startAsync (setting?: AOSetting): Promise<AOConnection>;
  • 输入参数
    • setting 设置模拟量输出的输出周期和输出频率。
参数名默认值说明
board模拟量输出板卡列表的第一个设备板卡名称
period5输出周期(秒),默认值为5,即每5秒输出一个完整周期的波形。
clockRate10输出频率(Hz),默认值为10,即一秒输出10个采样点。
  • 返回值 AOConnection 实例对象。

startWithAsync()

入口函数的便利版本。根据指定页面的参数启动1个模拟量输出连接,返回 AOConnection 实例。

  • 函数签名
ts
function startWithAsync (pageName: string): Promise<AOConnection>;
  • 输入参数
    • pageName 目标模拟量输出接口页面名称。查找指定名称的接口页面,获取该页面中的参数,并以此启动1个模拟量输出连接。
  • 返回值 AOConnection 实例对象。

AOConnection

模拟量输出连接的操作接口如下:

inDataAsync()

异步获取一次输出采样的结果。

  • 函数签名

    ts
    inDataAsync (): Promise<number[]>;
  • 输入参数 无

  • 返回值 Promise对象,一次采样完成后后返回number数组。

onData()

每次模拟量输出数据之后触发的回调函数。

  • 函数签名
ts
onData (
  handler: (data: AOData) => void, once?: boolean
): CancelFunc;
  • 输入参数
    • handler 新数据包的处理函数。触发时将会回调本函数,并传入新的AOData实例。
    • once(可选),默认值为false。是否注册为一次性的回调函数,若传入true则触发了1次回调后会自动取消注册。
  • 返回值 取消函数,调用此函数可以解除本次注册。
updateChannels()

更新通道的输出波形参数。

  • 函数签名
ts
type WaveformType = "const" | "sine" | "square" | "triangle";

type ChannelWaveForm = {
    channelNumber: number,
    type: WaveformType,
    high: number,
    low: number,
    constValue: number
}

updateChannels(channels: ChannelWaveForm[]): Promise<void>;
  • 输入参数
    • channels 通道的波形参数数组。
属性名类型说明
channelNumbernumber通道序号
type枚举值波形类型,可选类型有恒定值("const")、正弦波("sine")、方波("square")、三角波("triangle")。
highnumber波峰值(V)
lownumber波谷值(V)
constValuenumber输出波形为恒定值时的取值(V)
  • 返回值 无

只读接口

AOConnection

模拟量输出连接的只读接口如下:

records()

获取连接的打开记录列表,连接只会打开一次。

  • 函数签名
ts
records (): FlowConnectionRecord[];

FlowConnectionRecord

  • inBytes():返回自本次连接创建以来累计接收的字节数。
  • outBytes():返回自本次连接创建以来累计发送的字节数。
  • inPackets():返回自本次连接创建以来累计接收的数据包个数。
  • outPackets():返回自本次连接创建以来累计发送的数据包个数。

AOData

  • length():数据包载荷的字节数。
  • payload():该数据包的原始载荷内容,即二进制数据。