Symbolic Database Access
SomeIpEstablishTCPConnection
CAPL 函数 >> 以太网 >> SOME/IP IL >> SomeIpEstablishTCPConnection
函数
建立一个或多个数据库中定义的 TCP 连接。
语法
capl
dword SomeIpEstablishTCPConnection(); // 形式 1
dword SomeIpEstablishTCPConnection(dword aepHandle); // 形式 2
dword SomeIpEstablishTCPConnection(dword aepHandle, dword remoteIPv4Address); // 形式 3
dword SomeIpEstablishTCPConnection(dword aepHandle, dword remoteIPv4Address, dword remotePort); // 形式 4
dword SomeIpEstablishTCPConnection(dword aepHandle, byte remoteIPv6Address[]); // 形式 5
long SomeIpEstablishTCPConnection(dword aepHandle, byte remoteIPv6Address[], dword remotePort); // 形式 6
long SomeIpEstablishTCPConnection(dword aepHandle, IP_Endpoint remoteIPEndpoint); // 形式 7
功能说明
- 形式 1:建立本节点的所有 TCP 连接(作为 TCP 客户端)。
- 形式 2:建立 TCP 客户端的所有 TCP 连接。
- 形式 3/5:建立 TCP 客户端到特定 TCP 服务器的所有 TCP 连接。
- 形式 4/6:建立 TCP 客户端到特定 TCP 服务器的 TCP 连接。
- TCP 连接可通过
SomeIpCloseEstablishedTCPConnection函数关闭。
参数
- aepHandle:发起连接的源应用端点,必须在数据库中定义。
- remotePort:用于发送和接收消息的端口。
- remoteIPv4Address :需建立连接的 IPv4 地址,可通过
IPGetAddressAsNumber转换。 - remoteIPv6Address :需建立连接的 IPv6 地址,可通过
IpGetAddressAsArray转换。 - remoteIPEndpoint :
IP_Endpoint类型对象,包含远程端点的地址和端口。
返回值
- 0:函数执行成功。
- >0:错误代码。
可用性
| 版本 | 支持形式 | 限制范围 | 测量设置 | 仿真/测试设置 |
|---|---|---|---|---|
| 11.0 SP3 | 1-6 | 以太网 | --- | • |
| 12.0 SP2 | 7 | 以太网 | --- | • |
示例
capl
variables
{
dword aep; // 应用端点句柄
}
on start
{
// 句柄必须关联数据库中有效的应用端点
aep = SomeIpOpenLocalApplicationEndpoint(IP_Endpoint(TCP:192.168.1.1:40000));
}
on key 'o'
{
// 连接到特定端点
if (SomeIpEstablishTCPConnection(aep, IP_Endpoint(TCP:192.168.1.2:50000)) != 0)
{
write("连接未建立");
}
}
on key 'c'
{
// 关闭节点上下文中的所有连接
if (SomeIpCloseEstablishedTCPConnection() == 0)
{
write("连接已关闭");
}
}
SomeIpGetConsumedObjectHandle
CAPL 函数 >> 以太网 >> SOME/IP IL >> SomeIpGetConsumedObjectHandle
函数
搜索已单独创建的被消费对象(consumed object)。
语法
capl
DWORD SomeIpGetConsumedObjectHandle(char objectSymbolicQualifier[]);
参数
- objectSymbolicQualifier:唯一标识 FIBEX 4.1 数据库对象的符号限定符。语法参见《SOME/IP 符号数据库访问》。
返回值
- 0 :发生错误,可通过
SomeIpGetLastError函数获取错误详情。 - >0:目标对象的句柄。
可用性
| 版本 | 限制范围 | 测量设置 | 仿真/测试设置 |
|---|---|---|---|
| 8.2 SP2 | 以太网 | --- | • |
示例
capl
variables
{
DWORD gCev; // 被消费事件句柄
DWORD gCfNotifier; // 被消费字段通知句柄
DWORD gCfGetter; // 被消费字段获取器句柄
DWORD gCfSetter; // 被消费字段设置器句柄
msTimer gTimer;
}
on start
{
// 以下代码需 FIBEX 4.1 数据库支持:
// - 节点通过不可靠端点(UDP 套接字)消费以下对象:
// - 服务实例 "Service_Test"
// - 事件组 "All"(属于 "Service_Test")
// - 事件 "Event_Test"(属于 "All")
// - 字段 "Field_Test"(属于 "All",包含通知器、获取器和设置器)
// - 提供事件组 "All" 的节点
// 获取被消费事件 "Event_Test" 的句柄
gCev = SomeIpGetConsumedObjectHandle("Service_Test::Event_Test");
// 注册事件通知的 CAPL 回调
SomeIpRegisterCallback(gCev, "OnSomeIpEventReceived");
// 获取被消费字段通知 "Field_Test" 的句柄
gCfNotifier = SomeIpGetConsumedObjectHandle("Field_Test");
// 注册字段通知的 CAPL 回调
SomeIpRegisterCallback(gCfNotifier, "OnSomeIpFieldNotificationReceived");
// 获取被消费字段获取器 "Field_Test" 的句柄
gCfGetter = SomeIpGetConsumedObjectHandle("get_Field_Test");
// 注册获取器响应的 CAPL 回调
SomeIpRegisterCallback(gCfGetter, "OnSomeIpFieldGetterResponse");
// 获取被消费字段设置器 "Field_Test" 的句柄
gCfSetter = SomeIpGetConsumedObjectHandle("set_Field_Test");
// 注册设置器响应的 CAPL 回调
SomeIpRegisterCallback(gCfSetter, "OnSomeIpFieldSetterResponse");
// 启动定时器
setTimer(gTimer, 3000);
}
on timer gTimer
{
// 调用字段设置器和获取器
SomeIpCallMethod(gCfGetter);
SomeIpCallMethod(gCfSetter);
// 重启定时器
setTimer(gTimer, 3000);
}
void OnSomeIpEventReceived(dword cevHandle, dword messageHandle)
{
write("事件通知已接收");
// 此处添加自定义逻辑
}
void OnSomeIpFieldNotificationReceived(dword cfHandle, dword messageHandle)
{
write("字段通知已接收");
// 此处添加自定义逻辑
}
void OnSomeIpFieldGetterResponse(dword methodCallHandle, dword messageResponseHandle)
{
write("字段获取器响应已接收");
// 此处添加自定义逻辑
}
void OnSomeIpFieldSetterResponse(dword methodCallHandle, dword messageResponseHandle)
{
write("字段设置器响应已接收");
// 此处添加自定义逻辑
}
SomeIpRegisterCallback
CAPL 函数 >> 以太网 >> SOME/IP IL >> SomeIpRegisterCallback
函数
为已单独创建的对象注册/注销 CAPL 回调函数。
语法
capl
LONG SomeIpRegisterCallback(dword objHandle, char callbackName[]);
功能说明
为 SOME/IP IL 对象注册新的 CAPL 回调函数。若已注册回调,会先注销原回调,再替换为新回调。
参数
- objHandle :已存在的 SOME/IP IL 对象句柄,支持以下对象及对应回调:
- 提供的事件(
<OnSomeIpPrepareEvent>) - 提供的方法(
<OnSomeIpMethodRequest>) - 被消费的事件(
<OnSomeIpEventReceived>) - 被消费的字段(
<OnSomeIpFieldNotification>) - 被消费的方法(
<OnSomeIpMethodResponse>)
- 提供的事件(
- callbackName:待注册的新回调函数名。
返回值
- 0:函数执行成功。
- >0:错误代码。
可用性
| 版本 | 限制范围 | 测量设置 | 仿真/测试设置 |
|---|---|---|---|
| 8.2 SP2 | 以太网 | --- | • |