当前位置: 首页 > 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);
}

 

 

http://www.dtcms.com/a/133007.html

相关文章:

  • 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 编辑器,编辑加速引擎
  • 赚钱的底层逻辑
  • 开关二极管热插拔保护方案
  • MySQL-存储引擎和索引
  • [dp11_最长子序列(不连续)] 最长数对链 | 最长定差子序列 最长的斐波那契子序列的长度
  • Nginx底层架构(非常清晰)
  • redis系列--1.redis是什么
  • qt(vs2010) 手动配置moc生成规则
  • 数据大屏只能撑撑场面?
  • Uniapp:本地存储
  • 卫星电话扬帆智慧海洋,构筑蓝海通信新生态