# 添加输出动作 (OAction)

> IOToolkit中，输出动作(**OAction**)将一个或多个输出通道进行分组，当控制输出动作时，其值将会分发到结点下的每一个通道

### 添加输出动作

```markup
<IORoot>
  <Device Name="Standard" Type="Standard"></Device>
  
  <Device Name="PCI2312A" Type="External" DllName="PCI2312A" Index="0">
    
    <!-- 
      注册输出动作TurnOnLight
      当TurnOnLight 设置输出值为1 时
      则OAxis_00通道 将会设置输出值为 0，OAxis_02通道 将会设置输出值为 1
    -->
    <OAction Name="TurnOnLight">
      <Key Name="OAxis_00" Scale="1" InvertEvent="True" />
      <Key Name="OAxis_02" />
    </OAction>
    <!-- End -->
    
  </Device>
  
  </Device>
</IORoot>
```

### OAction 结点属性

| 属性   | 含义     | 示例值         |
| ---- | ------ | ----------- |
| Name | 输出动作标识 | TurnOnLight |

### OAction 结点下 Key 结点属性

| 属性          | 含义                   | 示例值       |
| ----------- | -------------------- | --------- |
| Name        | 输出通道标识               | OAxis\_00 |
| InvertEvent | 输出值反转，非0映射为0,  0映射为1 | True      |
| Scale       | 输出值缩放参数              | 100       |

{% hint style="info" %}
注意：Key结点下，**Scale**参数作用于**InvertEvent**之后
{% endhint %}
