You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							86 lines
						
					
					
						
							2.1 KiB
						
					
					
				
			
		
		
	
	
							86 lines
						
					
					
						
							2.1 KiB
						
					
					
				// panda_playground.cpp : Defines the entry point for the console application.
 | 
						|
//
 | 
						|
 | 
						|
#include "stdafx.h"
 | 
						|
#include "pandaJ2534DLL Test\Loader4.h"
 | 
						|
#include "ECUsim DLL\ECUsim.h"
 | 
						|
#include <chrono>
 | 
						|
 | 
						|
 | 
						|
int _tmain(int Argc, _TCHAR *Argv) {
 | 
						|
	UNREFERENCED_PARAMETER(Argc);
 | 
						|
	UNREFERENCED_PARAMETER(Argv);
 | 
						|
 | 
						|
	ECUsim sim("", 500000);
 | 
						|
 | 
						|
	//if (LoadJ2534Dll("C:\\WINDOWS\\SysWOW64\\op20pt32.dll") != 0) {
 | 
						|
	if (LoadJ2534Dll("pandaJ2534.dll") != 0) {
 | 
						|
		auto err = GetLastError();
 | 
						|
		return 1;
 | 
						|
	}
 | 
						|
	unsigned long did, cid, fid;
 | 
						|
	PassThruOpen("", &did);
 | 
						|
	PassThruConnect(did, ISO15765, CAN_29BIT_ID, 500000, &cid);
 | 
						|
 | 
						|
	PASSTHRU_MSG mask, pattern, flow;
 | 
						|
 | 
						|
	memcpy(mask.Data, "\xff\xff\xff\xff", 4);
 | 
						|
	mask.DataSize = 4;
 | 
						|
	mask.ProtocolID = ISO15765;
 | 
						|
	mask.TxFlags = CAN_29BIT_ID;
 | 
						|
	mask.ExtraDataIndex = 0;
 | 
						|
	mask.RxStatus = 0;
 | 
						|
 | 
						|
	////////////////////////18//DA//F1//EF
 | 
						|
	memcpy(pattern.Data, "\x18\xda\xf1\xef", 4);
 | 
						|
	pattern.DataSize = 4;
 | 
						|
	pattern.ProtocolID = ISO15765;
 | 
						|
	pattern.TxFlags = CAN_29BIT_ID;
 | 
						|
	pattern.ExtraDataIndex = 0;
 | 
						|
	pattern.RxStatus = 0;
 | 
						|
 | 
						|
	memcpy(flow.Data, "\x18\xda\xef\xf1", 4);
 | 
						|
	flow.DataSize = 4;
 | 
						|
	flow.ProtocolID = ISO15765;
 | 
						|
	flow.TxFlags = CAN_29BIT_ID;
 | 
						|
	flow.ExtraDataIndex = 0;
 | 
						|
	flow.RxStatus = 0;
 | 
						|
 | 
						|
	auto res = PassThruStartMsgFilter(cid, FLOW_CONTROL_FILTER, &mask, &pattern, &flow, &fid);
 | 
						|
	if (res != STATUS_NOERROR)
 | 
						|
		return 1;
 | 
						|
 | 
						|
	SCONFIG_LIST list;
 | 
						|
	SCONFIG config;
 | 
						|
	config.Parameter = LOOPBACK;
 | 
						|
	config.Value = 0;
 | 
						|
	list.ConfigPtr = &config;
 | 
						|
	list.NumOfParams = 1;
 | 
						|
 | 
						|
	res = PassThruIoctl(cid, SET_CONFIG, &list, NULL);
 | 
						|
	if (res != STATUS_NOERROR)
 | 
						|
		return 1;
 | 
						|
 | 
						|
	PASSTHRU_MSG outmsg;
 | 
						|
	memcpy(outmsg.Data, "\x18\xda\xef\xf1""\xAA\xBB\xCC\xDD\xEE\xFF\x11\x22\x33\x44", 4 + 10);
 | 
						|
	outmsg.DataSize = 4 + 10;
 | 
						|
	outmsg.ProtocolID = ISO15765;
 | 
						|
	outmsg.TxFlags = CAN_29BIT_ID;
 | 
						|
	outmsg.ExtraDataIndex = 0;
 | 
						|
	outmsg.RxStatus = 0;
 | 
						|
 | 
						|
	unsigned long msgoutcount = 1;
 | 
						|
 | 
						|
	res = PassThruWriteMsgs(cid, &outmsg, &msgoutcount, 0);
 | 
						|
	if (res != STATUS_NOERROR)
 | 
						|
		return 1;
 | 
						|
 | 
						|
	PASSTHRU_MSG inmsg[8];
 | 
						|
	unsigned long msgincount = 8;
 | 
						|
 | 
						|
	res = PassThruReadMsgs(cid, inmsg, &msgincount, 1000);
 | 
						|
	if (res != STATUS_NOERROR)
 | 
						|
		return 1;
 | 
						|
 | 
						|
	return 0;
 | 
						|
}
 | 
						|
 |