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
			| 
								 
											6 years ago
										 
									 | 
							
								#pragma once
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#include <string>
							 | 
						||
| 
								 | 
							
								#include "panda_shared/panda.h"
							 | 
						||
| 
								 | 
							
								#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;
							 | 
						||
| 
								 | 
							
								};
							 |