网络仿真 - 通信接口文档

1. 文档变更列表

日期版本号作者描述
2025-11-25v1.0guinit
2025-12-11v1.1gu1. 消息发送:支持回复方法请求;
2. 消息接收:支持接收方法请求、方法回复,CAN消息、事件消息(均为序列化后结果,CAN消息额外包含序列化之前的结果);
3. 调整文档路径,参数类型等
2025-12-23v1.2gu1. 增加时间戳
2025-12-31v1.3gu1. 去除接收CAN消息、事件消息,节约性能
2. 去除必须打开仿真空间的限制,修改了连接参数

2. 接口说明

本接口对外提供网络仿真能力,可用于发送及接收任意 以太网 / CAN 消息。

注:

2.1 请求地址

请求地址格式:
ws://<host>:<port>/netsim?workspaceId=<id>&ts=<timestamp>&tz=<timezone>&eToken=<token>

示例:
ws://192.168.127.128:9528/netsim?workspaceId=53&ts=1767150909&tz=0&eToken=123cedf426644690ba1bf39031da139a
字段名类型说明
workspaceIdlong工作空间 ID(网络仿真空间)
tslong客户端时间戳(毫秒),用于时间同步
tzint客户端时区偏移(分钟),例如:UTC=0,北京=480
eTokenstring登录鉴权 Token(与 HTTP 接口一致)

注:无需打开仿真空间即可模拟发送信号(需要周期发送心跳维护连接,15s自动断开)

2.2 接收消息类型

类型msgType
心跳回复S_HEARTBEAT
方法请求S_SIM_SERVER_METHOD_REQ
方法回复S_SIM_CLIENT_METHOD_RES

特别的:发送【方法请求】【方法回复】【事件发布】【事件组订阅】【事件组取消订阅】错误时,将收到S_SEND_ETH_RES 发送【CAN消息】错误时,将收到S_SEND_CAN_RES


2.3 发送消息类型

类型msgType
心跳消息B_HEARTBEAT
方法请求B_SEND_ETH_REQ
方法回复B_SEND_ETH_REQ
事件发布B_SEND_ETH_REQ
事件组订阅B_SEND_ETH_REQ
事件组取消订阅B_SEND_ETH_REQ
CAN消息B_SEND_CAN_REQ

3. 消息定义

B_HEARTBEAT(发送 心跳)

    {
      "msgId": "2a162236d7314671b7384cdf1d434bea",
      "msgType": "B_HEARTBEAT",
      "payload": null
    }

B_SEND_ETH_REQ(发送以太网消息)

字段名类型说明
msgIdstring随机值,用于跟踪消息链路。
type = 1 (METHOD)actionType = B_SIM_SERVER_METHOD_RES 时,应使用方法请求携带的 msgId。
msgTypestring固定为 "B_SEND_ETH_REQ"
payloadobject发送以太网消息的业务对象
payload.instanceIdintSOME/IP 实例 ID
payload.actionIdstring方法 ID 或事件 ID (10进制/16进制均可)
payload.typeint1:METHOD / 2:EVENT / 3:EVENT_GROUP / 4:FIELD_GET / 5:FIELD_SET / 6:FIELD_NOTIFIER
payload.actionTypestring根据 type 取值:

① METHODB_SIM_CLIENT_METHOD_REQ(方法请求) / B_SIM_SERVER_METHOD_RES(方法回复)
② EVENTB_SIM_SERVER_EVENT_PUB_REQ(发布事件)
③ EVENT_GROUPB_SIM_CLIENT_EVENT_GROUP_SUB_REQ(订阅事件组) / B_SIM_CLIENT_EVENT_GROUP_UNSUB_REQ(取消订阅事件组)
payload.timeoutint方法超时时间,仅当 type = METHODactionType = B_SIM_CLIENT_METHOD_REQ 时生效,默认 0
payload.errCodeint方法回复状态码,仅当 type = METHODactionType = B_SIM_SERVER_METHOD_RES 时生效,默认 0
payload.reasonstring方法回复错误原因,仅当 type = METHODactionType = B_SIM_SERVER_METHOD_RES 时生效
payload.payloadobjectSOME/IP 业务数据结构:
可在网络仿真页面创建对应节点,右键节点 → 复制为 JSON 即可生成。
方法请求参数需额外用数组包裹。


B_SEND_CAN_REQ(发送 CAN 报文)

字段名类型说明
msgIdstring随机值,用于跟踪消息返回, 同一个方法的S_SEND_ETH_RES返回会使用相同的msgId
msgTypestring固定为 "B_SEND_CAN_REQ"
payloadobjectCAN 发送消息体
payload.channelintCAN 通道号
payload.canIdstringCAN 报文 ID
payload.serializationstringdbc / raw 默认dbc
payload.payloadobject/string信号 JSON(dbc)或十六进制字符串(raw)

S_SEND_ETH_RES(仅 请求参数异常时返回)

{
  "msgId": "2a162236d7314671b7384cdf1d434bea",
  "msgType": "S_SEND_ETH_RES",
  "errorCode": 400,
  "reason": "未找到方法定义,serviceId=8269, actionId=8211"
}

S_SEND_CAN_RES(仅 请求参数异常时返回)

{
  "msgId": "test-001",
  "msgType": "S_SEND_CAN_RES",
  "errorCode": 400,
  "reason": "请求参数不正确:CAN 报文信号【BAC_SW】值【5.0】大于最大值【1.0】"
}

S_SIM_SERVER_METHOD_REQ(接收方法请求)

字段名类型说明
msgIdstring消息唯一标识(需要记录下来,用于回复消息)
msgTypestring固定为 "S_SIM_SERVER_METHOD_REQ"
payloadobject方法请求消息体
payload.logTslong时间戳
payload.instanceIdint仿真实例 ID
payload.serviceIdstring服务 ID
payload.actionIdstring方法动作 ID
payload.displayPayloadarray方法参数显示数据(解析后格式)

S_SIM_CLIENT_METHOD_RES(接收方法响应)

字段名类型说明
msgIdstring消息唯一标识 (需要保持和请求msgId一致)
msgTypestring固定为 "S_SIM_CLIENT_METHOD_RES"
payloadobject方法请求消息体
payload.logTslong时间戳
payload.errCodeint错误码,0为正确
payload.displayPayloadarray方法参数显示数据(解析后格式)