当前位置: 首页 > 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 编辑器,编辑加速引擎
  • 《水饺皇后》领跑五一档票房,《哪吒2》上座率仍居第一
  • 刘国中:毫不松懈巩固拓展脱贫攻坚成果,全力以赴抓好农业防灾减灾工作
  • 国台办:提醒相关人员不要假借去第三地名义绕道赴台
  • 哈莉·贝瑞、洪常秀等出任戛纳主竞赛单元评委
  • 成都世运会倒计时100天,中国代表团运动员规模将创新高
  • 外交部官方公众号发布视频:不跪!