154 lines
4.3 KiB
C
154 lines
4.3 KiB
C
|
#pragma once
|
|||
|
|
|||
|
#include "CEXVirtualListCtrl.h"
|
|||
|
#include "ControlCAN.h"
|
|||
|
// CCanDeviceDlg <20>Ի<EFBFBD><D4BB><EFBFBD>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
typedef struct ST_DRIVER_CONTROL {
|
|||
|
int Drive_Speed; //<2F><><EFBFBD><EFBFBD><EFBFBD>ٶ<EFBFBD>
|
|||
|
int Diversion_Position; //ת<><D7AA><EFBFBD>Ƕ<EFBFBD>
|
|||
|
int Zero_Angle; //ת<><D7AA><EFBFBD><EFBFBD><EFBFBD>Ƚǣ<C8BD><C7A3><EFBFBD><EFBFBD>ݻ<EFBFBD>е<EFBFBD>ṹ<EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD>Ĺ<EFBFBD><C4B9><EFBFBD><EFBFBD>Ƕȣ<C7B6>
|
|||
|
int MIX_Angle_R; //<2F>ֶ<EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD>Ƕ<EFBFBD>
|
|||
|
int MAN_Angle_L; //<2F>ֶ<EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD>Сת<D0A1><D7AA><EFBFBD>Ƕ<EFBFBD>
|
|||
|
int AutoMAX_Angle; //<2F>Զ<EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD>Ƕ<EFBFBD>
|
|||
|
int AutoMIN_Angle; //<2F>Զ<EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD>Ƕ<EFBFBD>
|
|||
|
float SPEEDPAR; //<2F><><EFBFBD><EFBFBD><EFBFBD>ٶ<EFBFBD>ϵ<EFBFBD><CFB5>
|
|||
|
|
|||
|
ST_DRIVER_CONTROL()
|
|||
|
{
|
|||
|
Drive_Speed = 0;
|
|||
|
Zero_Angle = 1320000; //<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>2108000 504000
|
|||
|
MIX_Angle_R = 504000; // Zero_Angle + 850000;
|
|||
|
MAN_Angle_L = 2108000; // Zero_Angle - 850000;
|
|||
|
AutoMIN_Angle = Zero_Angle - 700000;
|
|||
|
AutoMAX_Angle = Zero_Angle + 700000;
|
|||
|
Diversion_Position = Zero_Angle;
|
|||
|
SPEEDPAR = 1;
|
|||
|
}
|
|||
|
|
|||
|
} ST_DRIVER_CONTROL;
|
|||
|
|
|||
|
typedef struct ST_SENSOR_DATA {
|
|||
|
short FMagnetism_Offset; //ǰ<><C7B0><EFBFBD><EFBFBD>ƫ<EFBFBD><C6AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
uint8_t FMagnetism_Valid; //ǰ<><C7B0><EFBFBD><EFBFBD>1<EFBFBD><31>Ч 0<><30>Ч<EFBFBD><D0A7><EFBFBD><EFBFBD>
|
|||
|
uint8_t FMagnetism_ALLTrue; //16<31><36><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ض<EFBFBD><D8B6><EFBFBD><EFBFBD><EFBFBD><E2B5BD><EFBFBD><EFBFBD>1 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>װ<EFBFBD><D7B0><EFBFBD><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>װ<EFBFBD><D7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>16<31><36><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ؿ<EFBFBD><D8BF><EFBFBD>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E2B5BD>
|
|||
|
short BMagnetism_Offset; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD><C6AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
uint8_t BMagnetism_Valid; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD><31>Ч 0<><30>Ч<EFBFBD><D0A7><EFBFBD><EFBFBD>
|
|||
|
uint8_t BMagnetism_ALLTrue; //16<31><36><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ض<EFBFBD><D8B6><EFBFBD><EFBFBD><EFBFBD><E2B5BD><EFBFBD><EFBFBD>1 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>װ<EFBFBD><D7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
uint8_t RFID_Point; //RFID<49><44>ǩλ<C7A9><CEBB>
|
|||
|
uint8_t Battery_SOC; //<2F><><EFBFBD>ص<EFBFBD><D8B5><EFBFBD>
|
|||
|
|
|||
|
ST_SENSOR_DATA() //Ĭ<>Ϲ<EFBFBD><CFB9>캯<EFBFBD><ECBAAF>
|
|||
|
{
|
|||
|
FMagnetism_Offset = 0;
|
|||
|
FMagnetism_Valid = 0;
|
|||
|
FMagnetism_ALLTrue = 0;
|
|||
|
BMagnetism_Offset = 0;
|
|||
|
BMagnetism_Valid = 0;
|
|||
|
BMagnetism_ALLTrue = 0;
|
|||
|
RFID_Point = 0;
|
|||
|
Battery_SOC = 0;
|
|||
|
}
|
|||
|
|
|||
|
} ST_SENSOR_DATA;
|
|||
|
|
|||
|
|
|||
|
class CDriverMainDlg : public CDialogEx
|
|||
|
{
|
|||
|
DECLARE_DYNAMIC(CDriverMainDlg)
|
|||
|
|
|||
|
public:
|
|||
|
CDriverMainDlg(CWnd* pParent = NULL); // <20><><EFBFBD><D7BC><EFBFBD>캯<EFBFBD><ECBAAF>
|
|||
|
virtual ~CDriverMainDlg();
|
|||
|
|
|||
|
// <20>Ի<EFBFBD><D4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
#ifdef AFX_DESIGN_TIME
|
|||
|
enum { IDD = IDD_DEV_CAN_DLG };
|
|||
|
#endif
|
|||
|
|
|||
|
protected:
|
|||
|
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV ֧<><D6A7>
|
|||
|
afx_msg void OnCheckCanrxEn();
|
|||
|
|
|||
|
DECLARE_MESSAGE_MAP()
|
|||
|
public:
|
|||
|
int m_nSendFrameFormatIdx0;
|
|||
|
int m_nSendFrameTypeIdx0;
|
|||
|
int m_nSendFrameFormatIdx1;
|
|||
|
int m_nSendFrameTypeIdx1;
|
|||
|
int m_nSendCanIndex;
|
|||
|
int m_nRecvCanIndex;
|
|||
|
int m_nDevType;
|
|||
|
public:
|
|||
|
CString m_iniPath;
|
|||
|
int m_DevType;
|
|||
|
int m_DevIndex;
|
|||
|
BOOL m_bOpenCan;
|
|||
|
BOOL m_bCanRxEn;
|
|||
|
BOOL m_bAutoRefresh;
|
|||
|
BOOL m_bAutoSend;
|
|||
|
BOOL m_bAutoSend2;
|
|||
|
CString m_strSendID;
|
|||
|
CStatic m_txFMagneticOffset;
|
|||
|
CStatic m_txBMagneticOffset;
|
|||
|
CStatic m_txRFIDID;
|
|||
|
|
|||
|
CString m_strSendData;
|
|||
|
BOOL m_StopSendFlag;
|
|||
|
BOOL m_StopSendFlag2;
|
|||
|
|
|||
|
void Drive_enable(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>
|
|||
|
void Drive_disable(); //ʧ<><CAA7>
|
|||
|
|
|||
|
int Auto_Stop();
|
|||
|
int Auto_Forward(float speedpar);
|
|||
|
int Auto_Backward(float speedpar);
|
|||
|
int Auto_EStop();
|
|||
|
void Control_Mode_Reset();
|
|||
|
|
|||
|
void ReadConfigFromIni();
|
|||
|
void InitVirtualList();
|
|||
|
BOOL OpenCanDevice();
|
|||
|
void UpdateCanStatue(BOOL bStatue);
|
|||
|
void ProcessPipeMsg(int lMsgId, char* pData, int lLen);
|
|||
|
void SendCanData(int nDevIdx, int nCanIdx, int nFrameType, int nFrameFormat, UINT32 acFrameId, char acFrameData[8]);
|
|||
|
int Str2Hex(CString str);
|
|||
|
int HexChar(char c);
|
|||
|
//CPluginMainDialog *m_pMainWnd;
|
|||
|
virtual BOOL OnInitDialog();
|
|||
|
static UINT ReceiveCanThread(LPVOID v);
|
|||
|
static UINT SendCanThread(LPVOID v);
|
|||
|
static UINT SendCanThread2(LPVOID v);
|
|||
|
void WriteVirtualList(CString strFrameId, CString strFrameData, int nTxRx = 0, int nCanIdx = 0, int nFrameType = 0, int nFrameFormat = 0);
|
|||
|
|
|||
|
public:
|
|||
|
CEXVirtualListCtrl *m_pstVirtualList;
|
|||
|
afx_msg void OnBnClickedBtnSendMan();
|
|||
|
afx_msg void OnBnClickedAutoSend();
|
|||
|
|
|||
|
CEXMemFileQueue* m_pQueue;
|
|||
|
CString m_strDataDir;
|
|||
|
|
|||
|
volatile int m_nAgvAction;
|
|||
|
int m_nAgvReturnState;
|
|||
|
|
|||
|
afx_msg void OnBnClickedCheckAutoRefreshShow();
|
|||
|
afx_msg void OnBnClickedBtnSendMan2();
|
|||
|
afx_msg void OnBnClickedAutoSend2();
|
|||
|
|
|||
|
ST_DRIVER_CONTROL m_stDrvierControl;
|
|||
|
ST_SENSOR_DATA m_stSensorData;
|
|||
|
|
|||
|
void AnalysiseCanData(int nCanIndex, VCI_CAN_OBJ objCan);
|
|||
|
void CalculateAutoCanParam();
|
|||
|
void CalculateManualCanParam();
|
|||
|
void SendCanData();
|
|||
|
|
|||
|
afx_msg void OnBnClickedButtonAgvstop();
|
|||
|
afx_msg void OnBnClickedButtonAgvestop();
|
|||
|
afx_msg void OnBnClickedButtonAgvforward();
|
|||
|
afx_msg void OnBnClickedButtonAgvbackward();
|
|||
|
};
|