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.
		
		
		
		
			
				
					51 lines
				
				1.5 KiB
			
		
		
			
		
	
	
					51 lines
				
				1.5 KiB
			| 
											8 years ago
										 | #pragma once
 | ||
|  | 
 | ||
|  | #include <string>
 | ||
| 
											8 years ago
										 | #include "panda_shared/panda.h"
 | ||
| 
											8 years ago
										 | #include <queue>
 | ||
|  | 
 | ||
|  | // The following ifdef block is the standard way of creating macros which make exporting
 | ||
|  | // from a DLL simpler. All files within this DLL are compiled with the ECUSIMDLL_EXPORTS
 | ||
|  | // symbol defined on the command line. This symbol should not be defined on any project
 | ||
|  | // that uses this DLL. This way any other project whose source files include this file see
 | ||
|  | // ECUSIMDLL_API functions as being imported from a DLL, whereas this DLL sees symbols
 | ||
|  | // defined with this macro as being exported.
 | ||
|  | #ifdef ECUSIMDLL_EXPORTS
 | ||
|  | #define ECUSIMDLL_API __declspec(dllexport)
 | ||
|  | #else
 | ||
|  | #define ECUSIMDLL_API __declspec(dllimport)
 | ||
|  | #endif
 | ||
|  | 
 | ||
|  | // This class is exported from the ECUsim DLL.dll
 | ||
|  | class ECUSIMDLL_API ECUsim {
 | ||
|  | public:
 | ||
|  | 	ECUsim(std::string sn, unsigned long can_baud, bool ext_addr = FALSE);
 | ||
|  | 	ECUsim(panda::Panda && p, unsigned long can_baud, bool ext_addr = FALSE);
 | ||
|  | 	~ECUsim();
 | ||
|  | 
 | ||
|  | 	void stop();
 | ||
|  | 	void join();
 | ||
|  | 
 | ||
|  | 	// Flag determines if verbose output is enabled
 | ||
|  | 	volatile bool verbose;
 | ||
|  | 	BOOL ext_addr;
 | ||
|  | private:
 | ||
|  | 	std::unique_ptr<panda::Panda> panda;
 | ||
|  | 
 | ||
|  | 	static DWORD WINAPI _canthreadBootstrap(LPVOID This);
 | ||
|  | 	DWORD can_recv_thread_function();
 | ||
|  | 
 | ||
|  | 	BOOL _can_addr_matches(panda::PANDA_CAN_MSG & msg);
 | ||
|  | 
 | ||
|  | 	void _CAN_process_msg(panda::PANDA_CAN_MSG & msg);
 | ||
|  | 
 | ||
|  | 	std::string process_obd_msg(UCHAR mode, UCHAR pid, bool& return_data);
 | ||
|  | 
 | ||
|  | 	HANDLE thread_can;
 | ||
|  | 	volatile bool doloop;
 | ||
|  | 	std::queue<uint8_t> can_multipart_data;
 | ||
|  | 
 | ||
|  | 	BOOL can11b_enabled;
 | ||
|  | 	BOOL can29b_enabled;
 | ||
|  | };
 |