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