系统事件
本节介绍 AutoCode 的定时器事件、组件启动事件、连接事件。
创建系统事件
在组件编辑器视图工具 Event & Port 栏中可以选择事件与系统事件端口:
创建事件。
选择事件端口,添加到组件事件中,创建过程示意图:
说明:
创建组件时缺省将创建一个事件,组件中可以创建新的事件。事件类型是由输入端口事件类型确定。事件创建后,事件端口是空的,只有当事件添加输入口后事件才确定类型。
定时器事件
事件描述
定时器事件是 VSOA 定时器功能的抽象。定时器事件可以配置定时器开始计时时间和定时器周期。关于 VSOA 定时器设计更详细的内容可参考 VSOA-Timer
端口属性
定时器事件输入端口配置如下:
表 1 定时器事件输入端口说明
I/O 类型 | 名称 | 值 | 选项 | 缺省值 | 是否可配置 | 说明 |
---|---|---|---|---|---|---|
Input | Type | TIMER | / | TIMER | no | 输入端口类型 |
Input | Name | timer14 | / | 自动配置 | yes | 事件名称 |
Input | Start | 1000 | / | 1000 | yes | 定时器开始启动时间(ms) |
Input | Period | 2000 | / | 2000 | yes | 定时器定时周期(ms) |
Input | Reentrant | true | true, false | true | yes | 会话可重入选项 |
Reentrant
属性:
- 客户端连接事件是会话的第一个事件, 如果
Reentrant
属性配置为false
, 会话不可重入;当会话开始时将检查上次会话是否结束,如果上次会话未结束则中止当前会话。 - 如果
Reentrant
属性配置为true
,允许会话重入。
事件接口
定时器事件没有输入参数,接口原型示例:
ac_result_t serc4_com1_event2_stimer_vreq_io(ac_t *acs);
acs
: 会话上下文对象。
组件启动事件
功能描述
组件启动事件是组件初始化启动时调用的事件,用户可以在该事件中进行组件初始化设置,在输出端口发起 VSOA 请求。
端口属性
组件启动事件输入端口属性配置如下:
表 2 组件启动事件输入端口说明
I/O 类型 | 名称 | 值 | 选项 | 缺省值 | 是否可配置 | 说明 |
---|---|---|---|---|---|---|
Input | Type | SYS_COMINIT | / | TIMER | no | 输入端口类型 |
Input | Name | cominit8 | / | 自动配置 | yes | 事件名称 |
Input | Reentrant | true | true, false | true | yes | 会话可重入选项 |
Reentrant
属性:
- 客户端连接事件是会话的第一个事件, 如果
Reentrant
属性配置为false
, 会话不可重入;当会话开始时将检查上次会话是否结束,如果上次会话未结束则中止当前会话。 - 如果
Reentrant
属性配置为true
,允许会话重入。
事件接口
组件启动事件没有输入参数,接口原型示例:
ac_result_t serc4_com1_event1_sinit_vreq_io(ac_t *acs);
acs
: 会话上下文对象。
客户端连接事件
事件描述
VSOA 客户端连接或断开连接事件,该事件需要配制客户端所连接的的服务。客户端连接事件一个应用场景是当客户端断线重连接时,从服务端同步最新的数据。AutoCode 连接同步组件绑定了客户端连接事件,对该场景功能进行了封装,更多信息请参考连接同步组件。
端口属性
客户端连接事件输入端口属性配置如下:
表 3 客户端连接事件输入端口说明
I/O 类型 | 名称 | 值 | 选项 | 缺省值 | 是否可配置 | 说明 |
---|---|---|---|---|---|---|
Input | Type | SYS_CONN | / | SYS_CONN | no | 输入端口类型 |
Input | Service | serc2 | / | / | yes | 客户端所连接的的服务 |
Input | Reentrant | true | true, false | true | yes | 会话可重入选项 |
Input | Option | connect | connect, disconnect, change, firstConnect | connect | yes | 事件触发类型 |
Reentrant
属性:
- 客户端连接事件是会话的第一个事件, 如果
Reentrant
属性配置为false
, 会话不可重入;当会话开始时将检查上次会话是否结束,如果上次会话未结束则中止当前会话。 - 如果
Reentrant
属性配置为true
,允许会话重入。
Option
属性:
connect
: 客户端连接成功。disconnect
: 客户端断开连接。change
:连接状态变化(连接/断开)。firstConnect
: 第一次连接成功。
事件接口
客户端连接事件没有输入参数,接口原型示例:
ac_result_t serc3_com2_event1_sconnn_vreq_io(ac_t *acs, bool connect);
acs
: 会话上下文对象。connect
: 客户端连接/断开连接。