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);
}