跳转到内容

数字量

输入

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

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

操作接口

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

startAsync()

数字量输入入口函数。启动1个数字量输入连接,返回 DIConnection 实例。

ts
function startAsync (setting?: string | Partial<{
    samplingHz: "10" | "20" | "50",
    board: string
}> | undefined | null): Promise<DIConnection>;
  • 输入参数
    • setting 类型为字符串时,表示数字量输入的板卡名称,类型为对象时,表示开启板卡所需的参数。
参数名默认值说明
samplingHz"10"采样频率(Hz),默认值为10,即一秒采样10次。
board数字量输入板卡列表的第一个设备板卡名称
  • 返回值 DIConnection 实例对象。

startWithAsync()

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

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

DIConnection

数字量输入连接的操作接口如下:

inDataAsync()

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

  • 函数签名

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

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

onData()

每一次采样时触发回调。

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

只读接口

DIConnection

records()

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

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

FlowConnectionRecord

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

DIData

  • bits():所有通道的比特位值。

输出

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

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

操作接口

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

startAsync()

数字量输出入口函数。启动1个数字量输出连接,返回 DOConnection 实例。

ts
function startAsync (board?: string): Promise<DOConnection>;
  • 输入参数
    • board 数字量输出板卡名称,默认为数字量输出板卡列表的第一个设备。
  • 返回值 DOConnection 实例对象。

startWithAsync()

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

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

DOConnection

数字量输出连接的操作接口如下:

inDataAsync()

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

  • 函数签名

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

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

onData()

每一次采样时触发回调。

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

变更指定通道的输出值。

ts
type FlowSendResult = 'done' | 'error';

type DOWriteChannel = {
    channel: number;
    value: 0 | 1;
}

writeAsync (channels: DOWriteChannel[]): Promise<FlowSendResult>
  • 输入参数
    • channels 通道的设置数组。
参数名类型说明
channelnumber通道序号
value枚举值数字量通道的输出值为0或1。
  • 返回值 FlowSendResult,发送结果,包含如下结果:
    • 'done':发送完成。
    • 'error':发送失败。

只读接口

DOConnection

records()

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

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

FlowConnectionRecord

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

DOData

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