当前位置: 首页 > 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 addr
  setBusContext(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 addr
  csi = 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 addr
  setBusContext(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 addr
  psi = 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 addr
  setBusContext(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 addr
  csi = 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 addr
  setBusContext(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 addr
  psi = 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);
}

 

 

相关文章:

  • Java使用ANTLR4对Lua脚本语法校验
  • [c语言日寄]时间复杂度
  • 密码太多记不住?用Trae开发一个密码管理插件
  • linux电源管理(二),内核的CPUFreq(DVFS)和ARM的SCPI
  • OSI参考模型
  • 路由交换网络专题 | 第三章 | BGP | 选路原则 | router-id选举 | BGP网段宣告方式 | 抑制路由
  • DeepSeek 接入 Excel 完整教程
  • mysql 数据库localhost密码忘记
  • 主流程序员接单平台的分类整理与分析
  • android​​弱网环境数据丢失解决方案(3万字长文)
  • MyBatis-plus笔记 (上)
  • 深度学习中的数值稳定性处理详解:以SimCLR损失为例
  • 火山引擎旗下的产品
  • Simscape单摆模型搭建
  • 快速启动 Rust + WebAssembly 项目
  • [从零开始学数据库] 基本SQL
  • 谷歌发布大模型提示工程《Prompt Engineering》白皮书
  • STM32F4移植FATFS管理SD卡
  • AI测试引擎中CV和ML模型的技术架构
  • 【Linux】VIM 编辑器,编辑加速引擎
  • 民进党当局以企业名义参展世博会鼓吹所谓“外交突破”,国台办:自欺欺人
  • 三河市委主要负责人被免职,有商家庆幸坚持没拆招牌省了5万
  • 山西“订婚强奸案”审判长答问
  • 部分旅行社对70岁以上老人报团设限,专家建议建立风险共担机制
  • 1150公里氢能动脉贯通,西部陆海新通道“氢走廊”正式投运
  • 三河市委主要负责人被免职!人民网评:用追责硬手段真正维护营商环境