| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119 | #pragma once#include "../common/comm.h"#include "../common/notifier.h"#include "../common/sensor_socket.h"#include <thread>#include <mutex>class CEgoWindow;class CMessageQueue;enum  Sensor_Collection{	Sensor_None = 0x0,	Sensor_ER = 0x1, //0x181	Sensor_Steer = 0x2, //0x185	Sensor_Signal = 0x4, //0x281	Sensor_Drive = 0x8, //0x381    Sensor_Arm =0x10 ,//0x481	//Sensor_Switch=0x20,	Sensor_All = 0x1F};enum  OpSide{	Empty,	Arm,	Bucket};class CControlSensor{public:	CControlSensor(CMessageQueue * window);	bool Start();	void Stop();	void Notify(TPCANMsg& canmsg,uint64_t timestamp);	void SetEngineRPM(int32_t rpm);	ControlStatus CheckStatus();private:	void Run();	TPCANStatus ReadMessage();	//TPCANStatus ReadMessageFD();	void ReadMessages();private:	 	CEgoWindow* _window;	 	Sensor_Collection _collection;		TPCANHandle _handle=-1;	bool _isFD;	std::thread _thread;	bool _run;	int16_t _last_speed = 0xF000;	int64_t _startup = 0;	int32_t _rpm = 0;	//bool _automous = false;	/*	bool _er_enabling = false;	bool _er_motoring = false;	bool _er_gear = false;	bool _er_turnl = false;	bool _er_turnr = false;	bool _F1 = false;	bool _F2 = false;	bool _F3 = false;	bool _F4 = false;	bool _R1 = false;	bool _R2 = false;	bool _R3 = false;	bool _R4 = false;	bool _N1 = false;	bool _N2 = false;	bool _N3 = false;	bool _N4 = false;	bool _keycc = false;	bool _keyC = false;	bool _keyR = false;	bool _switchF = false;	bool _switchR = false;	bool _startup=false;	bool _horn = false; //喇叭	bool _emergeny=false; //急停	bool _colddown = false; //冷却	bool _firewarning = false; 	bool _hyp = false; //液压使能	bool _flight = false;	bool _blight = false;	bool _beamlight = false;	bool _nearlight = false;	bool _smalllight = false;	bool _leftturn = false;	bool _rightturn = false;	bool _louver_open = false;	bool _louver_close = false;	bool _lock_on_off = false; //锁销	bool _jar_on_off = false; //敲罐	bool _park_lift = false;	bool _chain_lift = false;	bool _enabling = false;	bool _emergency = false;	bool _resume=false;	int16_t _gear = 1;	int16_t _accel = 0;	int16_t _steer = 0;	int16_t _flip = 0;	int16_t _armL = 0;	int16_t _armR = 0;	*/	cannet_frame  frames[6];	int32_t _old_steer = 0;	uint64_t _old_timestamp = 0;	bool isFront = false;	bool isSliping = false;	bool _remote_active = false;	uint64_t _active_tick = 0;	 	  }; 
 |