当前位置: 首页 > news >正文

SomeIP:服务端or客户端发送event或method源码参考via CAPL

目录

Client发送Event 给 Server

Server发送Event给Client

Client发送Method请求给Server

Server监听Client发过来的Method请求


 

Client发送Event 给 Server

void Generic_Client_SendEvent()
{DWORD aep, csi, ceg, cev;dword gMulticastIP;dword SD_port=30490;char gMulticastIPStr[16] = "237.50.10.1";dword serviceid = 613;dword instanceid = 1;dword majorVersion = 3;dword minorVersion = 0;dword eventgroupid = 1;dword eventid = 32888;ipSetAdapterMacId(1, ethGetMacAddressAsNumber("AA:BB:CC:DD:00:39")); //Client MAC addrsetBusContext(GetBusNameContext("Eth_PIU_Mst"));gMulticastIP = ipGetAddressAsNumber(gMulticastIPStr);AREthSetProperty("SDMulticastIp", gMulticastIP);AREthSetProperty("SDMulticastPort", SD_port);aep = AREthOpenLocalApplicationEndpoint(IP_Endpoint(UDP:192.168.178.57:30501)); //Client IP addrcsi = AREthCreateConsumedServiceInstance(aep,serviceid,instanceid,majorVersion,minorVersion);ceg = AREthAddConsumedEventGroup(csi,eventgroupid);cev = AREthCreateEventConsumer(csi,eventid,"CallbackEvent_613_32888");
}
void CallbackEvent_613_32888()
{}

Server发送Event给Client

void Generic_Server_SendEvent()
{DWORD aep, psi, peg, pev;dword gMulticastIP;dword SD_port=30490;char gMulticastIPStr[16] = "237.50.10.1";dword serviceid = 613;dword instanceid = 1;dword majorVersion = 3;dword minorVersion = 0;dword eventgroupid = 1;dword eventid = 32888;ipSetAdapterMacId(1, ethGetMacAddressAsNumber("AA:BB:CC:DD:00:39")); // Server mac addrsetBusContext(GetBusNameContext("Eth_PIU_Mst"));gMulticastIP = ipGetAddressAsNumber(gMulticastIPStr);AREthSetProperty("SDMulticastIp", gMulticastIP);AREthSetProperty("SDMulticastPort", SD_port);aep = AREthOpenLocalApplicationEndpoint(IP_Endpoint(UDP:192.168.178.57:30501)); // Server ip addrpsi = AREthCreateProvidedServiceInstance(aep,serviceid, instanceid ,majorVersion ,minorVersion);peg = AREthAddProvidedEventGroup(psi, eventgroupid);pev = AREthAddEvent(psi, eventid , "callback_613_32888"); AREthAddEventToEventgroup(peg, pev);AREthSetProperty(pev, "CycleTimeMs", 1000);write("PIU server started successfully, using event 32888\n");
}void callback_613_32888(dword eventHandle, dword messageHandle)
{}

Client发送Method请求给Server

void Generic_Client_Send_Method_Request()
{DWORD aep, csi, gMc ;dword SD_port=30490;dword gMulticastIP;char gMulticastIPStr[16] = "237.50.10.1";dword serviceid=8283;dword instanceid=1;dword majorVersion=3;dword minorVersion=0;dword methodId = 125;ipSetAdapterMacId(1, ethGetMacAddressAsNumber("AA:BB:CC:DD:00:39")); // client mac addrsetBusContext(GetBusNameContext("Eth_PIU_Mst"));gMulticastIP = ipGetAddressAsNumber(gMulticastIPStr);AREthSetProperty("SDMulticastIp", gMulticastIP);AREthSetProperty("SDMulticastPort", SD_port);aep = AREthOpenLocalApplicationEndpoint(IP_Endpoint(UDP:192.168.178.57:30501)); // client ip addrcsi = AREthCreateConsumedServiceInstance(aep,serviceid, instanceid ,majorVersion ,minorVersion);gMc  = AREthCreateMethodCall(csi,methodId,"OnMethodRequest_8283_125");write("Created method call, gMc=%u, serviceid=%u, methodId=%u", gMc, serviceid, methodId);
}void OnMethodRequest_8283_125(dword methodCallHandle, dword messageResponseHandle )
{}

Server监听Client发过来的Method请求

void Generic_Server_Listening_Method_FromClient()
{  DWORD aep, psi, gPm ;dword SD_port=30490;dword gMulticastIP;char gMulticastIPStr[16] = "237.50.10.1";dword serviceid=8283;dword instanceid=1;dword majorVersion=3;dword minorVersion=0;dword methodId = 125;long fireAndForget=1;long result;ipSetAdapterMacId(1, ethGetMacAddressAsNumber("AA:BB:CC:DD:00:39")); // Server mac addrsetBusContext(GetBusNameContext("Eth_PIU_Mst"));gMulticastIP = ipGetAddressAsNumber(gMulticastIPStr);AREthSetProperty("SDMulticastIp", gMulticastIP);AREthSetProperty("SDMulticastPort", SD_port);aep = AREthOpenLocalApplicationEndpoint(IP_Endpoint(UDP:192.168.178.57:30501)); // Server ip addrpsi = AREthCreateProvidedServiceInstance(aep,serviceid, instanceid ,majorVersion ,minorVersion);gPm = AREthAddMethod(psi,methodId,"OnMethodRequest_8283_125",fireAndForget);write("PIU server started successfully, serviceid=%u, methodId=%u", serviceid, methodId);
}

 

 


http://www.mrgr.cn/news/98394.html

相关文章:

  • linux多线(进)程编程——番外1:内存映射与mmap
  • 欧拉服务器操作系统部署deekseep(Ollama+DeekSeep+open WebUI)
  • 数据库索引深度解析:原理、类型与高效使用实践
  • ARCGIS PRO DSK 利用两期地表DEM数据计算工程土方量
  • 在轨道交通控制系统中如何实现μs级任务同步
  • 2025年第十六届蓝桥杯省赛真题解析 Java B组(简单经验分享)
  • cline 提示词工程指南-架构篇
  • [Python基础速成]2-模块与包与OOP
  • Windows系统docker desktop安装(学习记录)
  • java锁机制(CAS和synchronize)的实现原理和使用方法
  • Domain Adaptation领域自适应
  • 科目四 学习笔记
  • 智能云图库-1-项目初始化
  • 祁连山国家公园shp格式数据
  • Python 机器学习实战 第6章 机器学习的通用工作流程实例
  • 大数据面试问答-Spark
  • 嵌入式程序设计英语
  • Spring Security6 从源码慢速开始
  • HarmonyOS:使用Refresh组件实现页面下拉刷新上拉加载更多
  • PVE 8.4.1 安装 KDE Plasma 桌面环境 和 PVE换源